Feature Flags¶
TL;DR — Three mechanisms are used for feature flagging: a dedicated feature-flags microservice, environment variables (frontend and backend), and per-team config microservices (e.g.
ats-config-svc).
Overview¶
Three mechanisms coexist for feature flagging:
- The dedicated feature-flags microservice.
- Environment variables for frontend toggles (show/hide sections) and backend toggles (enable/disable behavior).
- Per-team config microservices (e.g.
ats-config-svc) that expose flags relevant to one team's stack.
Option A — Feature-flags microservice¶
- A shared microservice with a per-environment admin API.
- Centralized, runtime-togglable, observable.
- Adds a runtime dependency.
Admin API URLs (per environment)¶
Accessible only through the VPN (internal ingress — see aws-infrastructure.md).
| Environment | URL |
|---|---|
dev |
https://feature-flag-api.internal.dev.securitize.io/admin |
rc |
https://feature-flag-api.internal.rc.securitize.io/admin |
sandbox |
https://feature-flag-api.internal.sandbox.securitize.io/admin |
prod |
https://feature-flag-api.internal.securitize.io/admin |
Credentials
Admin credentials (user + password) must be requested from your team lead — they are not distributed in this wiki.
Option B — Environment variables¶
- Frontend (modern, SST): env vars in
infra/.env.{env}in the repo show/hide sections. - Frontend (legacy,
Jenkinsfile-UI): env vars live in AWS Parameter Store at/secrets/{env}/{team}/{service}/and are updated via dedicated Jenkins jobs (see frontend-architecture.md). - Backend: env vars in the K8s ConfigMap (
.envfile inops-scripts/k8s/{service}/) enable/disable behavior. - Changing a flag requires a redeploy (or, for legacy frontends, a Parameter Store update + redeploy) — no runtime toggle.
ConfigMap updates for backend services live in ops-repos.md.
Option C — Per-team config microservices¶
Example: ats-config-svc for the ON (Onboarding) team's ATS MFE.
- Acts as a runtime config source.
- Services/frontends query it for flag state.
- Scoped to a team's services, not a general-purpose feature flag platform.
Recommendations for new flags¶
Quick decision guide
- Short-lived toggle (rollout of one feature) → env var, redeploy.
- Long-lived toggle (A/B test, gradual rollout) → consider the feature-flags microservice.
- Per-team config many services share → team config microservice.
See also¶
- Ops Repositories — Where ConfigMaps live (
ops-scripts).