Skip to content

Flag Lifecycle & Workflow

The complete feature flag lifecycle in можно.: from creation to archival. Flag organization with tags, naming conventions, and typical team workflow.

Flag Lifecycle

A flag in можно. has two states:

StateWhat happens
ActiveFlag is visible in the dashboard. SDKs fetch its configuration and evaluate locally. Default state after creation.
ArchivedFlag hidden from main lists. SDKs stop receiving its configuration. Audit history is preserved.

Activation rules are configured per environment — enabled/disabled, context constraints, segments, and percentage rollout. See Targeting and Rollout.

Creating a Flag

Navigate to Flags and click New Flag. Required fields:

FieldRequiredDescription
KeyYesUnique identifier, immutable after creation
NameYesHuman-readable label shown in the dashboard.
DescriptionNoWhat the flag does and why it exists.
TypeYesRELEASE — standard feature flag for gradual rollout. KILLSWITCH — emergency shutoff.
TagsNoLabels for grouping and filtering.

After creation the flag is immediately active. Configure activation rules — otherwise the flag returns false for everyone.

Tip: The flag key is its identifier in code (isEnabled("new-checkout", ctx)). Make keys descriptive. Avoid flag-42. See Best Practices for naming conventions.

Editing a Flag

All fields except key can be modified. Every change is recorded in the audit log.

Common edits:

  • Adjusting activation rules (enabled, constraints, segments, percentage)
  • Updating name and description
  • Managing tags

Typical Team Workflow

flowchart LR
    A[Create<br/>flag] --> B[dev<br/>100%]
    B --> C[staging<br/>QA testing]
    C --> D[production<br/>1% canary]
    D --> E[10%]
    E --> F[50%]
    F --> G[100%]
    G --> H[Remove<br/>old code]
    H --> I[Archive<br/>flag]

Each stage is a change to activation rules on a specific environment. Canary launch and gradual rollout in production — with metrics monitoring at each step.

An example workflow — adjust to your team's needs:

StageEnvironmentConfigurationWho
CreateFlag created, no rules yetDeveloper
DevelopmentdevEnabled, 100%Developer
TestingstagingEnabled, QA segmentQA
Canaryproduction1–5%Release engineer
Rolloutproduction10% → 50% → 100%Release engineer
CleanupOld code removed from appDeveloper
ArchiveFlag archivedDeveloper

Archive and Delete

When to Archive

  • Flag at 100% and old code removed
  • Need to preserve audit history
  • Flag may be needed again

When to Delete

  • Flag created in error (typo in key)
  • Aborted experiment flag
  • Test flag from local development

Organizing Flags with Tags

Tags are flag metadata in key:value format. They let you group and filter flags independently of their names. A single flag can have multiple tags.

Why Tags Matter

You have 50 flags. Keys are descriptive, but finding all flags owned by the checkout team is impossible without tags:

TaskWithout tagsWith tags
Find all checkout team flagsScroll through all 50 flagsFilter team:checkout — 3 flags
Show all emergency kill switchesSearch by kill- prefix in keysFilter type:killswitch — reliable
Find flags for a specific serviceGuess from namesFilter service:api

Creating Tags

Tags are created in the Tags section in the sidebar. Each tag is a pair:

FieldExample
Tag nameteam
Valuecheckout

Once created, a tag can be assigned to any flag during creation or editing.

CategoryFormatExamples
Teamteam:nameteam:checkout, team:platform
Flag typetype:purposetype:killswitch, type:experiment
Serviceservice:nameservice:api, service:payments
Statusstatus:statestatus:deprecated, status:permanent

A flag can carry multiple tags: team:checkout, type:killswitch, service:api — the flag belongs to a team, is classified by type, and is bound to a service simultaneously.

Next Steps

Released under the BSL 1.1 License.