Artikkelen forklarer når et CMS bør bruke feature flags og maintenance bypass. Den dekker gradvis utrulling, test i produksjonslignende miljø, tilgangskontroll, logging, opprydding og risikoen ved permanente unntak.
Feature flags og maintenance bypass kan være svært nyttige i et CMS. De lar utviklere aktivere nye funksjoner gradvis og gi betrodde roller tilgang under vedlikehold. Men de må behandles som produksjonsmekanismer, ikke som raske snarveier.
Et CMS er sjelden ferdig. Nye moduler kommer til, design endres, statistikk bygges ut, og publiseringsflyt forbedres. Samtidig må nettstedet holde seg tilgjengelig. Feature flags og maintenance bypass er verktøy som kan gjøre dette tryggere, men bare hvis de brukes med tydelige regler.
Hva er en feature flag?
En feature flag er en bryter som bestemmer om en funksjon er aktiv eller ikke. Den kan ligge i konfigurasjon, database eller kode. Hensikten er å skille utrulling av kode fra aktivering av funksjon. Koden kan være installert, men funksjonen vises bare for bestemte roller, miljøer eller testbrukere.
Dette er nyttig når en ny side, modul eller integrasjon må testes uten at alle brukere ser den med en gang. Det kan også gjøre rollback enklere: man kan slå av funksjonen uten å rulle tilbake hele kodebasen.
Hva er maintenance bypass?
Maintenance bypass betyr at nettstedet kan være i vedlikeholdsmodus for vanlige brukere, mens utvalgte administratorer fortsatt får tilgang. Det er nyttig ved oppdateringer, migreringer og større designendringer. Uten bypass kan administratoren miste mulighet til å teste systemet mens det er stengt.
Men bypass er også risikabelt. Hvis den er for bred, dårlig logget eller skjult i koden, kan den fungere som en bakdør. Den bør derfor være rollebasert, synlig i kontrollpanelet og begrenset til tydelige behov.
Når bør et CMS innføre feature flags?
Feature flags bør vurderes når systemet får funksjoner som ikke bør slippes til alle samtidig. Eksempler er nytt design, nytt kommentarsystem, nye AdSense-plasseringer, ny webstatistikk eller endringer i publiseringsflyt.
De er også nyttige når en funksjon krever gradvis test. En Moderator kan se en ny modereringsflyt før vanlige medlemmer. En Administrator kan teste ny artikkelvisning før den blir offentlig. En Premium Administrator kan få systemverktøy som ikke skal vises for andre.
Flags må ikke bli permanente roteloft
Den største faren med feature flags er at de aldri ryddes bort. Midlertidige brytere blir liggende i årevis, og ingen vet lenger hvorfor de finnes. Da blir koden vanskeligere å forstå, og testmatrisen vokser.
Hver flagg bør derfor ha navn, formål, eier og forventet levetid. Hvis en funksjon er permanent, bør den etter hvert bli vanlig kode eller en tydelig systeminnstilling. Hvis den var midlertidig, bør den fjernes når utrullingen er ferdig.
Tilgangskontroll må være streng
OWASP anbefaler konsekvent autorisering og minste privilegium. Det gjelder også feature flags og bypass. En flaggverdi i database eller konfigurasjon skal ikke alene gi bruker tilgang til sensitiv funksjonalitet. Backend må fortsatt kontrollere rolle og rettighet.
Dette er særlig viktig for adminnære funksjoner. En skjult URL, en flaggparameter eller en uferdig meny er ikke tilgangskontroll. Den faktiske handlingen må beskyttes.
Logging er en del av kontrollen
Når en flagg aktiveres eller en bypass brukes, bør systemet logge det. Logging gjør det mulig å se hvem som aktiverte hva, når det skjedde, og hvilken del av systemet som ble påvirket. OWASPs logging-veiledning peker på viktigheten av sikkerhetsrelevante hendelser, men advarer også mot å logge sensitive data.
For WEBoracle bør dette bety at endringer i feature flags, vedlikeholdsmodus og bypass skrives til en audit logg med bruker, tidspunkt og handling.
WEBoracle-vurdering
WEBoracle har flere områder der feature flags kan være nyttig: redesign av offentlig side, nye tutorials, webstatistics, AdSense-klargjøring, forumfunksjoner og kontrollpanelmoduler. Men flags bør ikke brukes som erstatning for planlagt lansering eller rettighetsmodell.
Maintenance bypass bør være begrenset til roller som faktisk trenger den, for eksempel Administrator og Premium Administrator. Den bør aldri åpne offentlig frontend eller private systemverktøy for feil brukergruppe.
Konklusjon
Feature flags og maintenance bypass er gode verktøy når et CMS skal utvikles uten unødvendig risiko. Men de må være styrt, logget og tidsbegrenset. Brukt riktig gir de tryggere utrulling. Brukt slurvete blir de skjulte snarveier som gjør systemet vanskeligere å sikre.