Documentation
¶
Index ¶
- Constants
- func ValidateRoutingBlacklist(blacklist RoutingBlacklist) error
- type BackendConfig
- type BackendRoute
- type CdniConf
- type ClientCertAuth
- type Config
- type ConfigAcmeAccount
- type ConfigAcmeRenewal
- type ConfigDatabase
- type ConfigInflux
- type ConfigLDAP
- type ConfigLetsEncrypt
- type ConfigPortal
- type ConfigSMTP
- type ConfigTO
- type ConfigTrafficOpsGolang
- type DefaultCertificateInfo
- type Host
- type Options
- type RoutingBlacklist
Constants ¶
const ( DefaultLDAPTimeoutSecs = 60 DefaultDBQueryTimeoutSecs = 20 DefaultDBPort = "5432" MinPort = 1 MaxPort = 65535 )
const ( DBMaxIdleConnectionsDefault = 10 // if this is higher than MaxDBConnections it will be automatically adjusted below it by the db/sql library DBConnMaxLifetimeSecondsDefault = 60 )
const AllowStartup = false
const BlockStartup = true
Variables ¶
This section is empty.
Functions ¶
func ValidateRoutingBlacklist ¶
func ValidateRoutingBlacklist(blacklist RoutingBlacklist) error
Types ¶
type BackendConfig ¶
type BackendConfig struct {
Routes []BackendRoute `json:"routes"`
}
BackendConfig is a structure that holds the configuration supplied to Traffic Ops, which makes it act as a reverse proxy to the specified routes.
func LoadBackendConfig ¶
func LoadBackendConfig(backendConfigPath string) (BackendConfig, error)
type BackendRoute ¶
type BackendRoute struct {
Path string `json:"path"`
Method string `json:"method"`
Hosts []Host `json:"hosts"`
Opts Options `json:"opts"`
ID int `json:"routeId"`
Insecure bool `json:"insecure"`
Permissions []string `json:"permissions"`
Index int
}
BackendRoute holds all the information about a configured route, for which Traffic Ops serves as a reverse proxy.
type ClientCertAuth ¶
type ClientCertAuth struct {
RootCertsDir string `json:"root_certificates_directory"`
}
type Config ¶
type Config struct {
URL *url.URL `json:"-"`
CertPath string `json:"-"`
KeyPath string `json:"-"`
ConfigTrafficOpsGolang `json:"traffic_ops_golang"`
ConfigTO *ConfigTO `json:"to"`
SMTP *ConfigSMTP `json:"smtp"`
ConfigPortal `json:"portal"`
ConfigLetsEncrypt `json:"lets_encrypt"`
ConfigAcmeRenewal `json:"acme_renewal"`
AcmeAccounts []ConfigAcmeAccount `json:"acme_accounts"`
DB ConfigDatabase `json:"db"`
Secrets []string `json:"secrets"`
TrafficVaultEnabled bool
ConfigLDAP *ConfigLDAP
UserCacheRefreshIntervalSec int `json:"user_cache_refresh_interval_sec"`
ServerUpdateStatusCacheRefreshIntervalSec int `json:"server_update_status_cache_refresh_interval_sec"`
LDAPEnabled bool
LDAPConfPath string `json:"ldap_conf_location"`
ConfigInflux *ConfigInflux
InfluxEnabled bool
InfluxDBConfPath string `json:"influxdb_conf_path"`
Version string
DisableAutoCertDeletion bool `json:"disable_auto_cert_deletion"`
UseIMS bool `json:"use_ims"`
RoleBasedPermissions bool `json:"role_based_permissions"`
DefaultCertificateInfo *DefaultCertificateInfo `json:"default_certificate_info"`
Cdni *CdniConf `json:"cdni"`
ClientCertAuth *ClientCertAuth `json:"client_certificate_authentication"`
}
Config reflects the structure of the cdn.conf file
func LoadCdnConfig ¶
func LoadConfig ¶
func NewFakeConfig ¶
func NewFakeConfig() Config
NewFakeConfig returns a fake Config struct with just enough data to view Routes.
func ParseConfig ¶
ParseConfig validates required fields, and parses non-JSON types
func (Config) DebugLog ¶
func (c Config) DebugLog() log.LogLocation
DebugLog - troubleshooting messages
func (Config) EventLog ¶
func (c Config) EventLog() log.LogLocation
EventLog - access.log high level transactions
func (Config) GetCertPath ¶
GetCertPath - get the path to cert .cert file
func (Config) GetKeyPath ¶
GetKeyPath - get the path to cert .key file
func (Config) WarningLog ¶
func (c Config) WarningLog() log.LogLocation
WarningLog - warning messages
type ConfigAcmeAccount ¶
type ConfigAcmeAccount struct {
AcmeProvider string `json:"acme_provider"`
UserEmail string `json:"user_email"`
AcmeUrl string `json:"acme_url"`
Kid string `json:"kid"`
HmacEncoded string `json:"hmac_encoded"`
}
ConfigAcmeAccount contains all account information for a single ACME provider to be registered with External Account Binding
type ConfigAcmeRenewal ¶
type ConfigAcmeRenewal struct {
SummaryEmail string `json:"summary_email"`
RenewDaysBeforeExpiration int `json:"renew_days_before_expiration"`
}
ConfigAcmeRenewal continas configuration information for automated ACME renewals.
type ConfigDatabase ¶
type ConfigDatabase struct {
Description string `json:"description"`
DBName string `json:"dbname"`
Hostname string `json:"hostname"`
User string `json:"user"`
Password string `json:"password"`
Port string `json:"port"`
Type string `json:"type"`
SSL bool `json:"ssl"`
}
ConfigDatabase reflects the structure of the database.conf file
type ConfigInflux ¶
type ConfigInflux struct {
User string `json:"user"`
Password string `json:"password"`
DSDBName string `json:"deliveryservice_stats_db_name"`
CacheDBName string `json:"cache_stats_db_name"`
Secure *bool `json:"secure"`
}
func GetInfluxConfig ¶
func GetInfluxConfig(path string) (bool, *ConfigInflux, error)
type ConfigLDAP ¶
type ConfigLDAP struct {
AdminPass string `json:"admin_pass"`
SearchBase string `json:"search_base"`
AdminDN string `json:"admin_dn"`
Host string `json:"host"`
SearchQuery string `json:"search_query"`
Insecure bool `json:"insecure"`
LDAPTimeoutSecs int `json:"ldap_timeout_secs"`
}
func GetLDAPConfig ¶
func GetLDAPConfig(LDAPConfPath string) (bool, *ConfigLDAP, error)
type ConfigLetsEncrypt ¶
type ConfigLetsEncrypt struct {
Email string `json:"user_email,omitempty"`
SendExpEmail bool `json:"send_expiration_email"`
ConvertSelfSigned bool `json:"convert_self_signed"`
RenewDaysBeforeExpiration int `json:"renew_days_before_expiration"`
Environment string `json:"environment"`
}
ConfigLetsEncrypt contains configuration information for integration with the Let's Encrypt certificate authority.
type ConfigPortal ¶
type ConfigPortal struct {
BaseURL rfc.URL `json:"base_url"`
DocsURL rfc.URL `json:"docs_url"`
EmailFrom rfc.EmailAddress `json:"email_from"`
PasswdResetPath string `json:"pass_reset_path"`
UserRegisterPath string `json:"user_register_path"`
}
ConfigPortal contains information that can direct users to a friendly UI
type ConfigSMTP ¶
type ConfigSMTP struct {
Address string `json:"address"`
Enabled bool `json:"enabled"`
Password string `json:"password"`
User string `json:"user"`
}
ConfigSMTP contains configuration information for connecting to and authenticating with an SMTP server.
type ConfigTO ¶
type ConfigTO struct {
BaseURL *rfc.URL `json:"base_url"`
EmailFrom *rfc.EmailAddress `json:"email_from"`
NoAccountFoundMessage *string `json:"no_account_found_msg"`
}
ConfigTO contains information to identify Traffic Ops in a network sense.
type ConfigTrafficOpsGolang ¶
type ConfigTrafficOpsGolang struct {
// Deprecated in 5.0
Insecure bool `json:"insecure"`
// end deprecated
//Moved from Hypnotoad-listen section
Cert string `json:"cert"`
Key string `json:"key"`
Port string `json:"port"`
ProxyTimeout int `json:"proxy_timeout"`
ProxyKeepAlive int `json:"proxy_keep_alive"`
ProxyTLSTimeout int `json:"proxy_tls_timeout"`
ProxyReadHeaderTimeout int `json:"proxy_read_header_timeout"`
ReadTimeout int `json:"read_timeout"`
RequestTimeout int `json:"request_timeout"`
ReadHeaderTimeout int `json:"read_header_timeout"`
WriteTimeout int `json:"write_timeout"`
IdleTimeout int `json:"idle_timeout"`
LogLocationError string `json:"log_location_error"`
LogLocationWarning string `json:"log_location_warning"`
LogLocationInfo string `json:"log_location_info"`
LogLocationDebug string `json:"log_location_debug"`
LogLocationEvent string `json:"log_location_event"`
MaxDBConnections int `json:"max_db_connections"`
DBMaxIdleConnections int `json:"db_max_idle_connections"`
DBConnMaxLifetimeSeconds int `json:"db_conn_max_lifetime_seconds"`
DBQueryTimeoutSeconds int `json:"db_query_timeout_seconds"`
Plugins []string `json:"plugins"`
PluginConfig map[string]json.RawMessage `json:"plugin_config"`
ProfilingEnabled bool `json:"profiling_enabled"`
ProfilingLocation string `json:"profiling_location"`
// Deprecated: use 'port' in traffic_vault_config instead.
RiakPort *uint `json:"riak_port"`
WhitelistedOAuthUrls []string `json:"whitelisted_oauth_urls"`
OAuthClientSecret string `json:"oauth_client_secret"`
OAuthUserAttribute string `json:"oauth_user_attribute"`
RoutingBlacklist `json:"routing_blacklist"`
SupportedDSMetrics []string `json:"supported_ds_metrics"`
TLSConfig *tls.Config `json:"tls_config"`
TrafficVaultBackend string `json:"traffic_vault_backend"`
TrafficVaultConfig json.RawMessage `json:"traffic_vault_config"`
// CRConfigUseRequestHost is whether to use the client request host header in the CRConfig. If false, uses the tm.url parameter.
// This defaults to false. Traffic Ops used to always use the host header, setting this true will resume that legacy behavior.
// See https://github.com/apache/trafficcontrol/issues/2224
// Deprecated: will be removed in the next major version.
CRConfigUseRequestHost bool `json:"crconfig_snapshot_use_client_request_host"`
// CRConfigEmulateOldPath is whether to emulate the legacy CRConfig request path when generating a new CRConfig. This primarily exists in the event a tool relies on the legacy path '/tools/write_crconfig'.
// Deprecated: will be removed in the next major version.
CRConfigEmulateOldPath bool `json:"crconfig_emulate_old_path"`
}
ConfigTrafficOpsGolang carries settings specific to traffic_ops_golang server
type DefaultCertificateInfo ¶
type DefaultCertificateInfo struct {
BusinessUnit string `json:"business_unit"`
City string `json:"city"`
Organization string `json:"organization"`
Country string `json:"country"`
State string `json:"state"`
}
func (*DefaultCertificateInfo) Validate ¶
func (d *DefaultCertificateInfo) Validate() (error, bool)
type Host ¶
type Host struct {
Protocol string `json:"protocol"`
Hostname string `json:"hostname"`
Port int `json:"port"`
}
Host is a structure that holds the host info for the backend route.
type Options ¶
type Options struct {
Algorithm string `json:"alg"`
}
Options is a structure used to hold the route configuration options that can be supplied for the backend routes.
type RoutingBlacklist ¶
type RoutingBlacklist struct {
IgnoreUnknownRoutes bool `json:"ignore_unknown_routes"`
DisabledRoutes []int `json:"disabled_routes"`
}
RoutingBlacklist contains a list of route IDs that are disabled, and whether or not to ignore unknown routes.