Features / Registry
Feature Registry
The Registry is the master list of every feature your SDK has reported — "Features detected by the SDK. Manage visibility and targeting remotely." Each row is one feature; its Status is the default everyone sees unless a plan or targeting rule overrides it. Everything here is per-environment — you're editing whichever of Test / Live is selected above.
The status of a feature
The Status dropdown on each row is the heart of the Registry. Six of the seven are static — the same for everyone. The seventh, targeted, hands resolution over to your plan and targeting rules.
| Status | Everyone sees | SDK resolves to |
|---|---|---|
| Active | The feature, on and usable | enabled |
| New | On, with a NEW badge | new |
| Beta | On, with a BETA badge | beta |
| Coming Soon | A visible but inert teaser | coming_soon |
| Greyed | A locked padlock | greyed |
| Hidden | Nothing — fully hidden (kill switch) | hidden |
| Targeted | Depends — resolved per user | per plan / targeting rules |
hidden always wins — it's the kill switch, and plan/targeting rules never touch it. targeted is the only status that defers to per-user rules. The static six show the same thing to everyone while the paywall is off — once it's on, every non-hidden status is still plan-gated: a plan rule resolves it per plan, and with no rule it locks for everyone.targeted and hidden don't cascade).Reading the table
Above the table, status tiles (Total, Active, New, Beta, Coming Soon, Greyed, Targeted, Hidden) count features by status — click one to filter. The Active / Archived sub-tabs switch between live and archived features. Each row has these columns:
| Column | What it shows |
|---|---|
| ID | A short serial id like #42 — searchable. |
| Feature | The slug, plus platform badges (Python, Swift…) and state badges: JUST ADDED (< 24 h), STALE (not seen in 30 d while active), PENDING DEPLOY (Live edit not yet deployed). |
| Last seen | When the SDK last reported this feature. |
| PLANS | For targeted features, a rule-based badge; for plan-gated features, the plan badges (dimmed “via pack” if inherited); or 🔒 locked — no plan when the paywall is on but nothing grants access. The ⚡ button opens per-feature plan gating. |
| Status | The dropdown described above (read-only in the Archived view). |
Find and organize
| Control | What it does |
|---|---|
| Search | Match by name substring or serial id — e.g. #42 or 42. |
| Group by | None, or Slug prefix — groups features by everything before the first -, so ai-model and ai-model-api both fall under ai, and a debug-* family folds under debug. Each group is collapsible, with a Set group status… control once it has 2+ features. The choice persists per app. |
| Bulk actions | Select rows to change status, gate to plans, or archive/restore/delete several at once. |
hidden stays hidden. Assign plans right here — the ⚡ gate on a row, or Gate to plans… in the bulk bar after selecting features — or in the Plans matrix. All three grant access.Discover, archive, delete, clear
| Action | Effect |
|---|---|
| Discover Features | Forces connected test instances to re-report now. See Discovery. |
| Archive | Soft-hides a feature into the Archived tab without deleting it. The SDK re-discovering it (test) un-archives it. |
| Delete | Removes the feature across both Test and Live — per-env state, pack memberships, and per-user overrides. A test build re-registers the slug as hidden on its next ping; live builds are read-only. |
| 🗑 Clear all features | Wipes the entire registry for the app. Documented in Environments. |