Flag Lifecycle
Feature flags have a lifecycle from creation to retirement. Managing this lifecycle is critical to avoiding technical debt.
Status Model
| Status | Meaning | Next Steps |
|---|---|---|
active | Flag is in use and being evaluated | Monitor, iterate, or roll out |
rolled_out | Feature fully enabled for all users | Remove flag from code, then deprecate |
deprecated | Flag is scheduled for removal | Delete after confirming no SDK references |
archived | Flag retained for audit purposes only | No action needed |
Lifecycle Stages
text
Created → Configured → Enabled (Dev) → Enabled (Staging) → Enabled (Production) → Fully Rolled Out → Archived/DeletedCleanup Timelines by Category
| Category | Expected Cleanup Timeline |
|---|---|
| Release | Days to weeks after full rollout |
| Experiment | After experiment concludes and winner is declared |
| Ops | Rarely — ops flags are often long-lived |
| Permission | Rarely — permission flags may be permanent |
Flag Expiration
bash
curl -X PUT https://api.featuresignals.com/v1/projects/$PROJECT_ID/flags/my-flag \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"expires_at": "2026-06-01T00:00:00Z"}'Kill Switch
bash
curl -X POST https://api.featuresignals.com/v1/projects/$PROJECT_ID/flags/my-flag/kill \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"env_id": "production-id"}'