Flags en soorten
Een flag is een benoemde beslissing die je app aan FortressFlag vraagt: moet dit apparaat de nieuwe checkout zien? Welke tekst komt er op de koopknop? Hoeveel pogingen voordat we opgeven? Deze pagina geeft je de woordenschat waar de rest van de documentatie op bouwt.
Flags leven in een project, en hebben een waarde per omgeving
Section titled “Flags leven in een project, en hebben een waarde per omgeving”Elke flag hoort bij een project en wordt geïdentificeerd door zijn sleutel — een korte
naam in kleine letters, zoals new-checkout. De sleutel is wat je code opvraagt, en hij is
onveranderbaar na aanmaak: je uitgebrachte apps hebben de sleutel in hun code gebakken,
dus hem hernoemen zou ze breken. De weergavenaam van een flag kun je altijd aanpassen; de
sleutel is voor altijd.
Een flag heeft niet één waarde — hij heeft een waarde per omgeving. new-checkout kan
aan staan in dev, aan het uitrollen zijn in staging, en uit staan in production,
allemaal tegelijk. Je schakelt en target elke omgeving onafhankelijk.
De drie soorten
Section titled “De drie soorten”Elke flag heeft een soort, gekozen bij aanmaak en daarna onveranderbaar:
| Soort | Waarden | Goed voor |
|---|---|---|
| Boolean | true / false |
Kill switches, feature gates, rollouts |
| String | Benoemde tekstvarianten | Tekstexperimenten, algoritmekeuze, thema’s |
| Number | Benoemde numerieke varianten | Limieten, time-outs, drempelwaarden |
De soort is onveranderbaar om dezelfde reden als de sleutel: je code leest de flag via een
getypeerde aanroep (isEnabled, stringValue, numberValue), en een flag die onder een
uitgebrachte app van soort veranderde zou voor die app nergens meer op slaan.
Varianten
Section titled “Varianten”String- en number-flags serveren varianten — benoemde waarden zoals control →
"buy-now" en treatment → "start-free". De namen zijn voor jou en je dashboard; de
apparaten van je gebruikers ontvangen alleen de waarde. Variantnamen verlaten het
managementvlak nooit.
Standaardwaarden, en de standaard achter de standaard
Section titled “Standaardwaarden, en de standaard achter de standaard”Twee verschillende dingen heten een standaardwaarde, en het loont om ze uit elkaar te houden:
- De standaard van de flag is wat een omgeving serveert wanneer geen enkele targetingregel matcht. Voor een boolean-flag is dat zijn aan/uit-stand; voor een multivariate flag is het de variant die je als standaard kiest.
- De standaard van je code is de waarde die je meegeeft op de aanroepplek —
isEnabled("new-checkout", default: false). Dit is de bodem van de fallback-keten: het is wat je app gebruikt wanneer hij FortressFlag nog nooit heeft bereikt, of wanneer de flag in die omgeving niet bestaat (of niets heeft om te serveren).
Een gloednieuwe multivariate flag zonder gekozen standaardvariant serveert niets — de standaard van je code geeft antwoord totdat jij beslist. Dat is bewust: een flag die je nog niet af hebt geconfigureerd hoort zich te gedragen als een flag die er niet is.
De levenscyclus: archiveren, terugzetten, definitief verwijderen
Section titled “De levenscyclus: archiveren, terugzetten, definitief verwijderen”Een flag verwijderen is omkeerbaar — tot op zekere hoogte. Archiveren haalt hem uit je apps: op elk online apparaat stopt de flag binnen ongeveer een minuut met resolven, en de standaardwaarden van je code nemen het over. Een gearchiveerde flag kan binnen de bewaarperiode intact worden teruggezet, of daarna permanent worden verwijderd. De archieflijst leeft binnen elk project, naast de flags die het bevat.
Als een flag 90 dagen onaangeroerd is blijven liggen, markeert het dashboard hem als stale — een duwtje om te archiveren, nooit automatisch archiveren. Flags die je vergeten bent zijn complexiteit waar je codebase nog steeds voor betaalt.
Waar nu heen?
Section titled “Waar nu heen?”- Targeting — regels, segmenten en percentage-rollouts
- Omgevingen en projecten — waar flags leven
- Hoe flags je app bereiken — wat een apparaat werkelijk ontvangt