Skip to content

Config Module

SDK reference for configuration management

The config module provides organization-scoped configuration storage with secret encryption.

from bifrost import config

Get a configuration value.

async def get(
key: str,
default: Any = None,
scope: str | None = None,
) -> Any
ParameterTypeDescription
keystrConfiguration key
defaultAnyDefault if key doesn’t exist
scopestr | NoneOrganization scope (see below)

Scope parameter:

  • None (default): Use execution context’s organization
  • Org UUID string: Target specific organization
  • "global": Access platform-level config

The configuration value, or default if not found. Secrets are automatically decrypted.

api_key = await config.get("external_api_key")
timeout = await config.get("request_timeout", default=30)
global_setting = await config.get("platform_key", scope="global")

Set a configuration value.

async def set(
key: str,
value: Any,
is_secret: bool = False,
scope: str | None = None,
) -> None
ParameterTypeDescription
keystrConfiguration key
valueAnyValue to store (must be JSON-serializable)
is_secretboolEncrypt the value at rest
scopestr | NoneOrganization scope (see below)

Scope parameter:

  • None (default): Use execution context’s organization
  • Org UUID string: Target specific organization
  • "global": Store at platform-level
# Regular value
await config.set("max_retries", 3)
# Secret value (encrypted at rest)
await config.set("api_secret", "sk-xxx", is_secret=True)
# Global platform setting
await config.set("platform_feature", True, scope="global")

List all configuration values.

async def list(scope: str | None = None) -> ConfigData
ParameterTypeDescription
scopestr | NoneOrganization scope (see below)

Scope parameter:

  • None (default): Use execution context’s organization
  • Org UUID string: Target specific organization
  • "global": List platform-level config

ConfigData object with flexible access patterns.

cfg = await config.list()
# Dot notation
print(cfg.api_url)
# Dict access
print(cfg["api_url"])
# Check existence
if "api_key" in cfg:
print("API key configured")
# Iterate keys
for key in cfg.keys():
print(key)

Delete a configuration value.

async def delete(key: str, scope: str | None = None) -> bool
ParameterTypeDescription
keystrConfiguration key to delete
scopestr | NoneOrganization scope (see below)

Scope parameter:

  • None (default): Use execution context’s organization
  • Org UUID string: Target specific organization
  • "global": Delete platform-level config
deleted = await config.delete("old_setting")

A dict-like container with multiple access patterns:

class ConfigData(BaseModel):
data: dict[str, Any]
# Supports:
# - cfg.key (dot notation)
# - cfg["key"] (dict access)
# - "key" in cfg (membership)
# - cfg.keys() (iteration)

Values stored with is_secret=True:

  • Are encrypted at rest in the database
  • Are automatically decrypted when retrieved via config.get()
  • Are masked in logs and UI displays

All config operations are scoped to an organization:

  • In workflows, scope is automatically set from execution context
  • For CLI/local development, specify scope explicitly or use default from credentials
  • Use scope="global" for platform-wide settings