Skip to content

Feature Flags

Gate features in your backends and web frontends with flags, per-environment targeting, segments and percentage rollouts, evaluated through OpenFeature.

Updated View as Markdown

EZGH Feature Flags turns features on and off in your backends and web pages without a deploy: boolean and multivariate flags, targeting per environment (individual users, rules on context attributes, reusable segments, percentage rollouts), and a version history of every change. Your code evaluates flags through OpenFeature, the CNCF’s vendor-neutral feature flag API, with EZGH’s providers or any OpenFeature provider that speaks the OpenFeature Remote Evaluation Protocol (OFREP).

Providers

EZGH’s OpenFeature providers are open source (Apache-2.0) on GitHub. They aren’t published to npm or PyPI yet: install them from GitHub by tag. Server providers download the environment’s flags and evaluate them locally, with no network call per evaluation; the web provider evaluates on EZGH’s servers, so your rules never reach the browser.

Language Repository Install
TypeScript: Node, Bun, Deno, and the browser (React through OpenFeature’s React SDK) ezgamehost/flags-provider-ts npm install github:ezgamehost/flags-provider-ts#v0.1.0
Go ezgamehost/flags-provider-go go get github.com/ezgamehost/flags-provider-go@v0.1.0
Python ezgamehost/flags-provider-python pip install "git+https://github.com/ezgamehost/flags-provider-python@v0.1.0"

Other languages (mobile, Java, .NET) use OpenFeature’s OFREP providers: see Any OpenFeature provider.

Hosts

Host What it serves
https://flags.ezghcloud.com Evaluation: OFREP, and the snapshot and change streams providers use. Called with an SDK key
https://flags-api.ezghcloud.com The Feature Flags API: flags, targeting, history, environments, segments and SDK keys. Called with an API key or your console session

The console’s Feature Flags pages (in Application integration) and the ezgh flags commands use the API.

Permissions

Action Allows Checked against
flags.flags.list List flags Project
flags.flags.get View a flag Flag
flags.flags.create Create flags Project
flags.flags.update Change a flag’s name, description, tags, variations and client-side availability Flag
flags.flags.archive Archive and unarchive a flag Flag
flags.flags.delete Delete an archived flag Flag
flags.configs.get View a flag’s targeting and history in an environment Environment, with the flag’s key as the path
flags.configs.update Change or restore a flag’s targeting in an environment Environment, with the flag’s key as the path
flags.environments.list List environments Project
flags.environments.get View an environment Environment
flags.environments.create Create environments Project
flags.environments.update Change an environment Environment
flags.environments.delete Delete an environment, its targeting and its SDK keys Environment
flags.environments.export Export an environment’s compiled flags Environment
flags.segments.list List segments Project
flags.segments.get View a segment Segment
flags.segments.create Create segments Project
flags.segments.update Change a segment Segment
flags.segments.delete Delete a segment no flag uses Segment
flags.sdkKeys.list List an environment’s SDK keys (never the keys themselves) Environment
flags.sdkKeys.get View an SDK key’s metadata SDK key
flags.sdkKeys.create Create SDK keys for an environment Environment
flags.sdkKeys.revoke Revoke an SDK key SDK key
Managed policy What it allows
FlagsFullAccess Every flags.* action.
FlagsReadOnlyAccess Every list and view action: flags, targeting and history, environments and their export, segments, and SDK key metadata (never a key).

ReadOnlyAccess allows what FlagsReadOnlyAccess does. AdministratorAccess and the root user can do all of these. Targeting is checked per environment and flag, so a policy can allow editing in staging but not production: see IAM recipes.

Resources

Resource Resource name
Flag ezgh:us-west-1:<org>:<project>:flg_<slug>
Environment ezgh:us-west-1:<org>:<project>:fen_<slug>
Segment ezgh:us-west-1:<org>:<project>:fsg_<slug>
SDK key ezgh:us-west-1:<org>:<project>:fsk_<slug>

Data

  • Evaluation contexts are never stored or logged. They’re evaluated and dropped, so Feature Flags keeps no list of your users beyond the targetingKeys you type into targets and segments.
  • SDK keys are stored as a hash and their first 12 characters; a key is shown once, when it’s created.

Trails

Feature Flags’ events have the event source flags.ezghcloud.com.

  • Recorded: every API call, as the rules for reads say. A targeting change records the flag’s and environment’s keys, the versions it went from and to, and its comment; never the targets or rule values. An SDK key’s create records its ID and prefix, never the key.
  • Never recorded: evaluations and streams on flags.ezghcloud.com.
Navigation

Type to search…

↑↓ navigate↵ selectEsc close