| name | unleash-feature-toggle |
| description | Hjelp til å opprette og rydde opp feature toggles i Holmes-porteføljen — navngivning, type, plassering og tverrrepo-opprydding |
| license | MIT |
| compatibility | Spring Boot Kotlin + React, Holmes-porteføljen |
| metadata | {"domain":"backend","tags":"unleash feature-toggle feature-flag kotlin react holmes"} |
Unleash Feature Toggle Skill
Hjelper deg med å opprette og rydde opp feature toggles i Holmes-porteføljen
(nav-persondata-api, watson-sok, watson-sak).
Unleash-dashboardet: holmes-unleash-web.iap.nav.cloud.nais.io
When to Use
- Du skal innføre en ny feature toggle og trenger hjelp med navn, type og plassering
- Du skal rydde opp etter en toggle som ikke lenger trengs
Opprette en ny toggle
Steg 1 — Velg navn
Format: <prefix>-v-<major>-<minor>
| Kontekst | Prefix | Eksempel |
|---|
| Funksjonalitet i watson-sok | watson-sok | watson-sok-v-1-2 |
| Funksjonalitet i watson-sak | watson-sak | watson-sak-v-2-0 |
| Generell / tverrgående | (fritt valg med begrunnelse) | ny-tilgangspolicy |
Versjonsnummeret speiler hvilken release funksjonaliteten tilhører.
Steg 2 — Velg type i Unleash-dashboardet
| Type | Bruk når |
|---|
| Release | Ny funksjonalitet som skal rulles ut og deretter fjernes — vanligste valg |
| Experiment | A/B-testing eller gradvis utrulling til en andel brukere |
| Operational | Driftsbryter som kan leve lenger (f.eks. nødstopp for en integrasjon) |
| Permission | Tilgangskontroll per brukergruppe |
Steg 3 — Legg til i backend
enum class Toggle(
val toggleName: String,
) {
WATSON_SOK_V_1_2("watson-sok-v-1-2"),
}
Bruk via FeatureToggleService:
@Service
class MinService(private val toggles: FeatureToggleService) {
fun gjørNoe() {
if (toggles.isEnabled(Toggle.WATSON_SOK_V_1_2)) {
} else {
}
}
}
NAVident-konteksten settes automatisk per request via MDC — ingen manuell håndtering nødvendig.
Steg 4 — Legg til i frontend (om relevant)
const isEnabled = useFlag("watson-sok-v-1-2");
Steg 5 — Aktiver i riktig rekkefølge
- Opprett toggle i dashboardet før du merger kode
- Deploy til dev og prod (toggle er av)
- Aktiver i
development — verifiser
- Aktiver i
production — verifiser
Verifiser alltid i development før production. Utvikleren som implementerte featuren
har ansvar for å aktivere og verifisere i prod.
Rydde opp etter en toggle
Bruk denne sjekklisten når en toggle er verifisert i prod og skal fjernes.
Sjekkliste
Unleash-dashboardet
Backend
Frontend (om togglen var i bruk der)
Tverrrepo-søk (unngå å glemme noe)
Søk etter toggle-navnet i alle repoer:
grep -r "watson-sok-v-1-2" ../watson-sok ../nav-persondata-api ../watson-sak-frontend
Boundaries
✅ Always
- Opprett toggle i dashboardet før kode merges
- Verifiser i
development før production
- Bruk
Toggle-enum i backend — aldri hardkodede strenger
- Rydd opp tverrrepo ved sletting — sjekk alle berørte repoer
⚠️ Ask First
- Avvik fra navnekonvensjonen
<prefix>-v-<major>-<minor>
- Toggles med lang levetid (operational) — vurder om det faktisk er en config-verdi
🚫 Never
- Aktiver i
production uten å ha verifisert i development først
- La en avviklet toggle bli liggende i koden
- Fjern kun dashboardet-togglen uten å rydde opp koden (eller omvendt)