Targeting
Standaard serveert een omgeving elk apparaat de standaardwaarde van de flag. Targeting is hoe je sommige apparaten iets anders serveert: bètatesters, een specifieke appversie, 10% van iedereen. Deze pagina legt de machine uit; de rollout-handleiding neemt je mee in het gebruik ervan.
Tags: wat regels zien
Section titled “Tags: wat regels zien”Regels toetsen tags — kleine sleutel/waarde-feiten over het apparaat dat de vraag stelt.
De SDK’s sturen automatisch een paar ingebouwde tags mee (appVersion, appBuild,
osVersion, platform, sdkVersion), en je app kan er zelf aan toevoegen, zoals
cohort: "beta".
Twee dingen over tags zijn de moeite waard om vroeg te weten:
- Tags worden geëvalueerd en vergeten. FortressFlag gebruikt ze om het ene verzoek te beantwoorden waarmee ze binnenkwamen, en gooit ze dan weg — ze worden nooit opgeslagen en nooit gelogd. Er bestaat nergens een taggeschiedenis, bewust.
- Tags zijn beweringen van je app. Een tag kan alles bevatten wat je code erin stopt — stop er dus geen geheimen of persoonsgegevens van je gebruikers in. Houd het bij cohorten, versies en configuratie.
Regels: een geordende lijst, eerste match wint
Section titled “Regels: een geordende lijst, eerste match wint”Elke flag + omgeving heeft een geordende lijst regels. Een regel is een groep condities
die met AND aan elkaar hangen — cohort is beta AND appVersion ≥ 2.0 — plus de
waarde die hij serveert bij een match.
De evaluatie is simpel en het waard om te verinnerlijken:
- Regels worden van boven naar beneden gecontroleerd.
- De eerste regel waarvan alle condities gelden bepaalt de waarde. Alles eronder wordt niet meer geraadpleegd — volgorde is betekenis, en je kunt regels in het dashboard herschikken.
- Een conditie op een tag die het apparaat niet meestuurde geldt niet. Geen tag, geen match — de regel wordt overgeslagen, nooit een fout.
- Als geen enkele regel matcht, serveert de standaard van de flag.
Een regel zonder condities matcht altijd — dat is de “alle anderen”-vorm die je onderaan een lijst zet.
Versievergelijkingen
Section titled “Versievergelijkingen”Condities kunnen versies vergelijken: appVersion ≥ 2.0. Versies splitsen op punten en
vergelijken numeriek, van links naar rechts, en ontbrekende onderdelen lezen als nul — dus
2.0 is gelijk aan 2.0.0, en 2.10 is nieuwer dan 2.9. Een apparaatversie die niet als
gepunte getallen parseert (zeg, 2.0-beta) laat de conditie simpelweg niet gelden.
Pre-release-achtervoegsels worden niet ondersteund — vergelijk gewone gepunte versies.
Segmenten: een stukje regel dat je benoemt en hergebruikt
Section titled “Segmenten: een stukje regel dat je benoemt en hergebruikt”Een segment is een benoemde AND-lijst van condities — beta-testers,
internal-devices — die je één keer definieert voor je hele organisatie en waarnaar je
verwijst vanuit regels over flags en omgevingen heen. Bewerk het segment, en elke regel die
het gebruikt volgt.
Dat bereik is precies waarom het bewerken van een segment rechten op productieniveau vereist: een segment waarnaar een productieregel verwijst, verandert productie wanneer het verandert, wie het ook opslaat.
Percentage-rollouts
Section titled “Percentage-rollouts”Elke regel kan een rollout-percentage dragen: in plaats van elk apparaat te matchen dat zijn condities haalt, matcht hij alleen de eerste N% ervan. Zo werkt “10% van de bètatesters” — eerst condities, dan de percentagepoort.
Drie eigenschappen maken rollouts betrouwbaar om op te leunen:
- Sticky. Of een apparaat binnen het percentage valt wordt berekend uit de identiteit van het apparaat en de sleutel van de flag — hetzelfde apparaat krijgt bij elk verzoek hetzelfde antwoord. Niemand flikkert een rollout in en uit, en 10% verhogen naar 20% houdt de oorspronkelijke 10% erin.
- Per flag. De berekening mengt de flagsleutel mee, dus een 10%-rollout op de ene flag en een 10%-rollout op een andere raken verschillende tienden van je vloot. Er is geen permanent onfortuinlijke 10% van de apparaten die elk experiment tegelijk krijgt.
- Er wordt niets opgeslagen. Cohortlidmaatschap is pure rekenkunde, per verzoek opnieuw berekend — FortressFlag houdt niet bij welke apparaten in welke rollout zitten. Er valt niets te lekken en niets op te ruimen.
Limieten
Section titled “Limieten”Ruim genoeg om ze zelden tegen te komen, vast zodat payloads begrensd blijven: tot 20 regels per flag per omgeving, 5 condities per regel (een segmentverwijzing telt als één en kan er zelf tot 10 bevatten), tagsleutels tot 64 tekens, conditiewaarden tot 256.
Waar nu heen?
Section titled “Waar nu heen?”- Stel een percentage-rollout in — de taak, stap voor stap
- Omgevingen en projecten — targeting is per omgeving
- Hoe flags je app bereiken — waarom apparaten je regels nooit zien