releases, exposures, signals, capabilities, and guardrails client namespaces. Those words still name platform ideas. They are not SDK methods.
The wire protocol, Decision envelopes, conformance fixtures, and
capabilities.features.flags 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 registerTarget in every language.Adapters
How the runtime talks to a backend: remote, local, or in-memory.
Releases
A platform rollout identity. Not an SDK namespace in v1.
Exposures
Proof a target saw a decision. Platform concept; no client API in v1.
Signals
Release-safety telemetry. Platform concept; no client API in v1.
Capabilities
v1 is two capabilities by construction. The discovery namespace is gone.
OpenFeature
The bundled provider was retired. An optional bridge package remains possible.
initFireweave (Node, Web, Swift), init_fireweave (Python, Rust), fireweave.Init (Go), and Fireweave.init (Java) are the single entry point. mode is required: 'remote' or 'local'. The SDK never infers it.
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, the HTTP body (POST /v1/flags/evaluate), Decision envelopes, conformance fixtures, and capabilities.features.flags still use flagKey. Removing the OpenFeature dependency did not rename that parameter.
Say “control point” in prose. Write flagKey in code.
client.flags vs client.controlPoints
client.flags (Python/Rust: flags / flags(); Go: Flags(); Java: flags()) is the same object as controlPoints. The old name is a deprecated alias. There is no FW_DEPRECATION_WARNINGS env gate. Node, Web, Go, Java, Rust, and Swift are silent at runtime (doc-comment only). Python emits one DeprecationWarning per process on first access. Use controlPoints in new code.
targetingKey vs “cohort key”
targetingKey is the cohort key. Code always uses targetingKey. “Cohort key” is the console synonym for that same stable ID.
identify vs registerTarget
Same job on the browser-shaped SDKs. Web and Swift also expose identify, which registers the target and re-prefetches under that id. Server SDKs expose registerTarget only. This is not OpenFeature identify.
Guardrails vs the removed stub
The SDK once shipped a typedguardrails stub that always returned UnsupportedCapability. That stub is gone. Guardrails are a real platform feature in the Fireweave console. The SDK does not evaluate them and has no guardrails API.
In-app terms that are not SDK APIs
Related
- How it works — init, evaluate, register, shut down
- Architecture — client → runtime → adapter
- Quickstart — first evaluate
- Migrate 2.1 to 2.3 — what changed

