Skip to main content

Configuration model

Cerulion CLI uses layered configuration to keep environments isolated and reproducible.
  • Global config: ~/.config/cerulion/config.yaml
  • Profile overrides: ~/.config/cerulion/profiles/<name>.yaml
  • Project state: .cerulion/config.yaml and .cerulion/state.json inside each repo
Values are resolved in this order: flags → environment variables → project config → profile → global defaults.

Managing profiles

Profiles let you separate staging, production, and sandboxes.
# Create a profile
cerulion profile create staging --api https://api.staging.cerulion.com

# Switch active profile
cerulion profile use staging

# List configured profiles
cerulion profile list --output table
Typical profile keys:
~/.config/cerulion/profiles/staging.yaml
api: https://api.staging.cerulion.com
telemetry: https://telemetry.staging.cerulion.com
transport:
  local: iceoryx2
  network: zenoh
credentials: ~/.config/cerulion/credentials-staging.json

Project-level configuration

Project configs travel with the repo to keep builds deterministic.
.cerulion/config.yaml
project: telemetry-hub
schema: ./schemas
build:
  optimize: speed
  output: ./dist
run:
  watch: true
  env: local
Update values with the CLI:
cerulion config set build.optimize size
cerulion config get run.env

Environment variables

  • CERULION_PROFILE: force a profile for the current shell/session
  • CERULION_CONFIG: custom path to a project config
  • CERULION_API_ENDPOINT: override API endpoint (useful in previews)
  • CERULION_TOKEN: authentication token for CI; overrides cached credentials
Avoid committing tokens or profile files to source control. .cerulion/state.json and credentials are ignored by default.

Secrets and credentials

Credentials are stored in ~/.config/cerulion/credentials by default with file permissions set to the current user. For CI:
cerulion auth login --token $CERULION_TOKEN --non-interactive
Combine with an ephemeral profile:
cerulion profile create ci --api https://api.staging.cerulion.com
cerulion profile use ci
  • Use optimize: speed during development; switch to size for constrained targets.
  • Keep schema paths relative to the repo root to avoid platform-specific issues.
  • Enable run.watch: true locally for faster feedback; disable in CI.
Run cerulion status after any config change to verify the active profile, transports, and project linkage.