Skip to main content
v1 of the Fireweave SDK exposes exactly two capabilities: you evaluate control points, and you register targets. A runtime owns lifecycle and talks to fw-server through an adapter. ADR-0010 removed the bundled OpenFeature provider and the 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 typed guardrails 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

Last modified on September 11, 2026