@terreno/feature-flags
v57.16.2
Published
Feature flags and A/B testing plugin for @terreno/api — part of Terreno, the batteries-included TypeScript framework for universal apps.
Readme
@terreno/feature-flags
Feature flags and A/B testing plugin for @terreno/api.
Install
bun add @terreno/feature-flagsPeer dependency: mongoose ^8.0.0 || ^9.0.0. @terreno/api is required at runtime.
Quick start
import {TerrenoApp} from "@terreno/api";
import {AdminApp} from "@terreno/admin-backend";
import {FeatureFlagsApp, featureFlagAdminConfig} from "@terreno/feature-flags";
import {User} from "./models/user";
new TerrenoApp({userModel: User})
.register(new FeatureFlagsApp({}))
.register(new AdminApp({models: [featureFlagAdminConfig]}))
.start();Authenticated clients load flags from GET /feature-flags/flagConfiguration. Prefer that bulk map over the deprecated GET /feature-flags/evaluate endpoint (responses include Deprecation: true and a Sunset header).
Pass liveUpdates: {socketIoServer: io} to broadcast flag-key changes over Socket.io. Live updates require MongoDB running as a replica set (a single-node replica set is enough).
What's included
FeatureFlagsApp— TerrenoPlugin for admin CRUD,/flagConfiguration, and/evaluateFeatureFlag— Mongoose model for flag documentsfeatureFlagAdminConfig— ready-to-useAdminAppmodel configevaluateFlag/evaluateAllFlags— server-side evaluation helpersMongoFeatureFlagProvider— OpenFeature server provider- Optional socket live updates on change streams
Documentation
Full API reference: docs/reference/feature-flags.md
How-to: Add feature flags
License and Contributing
Licensed under the MIT License. See CONTRIBUTING.md for contribution guidelines.
