Skip to main content
You rarely need to edit a config file by hand: bronto auth login writes the region, and bronto config set writes everything else. This page covers what is stored where, and which value wins when several sources disagree.

Precedence

Each setting comes from the first of these sources that has a value: The API key is resolved separately: --api-key, then BRONTO_API_KEY, then the keychain. It’s never read from a file (see Authentication).

See what’s in effect

bronto config list shows every resolved value and where it came from (flag, env, project, user, default, or keychain). The API key is masked.
Here everything comes from BRONTO_* environment variables. bronto config get <key> prints one value. It fails with config_unknown_key if the key has no value from any source.

Change a setting

bronto config set <key> <value> writes to the user config file, in the active profile’s section:
Use --profile <name> to write to a profile other than the active one. Most commands refuse a profile that has neither a section in the user config file nor a stored key, and exit with profile_not_found (exit 4), so a typo such as --profile p2x doesn’t quietly fall back to the default region. bronto auth login, bronto config commands, and any command given a key through --api-key or BRONTO_API_KEY accept a new profile name. config set only accepts the keys in the table below, and checks the value before writing it: a typo such as timout, timeout abc or region EU fails with an exit code of 2 and leaves the file unchanged. If the file already holds an invalid value (for example from a hand edit), other commands fail with config_invalid_timeout, config_invalid_max_retries or config_invalid_region, but bronto config list, get and set still work, so you can repair it:
To clear a setting, set it to an empty value. The CLI then falls back to the next source or the default, for example the region’s API URL:
config set changes only the value on that key’s line and keeps a comment at the end of it. Other comments and keys the CLI doesn’t use stay as they are. If the file uses TOML syntax the line edit can’t handle safely, such as inline tables, the CLI rewrites the whole file instead: every key is kept, but comments are lost.

Settings

Two secrets are environment-only and can’t be set with config set: BRONTO_API_KEY and BRONTO_ASK_API_KEY. Environment variables lists every variable the CLI reads.

The user config file

The file is bronto/config.toml inside your OS’s user config directory: Set BRONTO_CONFIG_DIR to use a different parent directory. The REPL history and the fallback credentials file live in the same bronto/ directory. The file holds a default profile name and one section per profile. Values can be strings or plain numbers (timeout = 60), here and in a project file:

Profiles

A profile bundles settings and its own stored API key. Select one per command with --profile <name> or BRONTO_PROFILE, or change the default with bronto auth switch:
Authentication covers logging in to and out of profiles.

Project files

A .bronto.toml in your working directory, or in any directory above it, applies to every command run there. It’s a flat TOML file with no profile sections. Use it to pin a repository to its dataset:
A project file can set profile, region, output, default_dataset, timeout, and max_retries. Nothing else is read from it. A profile in a project file switches commands to that profile’s stored key and base_url, which may point at a different account than you expect. Each command that uses it says so on stderr, unless you pass --quiet:
--profile and BRONTO_PROFILE take precedence over the project file.
Why project files are restrictedThe CLI finds .bronto.toml by walking up from wherever you are, so it might belong to a repository you just cloned. To keep such a file from sending your API key elsewhere, it can’t set base_url, ingest_url, ask_url, or app_url, and region must be a plain slug like eu (lowercase letters, digits, dashes). A project file that contains api_key is rejected with an error.