Skip to main content
Every project comes with three default environments: production, staging, and development. You can create additional environments for any purpose — feature branches, QA, canary deployments. Each environment has its own:
  • Flag configuration (enabled/disabled, rules, default value)
  • API keys (server and client)
  • Edge cache snapshot (synced on every config change)

Protected environments

A protected environment requires all flag changes to go through a change proposal workflow instead of being applied directly. No flag version can be created on a protected environment without an approved proposal. This is a Pro/Enterprise feature. Enabling it requires setting protected: true via Update Environment.

Change proposal flow

  1. A proposer calls Create Proposal with the new FlagConfig.
  2. The proposal sits in pending state.
  3. A reviewer (a different actor than the proposer) calls Approve or Reject.
  4. On approval, a new flag version is created and the edge cache is synced automatically.
Self-approval is forbidden — the same API key or user that created the proposal cannot approve it. This enforces a four-eyes principle.

Edge cache sync

Every time a flag config changes, the full flag bundle for that environment is written to the edge cache. The Delivery API reads from the cache — never from the database — keeping evaluation latency at the edge independent of database load. You can also trigger a manual sync via Trigger Sync if the edge cache falls out of sync.