Skip to content

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:

  1. The dedicated feature-flags microservice.
  2. Environment variables for frontend toggles (show/hide sections) and backend toggles (enable/disable behavior).
  3. 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 (.env file in ops-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

Tags

feature-flags #config #env-vars #architecture