Configuration File
The default way that Flipt is configured is with the use of a configuration file default.yml. This file is read when Flipt starts up and configures several important properties for the server. The server will check in a few different locations for server configuration (in order):--configflag as an override{{ USER_CONFIG_DIR }}/flipt/config.yml(theUSER_CONFIG_DIRvalue is based on your architecture and specified in the Go documentation)/etc/flipt/config/default.yml
We provide both a JSON
schema
and a Cue
schema
that you can use to validate your configuration file and its properties.
Environment Substitution
The configuration file also supports environment variable substitution as ofv1.45.0.
This allows you to use environment variables in your configuration file. For example, you can use the FLIPT_CUSTOM_DB_URL environment variable in the configuration file like this:
${FLIPT_CUSTOM_DB_URL} with the value of the FLIPT_CUSTOM_DB_URL environment variable. The format for environment variable substitution is ${ENV_VAR}.
Remote Configuration
Flipt supports fetching configuration from a remote source. This is useful for managing configuration across multiple instances of Flipt. The remote configuration source can be a URL to a configuration file stored in one of the following object storage services:- S3 (e.g.:
s3://bucket-name/path/to/config.yml) - Azure Blob Storage (e.g.:
azblob://container-name/path/to/config.yml) - Google Cloud Storage (e.g.:
googlecloud://bucket-name/path/to/config.yml)
config.yml file with the URL to the remote configuration file in the --config flag when starting Flipt.
AWS_ACCESS_KEY_IDandAWS_SECRET_ACCESS_KEYAZURE_STORAGE_ACCOUNTandAZURE_STORAGE_KEYorAZURE_CLIENT_ID,AZURE_TENANT_ID, andAZURE_CLIENT_SECRETGOOGLE_APPLICATION_CREDENTIALS
Environment Variables
All options in the configuration file can be overridden using environment variables using the syntax:FLIPT_ prefix and be in UPPER_SNAKE_CASE format.
Using environment variables to override defaults is especially helpful when
running with Docker as described in the Docker
documentation.
. should be replaced by _. For example,
given these configuration settings:
Multiple Values
Some configuration options can have a list of values. For example, thecors.allowed_origins option can have multiple origins.
In this case, you can use a space separated list of values for the environment variable override:
Configuration Parameters
User Interface
Logging
Server
Authentication
Authentication Methods: Token
Authentication Methods: OIDC
Authentication Methods: GitHub
Authentication Methods: Kubernetes
Authentication Methods: JWT
Authorization
Authorization Backend: Local
Authorization Backend: Bundle
Authorization Backend: Object
Authorization Backend Object: S3
Database
Storage
Storage Local
Storage Git
Storage Object
Storage Object: S3
Storage Object: Azure Blob
Storage Object: Google Cloud Storage
Storage OCI
Cache
Cache: Memory
Cache: Redis
Audit Events
Audit Events: Log
Audit Events: Webhook
Audit Events: Kafka
Analytics
Analytics: Clickhouse
Analytics: Prometheus
Metrics
Metrics: OTLP
Tracing
Tracing: Jaeger
Tracing: Zipkin
Tracing: OTLP
Deprecations
From time to time configuration options will need to be deprecated and eventually removed. Deprecated configuration options will be removed after ~6 months from the time they were deprecated. All deprecated configuration options will be removed from the documentation, however, they will still work as expected until they’re removed. A warning will be logged in the Flipt logs when a deprecated configuration option is used. All deprecated options are listed in the DEPRECATIONS file in the Flipt repository as well as the CHANGELOG.Experiments
From time to time, Flipt may introduce new features that are not considered fully supported. These features are considered experimental and may change or be removed in future releases. We put experimental features behind a configuration setting that can be enabled in the configuration file. To enable experimental features, set theexperimental.{feature}.enabled configuration option to true.