OpenFeature and the wire still say
flagKey. The product name is control point (ADR-0007). Do not invent controlPointKey.Concept map
Control points
The named decision your code asks FireWeave for. Evaluation uses the parameter
flagKey.Targeting
Who the decision is for:
targetingKey, properties, and registration where the API exists.Releases
Bind this process to a rollout, then
start, complete, or fail.Exposures
Proof a target saw a decision. Opt-in —
sendExposure defaults to false.Signals
Health, error, metric, and outcome telemetry. Outcome is a signal kind, not a separate object.
Capabilities
Discover what this SDK build and adapter can do. Guardrails are a stub.
Adapters
How the runtime talks to a backend: remote, in-memory, and local/dev.
OpenFeature
Portable typed getters. Releases, exposures, and signals stay on the FireWeave client.
How the pieces fit
Collisions
These names look interchangeable. They are not.Control point vs flagKey
Control point is the product noun: a point of control over a release, not “a boolean.” Evaluation, OpenFeature, the HTTP body (POST /v1/flags/evaluate), and the Decision / Exposure / Signal envelopes still use flagKey. That name is fixed by the OpenFeature spec and the fw-server contract.
Say “control point” in prose. Write flagKey in code. Do not rename the parameter.
client.flags vs client.controlPoints
On Node, Python, and Web, client.flags is the same object as controlPoints / control_points. The old name is a deprecated alias, not removed in 2.x. Go exposes Flags() only. Java has no controlPoints or flags facade — call evaluate, getBooleanValue, or getStringValue on the client.
In-app “feature flag” vs SDK control point
The console glossary says feature flag / managed flag. Official docs use control point. Same job, different corpus. This site does not keep two glossaries.targetingKey vs “cohort key”
The OpenFeature targetingKey is the cohort key. Code always uses targetingKey. “Cohort key” is the console synonym for that same stable ID. There is no SDK parameter named cohort or cohortKey.
identify vs registerTarget
Same job, different names. Node: runtime.registerTarget. Python: runtime.register_target. Web: client.identify() then sets context. Go and Java have no registration API on master. This is not OpenFeature identify.
Exposure vs OpenFeature tracking
FireWeave exposures areexposures.record / flush and opt-in sendExposure (default false). OpenFeature Tracking (spec §6) is not implemented. Do not document provider.track.
Signal outcome vs releases.complete
signals.recordOutcome is a telemetry kind. releases.complete / fail are lifecycle transitions. On Node, complete / fail also record an outcome signal. Do not collapse them into one invented “outcome API,” and do not create a standalone outcomes page.
Capability guardrails vs console auto-rollback
The SDK reports guardrails: false. Every guardrails call degrades with UnsupportedCapability. Console copy about live auto-rollback is not an SDK feature.
In-app terms that are not SDK APIs
The console and marketing corpus use words the five SDKs do not implement. Mentioned once here so they are not promoted on the concept pages:
For the gap list behind those omissions: Go and Java remain unpublished on public registries, Go/Java have no
registerTarget, console wrap-vs-promote is unresolved, and fw-server targeting predicates are unverified.
Related
- How it works — evaluate + extensions flow
- Architecture — provider and client → runtime → adapter
- Quickstart — first evaluate with real APIs
- Compatibility — language matrix