Documentation
¶
Overview ¶
Package conf defines config structs with struct tags as expected by https://github.com/kelseyhightower/envconfig
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // DB is current database config DB DBSpec // Cache is current cache config Cache CacheSpec // API is the current API config API APISpec // Loader is the current loader config Loader LoaderSpec // Partner is the current partner config Partner PartnerSpec )
Functions ¶
This section is empty.
Types ¶
type APISpec ¶
type APISpec struct {
// APIAddr is the "host:port" we listen to for incoming HTTP connections
// Default: "0.0.0.0:8000"
// Environment variable: $BUS_API_ADDR
Addr string `envconfig:"api_addr" default:"0.0.0.0:8000"`
// WebDir is the location of the static web assets
// Default: ../../web/dist
// Environment variable: $BUS_WEB_DIR
WebDir string `envconfig:"web_dir" default:"../../web/dist"`
// BuildTimestamp is the UNIX timestamp when static assets were last built.
// Default: 0 (API will use current timestamp)
// Environment variable: $BUS_BUILD_TIMESTAMP
BuildTimestamp int64 `envconfig:"build_timestamp"`
// LogTiming will log timing info of some core operations / queries
// Default: false
// Environment variable: $BUS_LOG_TIMING
LogTiming bool `envconfig:"log_timing" default:"false"`
}
APISpec is our config spec used by busapi
type CacheSpec ¶
type CacheSpec struct {
// RedisAddr is the "host:port" we use for connecting to redis
// Default: "localhost:6379"
// Environment variable: $BUS_REDIS_ADDR
RedisAddr string `envconfig:"redis_addr" default:"localhost:6379"`
// RedisTTL is the number of seconds we save things in Redis
// Default: "90"
// Environment variable: $BUS_REDIS_TTL
RedisTTL int `envconfig:"redis_ttl" default:"90"`
}
CacheSpec is our redis config, used by busprecache and busapi
type DBSpec ¶
type DBSpec struct {
// DBAddr is the "host:port" we use for connecting to postgres
// Default: "localhost:5432"
// Environment variable: $BUS_DB_ADDR
Addr string `envconfig:"db_addr" default:"localhost:5432"`
// DBUser is the username we use for connecting to postgres
// Default: postgres
// Environment variable: $BUS_DB_USER
User string `envconfig:"db_user" default:"postgres"`
// DBPassword is the password we use for connecting to postgres
// Default: None
// Environment variable: $BUS_DB_PASSWORD
Password string `envconfig:"db_password" default:""`
// DBName is the database name we use in postgres
// Default: postgres
// Environment variable: $BUS_DB_NAME
Name string `envconfig:"db_name" default:"postgres"`
}
DBSpec is our database config used by both busapi and busloader
type LoaderSpec ¶
type LoaderSpec struct {
// TmpDir is the root directory we use for creating temporary
// files when loading new data
// Default: None (use system default)
// Environment variable: $BUS_TMP_DIR
TmpDir string `envconfig:"tmp_dir"`
// RouteFilter is a comma-delimited list of route_ids we want to
// specifically extract from the transit files
// Default: None (no filter)
// Environment variable: $BUS_ROUTE_FILTER (comma-delimited list)
RouteFilter []string `envconfig:"route_filter"`
// GTFSURLs is a comma-delimited list of URLs that have zipped GTFS
// feeds, see: https://developers.google.com/transit/gtfs/
// Default: None
// Environment variable: $BUS_GTFS_URLS (comma-delimited list)
GTFSURLs []string `envconfig:"gtfs_urls"`
// LoadForever is a boolean that determines whether we just load
// the GTFS URLs once and exit or whether we continually load them (every
// 24 hours)
// Default: true
// Environment variable: $BUS_LOAD_FOREVER
LoadForever bool `envconfig:"load_forever" default:"false"`
// njtransit_feed_username: is the username for accessing:
// https://www.njtransit.com/mt/mt_servlet.srv?hdnPageAction=MTDevLoginTo
// Default: None
// Environment variable: $BUS_NJTRANSIT_FEED_USERNAME
NJTransitFeedUsername string `envconfig:"njtransit_feed_username"`
// njtransit_feed_password: is the password for accessing:
// https://www.njtransit.com/mt/mt_servlet.srv?hdnPageAction=MTDevLoginTo
// Default: None
// Environment variable: $BUS_NJTRANSIT_FEED_PASSWORD
NJTransitFeedPassword string `envconfig:"njtransit_feed_password"`
}
LoaderSpec is our config spec used by busloader
type PartnerSpec ¶
type PartnerSpec struct {
// BustimeAPIKey is the API key for accessing http://bustime.mta.info/
// Default: None
// Environment variable: $BUS_MTA_BUSTIME_API_KEY
BustimeAPIKey string `envconfig:"mta_bustime_api_key" required:"true"`
// DatamineAPIKey is the API key for accessing http://datamine.mta.info/
// Default: None
// Environment variable: $BUS_MTA_DATAMINE_API_KEY
DatamineAPIKey string `envconfig:"mta_datamine_api_key" required:"true"`
// AgencyIDs is a comma-delimited list of agencies that
// precacher should be hitting
// Default: "MTA NYCT,MTABC,NYC DOT,MTA MNR,LI,PATH,NJT"
// Environment variable: $BUS_AGENCY_IDS (comma-delimited list)
AgencyIDs []string `envconfig:"agency_ids" default:"MTA NYCT,MTABC,NYC DOT,MTA MNR,LI,PATH,NJT"`
}
PartnerSpec includes config values specific to certain live partner APIs, used by busprecache and busapi
Click to show internal directories.
Click to hide internal directories.