tyk-dashboard
folder and by default is called tyk_analytics.conf
, though it can be renamed and specified using the --conf
flag. Environment variables are created from the dot notation versions of the JSON objects contained with the config files.
To understand how the environment variables notation works, see Environment Variables.
The Tyk Dashboard has a separate configuration file, it is small and comes packaged with the tarball. It uses a separate configuration file as it may be installed on a different host to your Tyk Gateway nodes.
The Dashboard configuration file can be found in the tyk-dashboard
folder and by default is called tyk_analytics.conf
, though it can be renamed and specified using the --conf
flag.
Please consult the data storage configuration guide for further information relating to how to configure Tyk’s data storage across different database engines.
Environment Variables
All the Dashboard environment variables have the prefixTYK_DB_
. The environment variables will take precedence over the values in the configuration file.
Environment variables (env var) can be used to override the settings defined in the configuration file. Where an environment variable is specified, its value will take precedence over the value in the configuration file.
The file will look like the sample below, the various fields are explained in the following sections:
listen_port
ENV: TYK_DB_LISTENPORTType:
int
Setting this value will change the port that Tyk Dashboard listens on. Default: 3000.
tyk_api_config
This section contains details for a Tyk Gateway node that the Tyk Dashboard can speak to. The Dashboard controls Tyk using the Gateway API and only requires visibility to one node, so long as all nodes are using the same API Definitions.If the Dashboard cannot see a Tyk node, key management functions will not work properly.
tyk_api_config.Host
ENV: TYK_DB_TYKAPI_HOSTType:
string
This is the full URL of your Tyk node.
tyk_api_config.Port
ENV: TYK_DB_TYKAPI_PORTType:
string
The port that Tyk is running on
tyk_api_config.Secret
ENV: TYK_DB_TYKAPI_SECRETType:
string
The secret set in your tyk.conf file. This is the key that Tyk Dashboard will use to speak to the Tyk node’s Gateway API. Note that this value has to match the secret value in tyk.conf.
mongo_url
ENV: TYK_DB_MONGOURLType:
string
The full URL to your MongoDB instance, this can be a clustered instance if necessary and should include the database and username / password data.
mongo_use_ssl
ENV: TYK_DB_MONGOUSESSLType:
bool
Set to true to enable Mongo SSL connection
mongo_ssl_insecure_skip_verify
ENV: TYK_DB_MONGOSSLINSECURESKIPVERIFYType:
bool
Allows the use of self-signed certificates when connecting to an encrypted MongoDB database.
mongo_ssl_allow_invalid_hostnames
ENV: TYK_DB_MONGOSSLALLOWINVALIDHOSTNAMESType:
bool
Ignore hostname check when it differs from the original (for example with SSH tunneling). The rest of the TLS verification will still be performed.
mongo_ssl_ca_file
ENV: TYK_DB_MONGOSSLCAFILEType:
string
Path to the PEM file with trusted root certificates
mongo_ssl_pem_keyfile
ENV: TYK_DB_MONGOSSLPEMKEYFILEType:
string
Path to the PEM file which contains both client certificate and private key. This is required for Mutual TLS.
mongo_session_consistency
ENV: TYK_DB_MONGOSESSIONCONSISTENCYType:
string
Mongo session constency: “strong”, “eventual”, or “monotonic”. default is “strong”
mongo_batch_size
ENV: TYK_DB_MONGOBATCHSIZEType:
int
Sets the batch size for mongo results. Defaults to 2000. Increasing this number can decrease dashboard performance. This value cannot be lower than 100 and will fallback to 100 if a lower value has been set.
mongo_driver
ENV: TYK_DB_MONGODRIVERType:
string
Determines the MongoDB driver used. It could be
mongo-go
to use the official mongo driver for go v1.12 or mgo
to use mgo driver. Since v5.3, the default value is mongo-go
. It can be set at storage level as well if the database type is mongo. This config is available since dashboard v5.0.2.
mongo_direct_connection
ENV: TYK_DB_MONGODIRECTCONNECTIONType:
bool
MongoDirectConnection informs whether to establish connections only with the specified seed servers, or to obtain information for the whole cluster and establish connections with further servers too. If true, the client will only connect to the host provided in the ConnectionString and won’t attempt to discover other hosts in the cluster. Useful when network restrictions prevent discovery, such as with SSH tunneling. Default is false.
page_size
ENV: TYK_DB_PAGESIZEType:
int
The page size that the dashboard should use. Defaults to 10.
storage
This option allows you to store different types of data in different databases. For example, logs can be stored in one database, analytics in another, and main resources in another.storage.main
Main database where the dashboard resources are stored (users, orgs, policies, etc)storage.main.type
ENV: TYK_DB_STORAGE_MAIN_TYPEType:
DBType
Type is the type of the database. Possible values are:
- “mongo”: Use MongoDB.
- “postgres”: Use PostgreSQL.
- “mysql”: Use MySQL.
storage.main.connection_string
ENV: TYK_DB_STORAGE_MAIN_CONNECTIONSTRINGType:
string
ConnectionString is the connection string for the database. Overrides ReadConnectionString and WriteConnectionString.
storage.main.read_connection_string
ENV: TYK_DB_STORAGE_MAIN_READCONNECTIONSTRINGType:
string
ReadConnectionString is the connection string for read operations. Only used if ConnectionString is not set.
storage.main.write_connection_string
ENV: TYK_DB_STORAGE_MAIN_WRITECONNECTIONSTRINGType:
string
WriteConnectionString is the connection string for write operations. Only used if ConnectionString is not set.
storage.main.mongo
Connection setting for a mongo databasestorage.main.mongo.driver
ENV: TYK_DB_STORAGE_MAIN_MONGO_DRIVERType:
string
Driver to use when connected to a mongo database. It could be
mongo-go
to use the official mongo driver for go v1.12 or mgo
to use mgo driver. Since v5.3, the default value is mongo-go
. This config is available since dashboard v5.0.2
storage.main.postgres
Connection settings for a Postgres databasestorage.main.postgres.prefer_simple_protocol
ENV: TYK_DB_STORAGE_MAIN_POSTGRES_PREFERSIMPLEPROTOCOLType:
bool
disables implicit prepared statement usage
storage.main.mysql
Connection settings for a MySQL databasestorage.main.mysql.default_string_size
ENV: TYK_DB_STORAGE_MAIN_MYSQL_DEFAULTSTRINGSIZEType:
uint
default size for string fields. By default set to: 256
storage.main.mysql.disable_datetime_precision
ENV: TYK_DB_STORAGE_MAIN_MYSQL_DISABLEDATETIMEPRECISIONType:
bool
disable datetime precision, which not supported before MySQL 5.6
storage.main.mysql.dont_support_rename_index
ENV: TYK_DB_STORAGE_MAIN_MYSQL_DONTSUPPORTRENAMEINDEXType:
bool
drop & create when rename index, rename index not supported before MySQL 5.7, MariaDB
storage.main.mysql.dont_support_rename_column
ENV: TYK_DB_STORAGE_MAIN_MYSQL_DONTSUPPORTRENAMECOLUMNType:
bool
change
when rename column, rename column not supported before MySQL 8, MariaDB
storage.main.mysql.skip_initialize_with_version
ENV: TYK_DB_STORAGE_MAIN_MYSQL_SKIPINITIALIZEWITHVERSIONType:
bool
auto configure based on currently MySQL version
storage.main.table_sharding
ENV: TYK_DB_STORAGE_MAIN_TABLESHARDINGType:
bool
Enable table sharding for the database
storage.analytics
Where all the analytics related data is storedstorage.analytics.type
ENV: TYK_DB_STORAGE_ANALYTICS_TYPEType:
DBType
Type is the type of the database. Possible values are:
- “mongo”: Use MongoDB.
- “postgres”: Use PostgreSQL.
- “mysql”: Use MySQL.
storage.analytics.connection_string
ENV: TYK_DB_STORAGE_ANALYTICS_CONNECTIONSTRINGType:
string
ConnectionString is the connection string for the database. Overrides ReadConnectionString and WriteConnectionString.
storage.analytics.read_connection_string
ENV: TYK_DB_STORAGE_ANALYTICS_READCONNECTIONSTRINGType:
string
ReadConnectionString is the connection string for read operations. Only used if ConnectionString is not set.
storage.analytics.write_connection_string
ENV: TYK_DB_STORAGE_ANALYTICS_WRITECONNECTIONSTRINGType:
string
WriteConnectionString is the connection string for write operations. Only used if ConnectionString is not set.
storage.analytics.mongo
Connection setting for a mongo databasestorage.analytics.mongo.driver
ENV: TYK_DB_STORAGE_ANALYTICS_MONGO_DRIVERType:
string
Driver to use when connected to a mongo database. It could be
mongo-go
to use the official mongo driver for go v1.12 or mgo
to use mgo driver. Since v5.3, the default value is mongo-go
. This config is available since dashboard v5.0.2
storage.analytics.postgres
Connection settings for a Postgres databasestorage.analytics.postgres.prefer_simple_protocol
ENV: TYK_DB_STORAGE_ANALYTICS_POSTGRES_PREFERSIMPLEPROTOCOLType:
bool
disables implicit prepared statement usage
storage.analytics.mysql
Connection settings for a MySQL databasestorage.analytics.mysql.default_string_size
ENV: TYK_DB_STORAGE_ANALYTICS_MYSQL_DEFAULTSTRINGSIZEType:
uint
default size for string fields. By default set to: 256
storage.analytics.mysql.disable_datetime_precision
ENV: TYK_DB_STORAGE_ANALYTICS_MYSQL_DISABLEDATETIMEPRECISIONType:
bool
disable datetime precision, which not supported before MySQL 5.6
storage.analytics.mysql.dont_support_rename_index
ENV: TYK_DB_STORAGE_ANALYTICS_MYSQL_DONTSUPPORTRENAMEINDEXType:
bool
drop & create when rename index, rename index not supported before MySQL 5.7, MariaDB
storage.analytics.mysql.dont_support_rename_column
ENV: TYK_DB_STORAGE_ANALYTICS_MYSQL_DONTSUPPORTRENAMECOLUMNType:
bool
change
when rename column, rename column not supported before MySQL 8, MariaDB
storage.analytics.mysql.skip_initialize_with_version
ENV: TYK_DB_STORAGE_ANALYTICS_MYSQL_SKIPINITIALIZEWITHVERSIONType:
bool
auto configure based on currently MySQL version
storage.analytics.table_sharding
ENV: TYK_DB_STORAGE_ANALYTICS_TABLESHARDINGType:
bool
Enable table sharding for the database
storage.logs.type
ENV: TYK_DB_STORAGE_LOGS_TYPEType:
DBType
Type is the type of the database. Possible values are:
- “mongo”: Use MongoDB.
- “postgres”: Use PostgreSQL.
- “mysql”: Use MySQL.
storage.logs.connection_string
ENV: TYK_DB_STORAGE_LOGS_CONNECTIONSTRINGType:
string
ConnectionString is the connection string for the database. Overrides ReadConnectionString and WriteConnectionString.
storage.logs.read_connection_string
ENV: TYK_DB_STORAGE_LOGS_READCONNECTIONSTRINGType:
string
ReadConnectionString is the connection string for read operations. Only used if ConnectionString is not set.
storage.logs.write_connection_string
ENV: TYK_DB_STORAGE_LOGS_WRITECONNECTIONSTRINGType:
string
WriteConnectionString is the connection string for write operations. Only used if ConnectionString is not set.
storage.logs.mongo
Connection setting for a mongo databasestorage.logs.mongo.driver
ENV: TYK_DB_STORAGE_LOGS_MONGO_DRIVERType:
string
Driver to use when connected to a mongo database. It could be
mongo-go
to use the official mongo driver for go v1.12 or mgo
to use mgo driver. Since v5.3, the default value is mongo-go
. This config is available since dashboard v5.0.2
storage.logs.postgres
Connection settings for a Postgres databasestorage.logs.postgres.prefer_simple_protocol
ENV: TYK_DB_STORAGE_LOGS_POSTGRES_PREFERSIMPLEPROTOCOLType:
bool
disables implicit prepared statement usage
storage.logs.mysql
Connection settings for a MySQL databasestorage.logs.mysql.default_string_size
ENV: TYK_DB_STORAGE_LOGS_MYSQL_DEFAULTSTRINGSIZEType:
uint
default size for string fields. By default set to: 256
storage.logs.mysql.disable_datetime_precision
ENV: TYK_DB_STORAGE_LOGS_MYSQL_DISABLEDATETIMEPRECISIONType:
bool
disable datetime precision, which not supported before MySQL 5.6
storage.logs.mysql.dont_support_rename_index
ENV: TYK_DB_STORAGE_LOGS_MYSQL_DONTSUPPORTRENAMEINDEXType:
bool
drop & create when rename index, rename index not supported before MySQL 5.7, MariaDB
storage.logs.mysql.dont_support_rename_column
ENV: TYK_DB_STORAGE_LOGS_MYSQL_DONTSUPPORTRENAMECOLUMNType:
bool
change
when rename column, rename column not supported before MySQL 8, MariaDB
storage.logs.mysql.skip_initialize_with_version
ENV: TYK_DB_STORAGE_LOGS_MYSQL_SKIPINITIALIZEWITHVERSIONType:
bool
auto configure based on currently MySQL version
storage.logs.table_sharding
ENV: TYK_DB_STORAGE_LOGS_TABLESHARDINGType:
bool
Enable table sharding for the database
storage.uptime
Where all the uptime related data is storedstorage.uptime.type
ENV: TYK_DB_STORAGE_UPTIME_TYPEType:
DBType
Type is the type of the database. Possible values are:
- “mongo”: Use MongoDB.
- “postgres”: Use PostgreSQL.
- “mysql”: Use MySQL.
storage.uptime.connection_string
ENV: TYK_DB_STORAGE_UPTIME_CONNECTIONSTRINGType:
string
ConnectionString is the connection string for the database. Overrides ReadConnectionString and WriteConnectionString.
storage.uptime.read_connection_string
ENV: TYK_DB_STORAGE_UPTIME_READCONNECTIONSTRINGType:
string
ReadConnectionString is the connection string for read operations. Only used if ConnectionString is not set.
storage.uptime.write_connection_string
ENV: TYK_DB_STORAGE_UPTIME_WRITECONNECTIONSTRINGType:
string
WriteConnectionString is the connection string for write operations. Only used if ConnectionString is not set.
storage.uptime.mongo
Connection setting for a mongo databasestorage.uptime.mongo.driver
ENV: TYK_DB_STORAGE_UPTIME_MONGO_DRIVERType:
string
Driver to use when connected to a mongo database. It could be
mongo-go
to use the official mongo driver for go v1.12 or mgo
to use mgo driver. Since v5.3, the default value is mongo-go
. This config is available since dashboard v5.0.2
storage.uptime.postgres
Connection settings for a Postgres databasestorage.uptime.postgres.prefer_simple_protocol
ENV: TYK_DB_STORAGE_UPTIME_POSTGRES_PREFERSIMPLEPROTOCOLType:
bool
disables implicit prepared statement usage
storage.uptime.mysql
Connection settings for a MySQL databasestorage.uptime.mysql.default_string_size
ENV: TYK_DB_STORAGE_UPTIME_MYSQL_DEFAULTSTRINGSIZEType:
uint
default size for string fields. By default set to: 256
storage.uptime.mysql.disable_datetime_precision
ENV: TYK_DB_STORAGE_UPTIME_MYSQL_DISABLEDATETIMEPRECISIONType:
bool
disable datetime precision, which not supported before MySQL 5.6
storage.uptime.mysql.dont_support_rename_index
ENV: TYK_DB_STORAGE_UPTIME_MYSQL_DONTSUPPORTRENAMEINDEXType:
bool
drop & create when rename index, rename index not supported before MySQL 5.7, MariaDB
storage.uptime.mysql.dont_support_rename_column
ENV: TYK_DB_STORAGE_UPTIME_MYSQL_DONTSUPPORTRENAMECOLUMNType:
bool
change
when rename column, rename column not supported before MySQL 8, MariaDB
storage.uptime.mysql.skip_initialize_with_version
ENV: TYK_DB_STORAGE_UPTIME_MYSQL_SKIPINITIALIZEWITHVERSIONType:
bool
auto configure based on currently MySQL version
storage.uptime.table_sharding
ENV: TYK_DB_STORAGE_UPTIME_TABLESHARDINGType:
bool
Enable table sharding for the database
admin_secret
ENV: TYK_DB_ADMINSECRETType:
string
This secret is to be used by a special set of endpoints that we call “Admin APIs”. This API is part of the super-admin context and therefore has a separate endpoint prefix
/admin
. It also requires a special auth header called admin-auth. This purpose of these endpoints is to allow functionality that regular Dashboard users should not have, such as create new organizations, create super users etc. See the Admin API for more information on these endpoints.
shared_node_secret
ENV: TYK_DB_NODESECRETType:
string
This value should match with the node_secret Gateway configuration option value. Each node communicates with the Dashboard via a shared secret (this setting) and a nonce to ensure that out-of-band requests cannot be made. Nodes will send a heartbeat every few seconds to notify the Dashboard that they are running.
redis_port
ENV: TYK_DB_REDISPORTType:
int
The port that your Redis installation listens on.
The Tyk Dashboard uses Redis to store its session data and to communicate with your Tyk Gateway nodes occasionally. The Redis details used by the dashboard must be the same as those set for your Tyk installation.
redis_host
ENV: TYK_DB_REDISHOSTType:
string
The hostname for the Redis collection and can be an IP address.
redis_addrs
ENV: TYK_DB_REDISADDRSType:
[]string
Used for configuring Redis clusters. See Redis Cluster and Tyk Dashboard for more info. Example:
redis_hosts
ENV: TYK_DB_HOSTSType:
map[string]string
DEPRECATED. Use
redis_addrs
instead. You can also specify multiple Redis hosts here. Tyk will use this array if it is not empty, or it will use the individual legacy parameters above. You can specify multiple host:port combinations here.
redis_username
ENV: TYK_DB_REDISUSERNAMEType:
string
If you are using Redis AUTH using its
requirepass
setting, enter your username here (recommended). If this is not used, the Dashboard will not attempt to login to Redis.
redis_password
ENV: TYK_DB_REDISPASSWORDType:
string
The password for your Redis Auth username.
redis_master_name
ENV: TYK_DB_REDISMASTERNAMEType:
string
Redis Sentinel Master name
redis_sentinel_password
ENV: TYK_DB_REDISSENTINELPASSWORDType:
string
Redis Sentinel password
redis_timeout
ENV: TYK_DB_REDISTIMEOUTType:
int
Set a custom Redis network timeout. Default value is 5 seconds.
redis_database
ENV: TYK_DB_REDISDATABASEType:
int
Set this to the index of your Redis database if you are using more than one.
enable_cluster
ENV: TYK_DB_ENABLECLUSTERType:
bool
Set this to true if you are using a Redis cluster.
redis_use_ssl
ENV: TYK_DB_REDISUSESSLType:
bool
Use Redis SSL connection
redis_ssl_insecure_skip_verify
ENV: TYK_DB_REDISSSLINSECURESKIPVERIFYType:
bool
Ignore TLS verification for Redis connections.
redis_ca_file
ENV: TYK_DB_REDISCAFILEType:
string
Redis SSL CA File The SSL CA file is imported into an X509 certificate pool. It contains the set of root certificate authorities. When establishing a connection to redis, Tyk will use this to verify server certificates. If empty, Tyk will use the host’s root CA set.
redis_cert_file
ENV: TYK_DB_REDISCERTFILEType:
string
Redis SSL Cert file. The cert file and the key file combine to form an X509 certificate. The certificate is presented when establishing a connection to redis. For more information, see crypto/tls#X509KeyPair.
redis_key_file
ENV: TYK_DB_REDISKEYFILEType:
string
Redis SSL Key file. The cert file and the key file combine to form an X509 certificate. The certificate is presented when establishing a connection to redis. For more information, see crypto/tls#X509KeyPair.
redis_tls_max_version
ENV: TYK_DB_REDISTLSMAXVERSIONType:
string
Maximum TLS version that is supported. Options: [“1.0”, “1.1”, “1.2”, “1.3”]. Defaults to “1.3”.
redis_tls_min_version
ENV: TYK_DB_REDISTLSMINVERSIONType:
string
Minimum TLS version that is supported. Options: [“1.0”, “1.1”, “1.2”, “1.3”]. Defaults to “1.2”.
redis_max_active
ENV: TYK_DB_REDISMAXACTIVEType:
int
Set the number of maximum connections in the Redis connection pool, which defaults to 500. Set to a higher value if you are expecting more traffic.
notify_on_change
ENV: TYK_DB_NOTIFYONCHANGEType:
bool
Licensed users can use this setting to enable/disable whether the Tyk Dashboard will notify all Tyk Gateway nodes to hot-reload when an API definition is changed.
license_key
ENV: TYK_DB_LICENSEKEYType:
string
Your Tyk Dashboard license key
hash_keys
ENV: TYK_DB_HASHKEYSType:
bool
If your Tyk Gateway is using hashed keys, set this value to true so it matches. The Dashboard will now operate in a mode that is compatible with key hashing.
disable_key_actions_by_username
ENV: TYK_DB_DISABLEKEYACTIONSBYUSERNAMEType:
bool
DisableKeyActionsByUsername disables basic auth key operation by username. When this is set to
true
you are able to search for keys only by keyID or key hash (if hash_keys
is also set to true
)
Note that if hash_keys
is also set to true
then the keyID will not be provided for APIs secured using basic auth. In this scenario the only search option would be to use key hash
You must configure this setting with the same value in both Gateway and Dashboard
enable_delete_key_by_hash
ENV: TYK_DB_ENABLEDELETEKEYBYHASHType:
bool
To delete a key by its hash, set this option to true
enable_update_key_by_hash
ENV: TYK_DB_ENABLEUPDATEKEYBYHASHType:
bool
To update a key by its hash, set this option to true.
enable_hashed_keys_listing
ENV: TYK_DB_ENABLEHASHEDKEYSLISTINGType:
bool
To retrieve a list of all key hash listings, set this option to true.
email_backend
Tyk supports an interface-based email back-end system. We supportmandrill
, sendgrid
, amazonses
and mailgun
. See Outbound Email Configuration for more details on configuring these different providers.
email_backend.enable_email_notifications
ENV: TYK_DB_EMAILBACKEND_ENABLEEMAILNOTIFICATIONSType:
bool
Set to
true
to have Tyk send emails for things such as key approvals and portal sign ups.
email_backend.code
ENV: TYK_DB_EMAILBACKEND_CODEType:
string
The code of the back-end to use,
mandrill
, sendgrid
, amazonses
and mailgun
are supported.
email_backend.settings
ENV: TYK_DB_EMAILBACKEND_SETTINGSType:
map[string]string
The custom settings sections for the back end system.
email_backend.default_from_email
ENV: TYK_DB_EMAILBACKEND_DEFAULTFROMEMAILType:
string
The address to send email from.
email_backend.default_from_name
ENV: TYK_DB_EMAILBACKEND_DEFAULTFROMNAMEType:
string
The name to use when sending emails.
email_backend.dashboard_hostname
ENV: TYK_DB_EMAILBACKEND_DASHBOARDHOSTNAMEType:
string
Your public dashboard hostname.
hide_listen_path
ENV: TYK_DB_HIDELISTENPATHType:
bool
If you set this option to
true
, then the listen path will not be editable or visible in the Dashboard.
use_sentry
ENV: TYK_DB_USESENTRYType:
bool
The Tyk Dashboard has Sentry integration to externalise logging. Set this to true to enable the logger.
sentry_code
ENV: TYK_DB_SENTRYCODEType:
string
If you have a Sentry setup, or are using Getsentry, you can add the Sentry DSN here and Tyk will begin sending events.
sentry_js_code
ENV: TYK_DB_SENTRYJSCODEType:
string
To have the Dashboard report Javascript errors to you, add a separate DSN here.
enable_master_keys
ENV: TYK_DB_ENABLEMASTERKEYSType:
bool
If this is set to true, session objects (key definitions) that do not have explicit access rights set will be allowed by Tyk. This means that keys that are created have access to ALL APIs, which in many cases is unwanted behavior unless you are sure about what you are doing. To use this setting also requires the corresponding Gateway configuration setting
allow_master_keys
to be set to true
.
enable_duplicate_slugs
ENV: TYK_DB_ENABLEDUPLICATESLUGSType:
bool
Setting this option to
true
will cause the dashboard to not validate against other listen paths.
show_org_id
ENV: TYK_DB_SHOWORGIDType:
bool
Determines whether the Org ID will be shown in the Users -> Username detail page. This can be useful for quickly identifying your Org ID.
host_config
Section to manage dashboard host names and domainshost_config.enable_host_names
ENV: TYK_DB_HOSTCONFIG_ENABLEHOSTNAMESType:
bool
The Tyk Dashboard can bind the Dashboard application to a specific domain name. Enable this option to have the Dashboard only allow access on a specific domain and 404 on any other host access (not recommended).
host_config.disable_org_slug_prefix
ENV: TYK_DB_HOSTCONFIG_DISABLEORGSLUGPREFIXType:
bool
By default, for developer portal, Tyk will add orgID prefix. Set to
true
if you have single tenant application or each portal on separate domain.
host_config.hostname
ENV: TYK_DB_HOSTCONFIG_HOSTNAMEType:
string
The hostname to bind the Dashboard to. This must be a proper hostname and not localhost.
host_config.override_hostname
ENV: TYK_DB_HOSTCONFIG_GATEWAYHOSTNAMEType:
string
Set this value to whatever hostname your Tyk Gateway is running on.
host_config.portal_domains
ENV: TYK_DB_HOSTCONFIG_PORTALDOMAINSType:
map[string]string
It is possible to hard-code portal domains (these override settings set by the Dashboard for routing purposes). Example:
host_config.portal_root_path
ENV: TYK_DB_HOSTCONFIG_PORTALROOTPATHType:
string
The root path for the portal.
host_config.generate_secure_paths
ENV: TYK_DB_HOSTCONFIG_GENERATEHTTPSType:
bool
If you prefer to have your URLs start with https, set this option to true.
host_config.secure_cookies
ENV: TYK_DB_HOSTCONFIG_SECURECOOKIESType:
bool
This enables HTTPS “secure” cookies.
http_server_options
This section is reserved for settings relating to the HTTP server that powers the Dashboard.http_server_options.use_ssl
ENV: TYK_DB_HTTPSERVEROPTIONS_USESSLType:
bool
Enable to use SSL.
http_server_options.certificates
ENV: TYK_DB_HTTPSERVEROPTIONS_CERTIFICATESType:
CertsData
Add a certificate block for each domain being covered by the application. For example:
http_server_options.ssl_certificates
ENV: TYK_DB_HTTPSERVEROPTIONS_SSLCERTIFICATESType:
[]string
SSL certificates used by your Gateway server. A list of certificate path to files.
http_server_options.min_version
ENV: TYK_DB_HTTPSERVEROPTIONS_MINVERSIONType:
uint16
Minimum TLS version. Possible values: https://tyk.io/docs/api-management/certificates#supported-tls-versions
http_server_options.ssl_ciphers
ENV: TYK_DB_HTTPSERVEROPTIONS_CIPHERSUITESType:
[]string
Array of allowed cipher suites as defined at https://golang.org/pkg/crypto/tls/#pkg-constants
http_server_options.ssl_insecure_skip_verify
ENV: TYK_DB_HTTPSERVEROPTIONS_SSLINSECURESKIPVERIFYType:
bool
Disable TLS verifiation
http_server_options.prefer_server_ciphers
ENV: TYK_DB_HTTPSERVEROPTIONS_PREFERSERVERCIPHERSUITESType:
bool
PreferServerCipherSuites is a legacy field and has no effect. More info: https://github.com/golang/go/issues/45430. Deprecated: PreferServerCipherSuites is ignored.
security
This section controls login limits for both the Dashboard and the Developer Portal. The path for you audit log is also set here.security.allow_admin_reset_password
ENV: TYK_DB_SECURITY_ALLOWADMINRESETPASSWORDType:
bool
This allows an admin user to reset the password of other users. The default is false.
security.login_failure_username_limit
ENV: TYK_DB_SECURITY_LOGINFAILUREUSERNAMELIMITType:
int
Controls how many time a user can attempt to log in before being denied access. The default is 0.
security.login_failure_ip_limit
ENV: TYK_DB_SECURITY_LOGINFAILUREIPLIMITType:
int
Controls how many times an IP Address can be used to attempt to log in before being denied access. The default is 0.
security.login_failure_expiration
ENV: TYK_DB_SECURITY_LOGINFAILUREEXPIRATIONType:
int
Controls how long before the failure limits are reset in seconds. The default is 900 seconds.
security.hide_login_failure_limit_error
ENV: TYK_DB_SECURITY_HIDELOGINFAILURELIMITERRORType:
bool
By default it will show message like “Retry in N seconds.”. In some secure environments it can be treated as leaking of secure context. This option makes failed login attempt to be shown as standard login failure.
security.login_disallow_forward_proxy
ENV: TYK_DB_SECURITY_LOGINDISALLOWFORWARDPROXYType:
bool
Set to
true
to allow the Tyk Dashboard login to ignore the host from the X-Forwarded-For
header when accessing the Dashboard via a proxy. This can be useful for limiting retry attempts.
security.audit_log_path
ENV: TYK_DB_SECURITY_AUDITLOGPATHType:
string
This sets the path to your audit log and enables audit with default settings. It will log all user actions and response statuses to it. Security information such as passwords are not logged.
security.user_password_max_days
ENV: TYK_DB_SECURITY_USERPASSWORDMAXDAYSType:
int
Set the maximum lifetime of a password for a user. They will be prompted to reset if password lifetime exceeds the configured expiry value. e.g. if value set to 30 any user password set over 30 days in past will be considered invalid and must be reset.
security.enforce_password_history
ENV: TYK_DB_SECURITY_ENFORCEPASSWORDHISTORYType:
int
Set a maximum number of previous passwords used by a user that cannot be reused. For example, If set to 5 the user upon setting their password cannot reuse any of their 5 most recently used password for that Tyk user account.
security.force_first_login_pw_reset
ENV: TYK_DB_SECURITY_FORCEFIRSTLOGINPWRESETType:
bool
A newly created user will be forced to reset their password upon first login. Defaults to false.
security.enable_content_security_policy
ENV: TYK_DB_SECURITY_ENABLECONTENTSECURITYPOLICYType:
bool
Enable browser Content-Security-Policy, e.g. CSP. The default is false.
security.allowed_content_sources
ENV: TYK_DB_SECURITY_ALLOWEDCONTENTSOURCESType:
string
If CSP enabled, specify space separated string, with list of allowed resources.
security.open_policy
OpenPolicy configurationsecurity.open_policy.enabled
ENV: TYK_DB_SECURITY_OPENPOLICY_ENABLEDType:
bool
Enable OpenPolicy
security.open_policy.debug
ENV: TYK_DB_SECURITY_OPENPOLICY_DEBUGType:
bool
Enable OpenPolicy debug mode
security.open_policy.enable_api
ENV: TYK_DB_SECURITY_OPENPOLICY_ENABLEAPIType:
bool
Enable modify OpenPolicy rules via UI and API
security.additional_permissions
ENV: TYK_DB_SECURITY_ADDITIONALPERMISSIONSType:
map[ObjectGroup]string
Through this options, you can provide a list of additional permissions, that can be applied for existing or newly created users or user groups. Example:
security.private_certificate_encoding_secret
ENV: TYK_DB_SECURITY_PRIVATECERTIFICATEENCODINGSECRETType:
string
When using SAML with embedded identity broker, is required to upload a certificate that is encoded by the gateway to store it safely, TIB needs the private key as well, hence it needs the same encoding secret so the information is decoded successfully. This value should match with the encoding secret set in the gateway config file, if not set then it will use by default tyk_api_config.secret to attempt to decode the certificate.
security.forbid_admin_view_access_token
ENV: TYK_DB_SECURITY_FORBIDADMINVIEWACCESSTOKENType:
bool
ForbidAdminViewAccessToken is a security feature that allows you to prevent user admins from viewing the Dashboard API access tokens of other users. The default is
false
, however we recommend setting this to true
for enhanced security.
security.forbid_admin_reset_access_token
ENV: TYK_DB_SECURITY_FORBIDADMINRESETACCESSTOKENType:
bool
ForbidAdminResetAccessToken is a security feature that allows you to prevent user admins from resetting the Dashboard API access tokens of other users. The default is
false
, however we recommend setting this to true
for enhanced security.
ui
This section controls various settings for the look and feel of the Dashboard UI.ui.languages
ENV: TYK_DB_UI_LANGUAGESType:
map[string]string
This section lists the current languages the Dashboard UI supports
ui.trial
Trial section defines the information about the cloud trial period.ui.trial.end_date
ENV: TYK_DB_UI_TRIAL_ENDDATEType:
int64
EndDate contains the timestamp of end date of the trial in unix UTC timestamp.
ui.trial.hubspot_form
HubspotForm contains the hubspot form details.ui.trial.hubspot_form.region
ENV: TYK_DB_UI_TRIAL_HUBSPOTFORM_REGIONType:
string
The region of the account where the form was created.
ui.trial.hubspot_form.portal_id
ENV: TYK_DB_UI_TRIAL_HUBSPOTFORM_PORTALIDType:
string
The ID of the HubSpot account that the form was created in.
ui.trial.hubspot_form.form_id
ENV: TYK_DB_UI_TRIAL_HUBSPOTFORM_FORMIDType:
string
The form’s ID, which is used to retrieve the form definition.
ui.hide_help
ENV: TYK_DB_UI_HIDEHELPType:
bool
Set to true to hide the help tips.
ui.default_lang
ENV: TYK_DB_UI_DEFAULTLANGType:
string
This settings sets the default language for the UI. Default setting is
en
. Can be set to any of the other languages listed under ui.languages
.
ui.dont_allow_license_management
ENV: TYK_DB_UI_DONTALLOWLICENSEMANAGEMENTType:
bool
Do not allow license management screen
ui.labs
Feature flags for the UIui.dev
ENV: TYK_DB_UI_DEVType:
bool
Temporary : Enable dev mode feature on UI
ui.onboarding
Onboarding section controls the onboarding quick start wizard.ui.onboarding.enabled
ENV: TYK_DB_UI_ONBOARDING_ENABLEDType:
bool
Enabled is a boolean flag that enables the onboarding quick start wizard.
home_dir
ENV: TYK_DB_HOMEDIRType:
string
The path to the home directory of Tyk Dashboard, this must be set in order for Portal templates and other files to be loadable. By default this is
/opt/tyk-dashboard/
.
identity_broker
Tyk Dashboard has some preset Tyk Identity Broker configurations set up, for this integration to work, the Dashboard must be able to see an Identity Broker instance. The settings in this section are to enable this integration.identity_broker.enabled
ENV: TYK_DB_TIB_ENABLEDType:
bool
A boolean setting to enable the TIB integration (otherwise it will not appear in the UI).
identity_broker.host
When using external TIB, this is the URL where it’s reachableidentity_broker.host.connection_string
ENV: TYK_DB_TIB_HOST_CONNECTIONSTRINGType:
string
The URL to the host. It must be in the form: http://domain:port. Set this value only if you need to use external Tyk Identity Broker
identity_broker.host.secret
ENV: TYK_DB_TIB_HOST_SECRETType:
string
The shared secret between TIB and the Dashboard. This ensures all API requests between Dashboard and TIB are valid.
identity_broker.ssl_insecure_skip_verify
ENV: TYK_DB_TIB_SSLINSECURESKIPVERIFYType:
bool
Skip the TLS verification in the transport layer of the HTTP client. Is intended to have it enable for POC and testing purposes, do not use in production. Defaults to false.
use_sharded_analytics
ENV: TYK_DB_USESHARDEDANLAYTICSType:
bool
If using the
mongo-pump-selective
pump, where data is written to org-id-specific collections in MongoDB, then enabling this option will switch querying for analytics over to the independent collection entries.
enable_aggregate_lookups
ENV: TYK_DB_ENABLEAGGREGATELOOKUPSType:
bool
If using the new Aggregate Pump, Tyk Analytics can make use of the newer, faster Analytics lookup, to ensure that this can be made backwards compatible. This option must be set to
true
, in conjunction with the aggregate_lookup_cutoff
value.
aggregate_lookup_cutoff
ENV: TYK_DB_AGGREGATELOOKUPCUTOFFType:
string
Set this to a date value of the form
DD/MM/YYYY
. Any analytics queries before this date will fall back to the raw base log data collection (slower). This is to ensure continuity of service and a smooth upgrade process with no loss of data.
maintenance_mode
ENV: TYK_DB_MAINTENANCEMODEType:
bool
Set to true to enable special maintenance screen for portal and dashboard
allow_explicit_policy_id
ENV: TYK_DB_ALLOWEXPLICITPOLICYIDType:
bool
Set this value to
true
if you planning to use Tyk Sync or Tyk Operator
disable_parallel_sessions
ENV: TYK_DB_DISABLEPARALLELSESSIONSType:
bool
If set to true, it restricts an account to a single session. When an account logs in, any other open sessions for that account are logged out.
dashboard_session_lifetime
ENV: TYK_DB_DASHBOARDSESSIONLIFETIMEType:
int64
Dashboard session lifetime
portal_session_lifetime
ENV: TYK_DB_PORTALSESSIONLIFETIMEType:
int
Portal session lifetime
alternative_dashboard_url
ENV: TYK_DB_ALTERNATIVEDASHBOARDURLType:
string
Redirect all dashboard users to another URL
sso_permission_defaults
ENV: TYK_DB_SSOPERMISSIONDEFAULTSType:
map[ObjectGroup]string
Specify permissions of the user who logged in using Admin SSO API (for example Tyk Identity Broker). See Dashboard Admin SSO API for more details.
sso_default_group_id
ENV: TYK_DB_SSODEFAULTUSERGROUPType:
string
Default User Group which will be assigned to SSO users.
sso_custom_login_url
ENV: TYK_DB_SSOCUSTOMLOGINURLType:
string
Specify a custom dashboard login URL if you are using 3rd party authentication like TIB.
sso_custom_portal_login_url
ENV: TYK_DB_SSOCUSTOMPORTALLOGINURLType:
string
Specify custom portal login URL if you are using 3rd party authentication like TIB.
sso_enable_user_lookup
ENV: TYK_DB_SSOENABLEUSERLOOKUPType:
bool
When enabled, if dashboard already have user with given email found, it will be used for the login process
sso_custom_login_error_url
ENV: TYK_DB_SSOCUSTOMLOGINERRORURLType:
string
SSOCustomLoginErrorURL is an URL to redirect the user in case that SSO fails. If empty the user will be redirected to the error page of dashboard
audit
Enable dashboard audit. Example:- req_id - unique request ID
- org_id - organization ID
- date - date in RFC1123 format
- timestamp - unix timestamp
- ip - IP address the request originated from
- user - Dashboard user who performed the request
- action - description of the action performed (i.e. Update User`)
- method - HTTP-method of the request
- url - URL of the request
- status - HTTP response status of the request
- diff - provides a diff of changed fields (available only for PUT requests)
- request_dump - HTTP request copy (available if detailed_recording is set to true)
- response_dump - HTTP response copy (available if detailed_recording is set to true)
audit.enabled
ENV: TYK_DB_AUDIT_ENABLEDType:
bool
Enables audit logging, set to false by default.
audit.format
ENV: TYK_DB_AUDIT_FORMATType:
string
Format of audit log file. Possible values are
json
and text
(text is default value)
audit.path
ENV: TYK_DB_AUDIT_PATHType:
string
Path to the audit log
audit.detailed_recording
ENV: TYK_DB_AUDIT_DETAILEDRECORDINGType:
bool
Enables detailed records in the audit log. Set to false by default. If set to
true
then audit log records will contain the http-request (without body) and full http-response including the body`
audit.store_type
ENV: TYK_DB_AUDIT_STORETYPEType:
string
StoreType defines the method used to store audit logs. Possible values are:
- “db”: Store logs in a database.
- “file”: Store logs in a file.
- “no_op”: Disable logging (no operation).
enable_multi_org_users
ENV: TYK_DB_ENABLEMULTIORGUSERSType:
bool
Enable support for users with the same email for multiple organizations
health_check_endpoint_name
ENV: TYK_DB_HEALTHCHECKENDPOINTNAMEType:
string
Health check endpoint name. Default: /health
edge_endpoints
ENV: TYK_DB_EDGEENDPOINTSType:
EdgeEndpoints
List of Edge Gateways, that will be displayed in the Dashboard UI, so that you can select to which specific Gateway(s) you want to load an API into. Example:
Edge Gateway
there needs to be defined, its name, the ingress URL and a list of tags that APIs will use for triggering Gateways to load its configuration.
Note: For the Hybrid setup, users must fill in the Gateway URLs manually in the Tyk OAS API Definition servers section.
portal_session_secret
ENV: TYK_DB_PORTALSESSIONSECRETType:
string
Portal session secret
dcr_ssl_insecure_skip_verify
ENV: TYK_DB_DCRSSLINSECURESKIPVERIFYType:
bool
Ignore TLS verification for DCR calls
private_key_path
ENV: TYK_DB_PRIVATEKEYPATHType:
string
Private key path used to sign notifications coming to the gateways
oauth_redirect_uri_separator
ENV: TYK_DB_OAUTHREDIRECTURISEPARATORType:
string
oAuth redirect URI separator
statsd_connection_string
ENV: TYK_DB_STATSDCONNECTIONSTRINGType:
string
Enable StatsD monitoring when set to non empty. StatsD connection string.
statsd_prefix
ENV: TYK_DB_STATSDPREFIXType:
string
StatsD prefix
allow_unsafe_oas
ENV: TYK_DB_ALLOWUNSAFEOASType:
bool
Allow the modification of Tyk OAS APIs via the Tyk Classic API endpoints. Note that this is not recommended but is provided for early adopters and will be deprecated later
oas_config
OAS holds the configuration for various OpenAPI-specific functionalitiesoas_config.validate_examples
ENV: TYK_DB_OAS_VALIDATEEXAMPLESType:
bool
ValidateExamples enables validation of values provided in
example
and examples
fields against the declared schemas in the OpenAPI Document. Defaults to false.
oas_config.validate_schema_defaults
ENV: TYK_DB_OAS_VALIDATESCHEMADEFAULTSType:
bool
ValidateSchemaDefaults enables validation of values provided in
default
fields against the declared schemas in the OpenAPI Document. Defaults to false.
streaming
Streaming holds the configuration for Tyk Streaming functionalitiesstreaming.enabled
ENV: TYK_DB_STREAMING_ENABLEDType:
bool
This flag enables the Tyk Streaming feature.
labs
Experimental and beta features configuration settingsdisable_telemetry
ENV: TYK_DB_DISABLETELEMETRYType:
bool
Enable or disable sending telemetry data such as analytics, API configurations, etc.