Cloudflare Workers package for evaluating flagd flags in-process and serving OFREP evaluation endpoints.
npm install @openfeature/flagd-ofrep-cf-workerimport { createOfrepHandler } from '@openfeature/flagd-ofrep-cf-worker';
import flags from './flags.json';
const handler = createOfrepHandler({ staticFlags: flags });
export default {
fetch: handler,
};staticFlags accepts a flagd-formatted JSON object or JSON string. Endpoints default to /ofrep/v1.
The handler does not emit CORS headers unless you opt in with cors: true. If you need browser access, prefer a specific corsOrigin instead of *.
Creates a fetch handler that serves:
POST /ofrep/v1/evaluate/flags/{key}POST /ofrep/v1/evaluate/flags
Supported options:
staticFlags(required): flagd-formatted flag config as an object or JSON stringbasePath: override the default/ofrep/v1cors: enable or disable CORS headers; defaults tofalsecorsOrigin: override the default*origin
To expose the handler to browser-based clients, enable CORS explicitly:
const handler = createOfrepHandler({
staticFlags: flags,
cors: true,
corsOrigin: 'https://app.example.com',
});Class wrapper around the same handler logic. Use it when you want to call handleRequest() directly or replace flags later with setFlags().
Lower-level evaluation API for resolving individual flags or evaluating all flags outside the HTTP handler.
Helper for reading bearer tokens from Authorization or API keys from X-API-Key.
The package also exports OFREP request/response types plus selected types from @openfeature/core and @openfeature/flagd-core.
This package is designed for Cloudflare Workers and uses @openfeature/flagd-core@^2.0.0 with disableDynamicCodeGeneration: true so it avoids runtime code generation paths that are not allowed in the Workers runtime.
It supports the flagd features exercised by this repo's package and example worker, including JSONLogic targeting, fractional evaluation, semantic version comparison, string operators, metadata, and shared evaluators.
This package provides the OFREP handler and evaluation primitives. Authentication enforcement, Hono routing, and R2-backed runtime config loading are application-level patterns shown in examples/js-worker/src/index.ts.
If you want that auth flow, the package exports extractAuthToken(), but your worker is still responsible for deciding when auth is required and where flags are loaded from.
Apache-2.0