
Security News
Package Maintainers Call for Improvements to GitHub’s New npm Security Plan
Maintainers back GitHub’s npm security overhaul but raise concerns about CI/CD workflows, enterprise support, and token management.
@openfeature/flagsmith-client-provider
Advanced tools
This provider is an implementation for the [JavaScript SDK](https://docs.flagsmith.com/clients/javascript/) of [Flagsmith](https://flagsmith.com).
This provider is an implementation for the JavaScript SDK of Flagsmith.
npm install @openfeature/flagsmith-client-provider
The Flagsmith Provider can be created with the standard initialization options and an optional Flagsmith instance to use.
import { FlagsmithClientProvider } from '@openfeature/flagsmith-client-provider';
import { OpenFeature } from '@openfeature/web-sdk';
const flagsmithClientProvider = new FlagsmithClientProvider({
environmentID: '<ENVIRONMENT_ID>'
});
OpenFeature.setProvider(flagsmithClientProvider); // Attach the provider to OpenFeature
The Flagsmith Provider can be constructed with a custom Flagsmith instance and optional server-side generated state, initialization options.
Note: In order to use the React Native implementation of OpenFeature you will need to install both Flagsmith and react-native-flagsmith.
import flagsmith from 'react-native-flagsmith' // Could also be flagsmith/isomorphic, flagsmith-es or createFlagsmithInstance()
import { FlagsmithClientProvider } from '@openfeature/flagsmith-client-provider';
import { OpenFeature } from '@openfeature/web-sdk';
const flagsmithClientProvider = new FlagsmithClientProvider({
environmentID: '<ENVIRONMENT_ID>',
flagsmithInstance: flagsmith,
state:serverState
});
OpenFeature.setProvider(flagsmithClientProvider); // Attach the provider to OpenFeature
In Flagsmith, users are identified in order to allow for segmentation and percentage rollouts.
To identify and set traits you can specify a targetingKey(identity) and optionally a set of traits. This will do the equivalent of flagsmith.identify(id, traits)
or pass these to flagsmith.init
if you are calling this before OpenFeature.setProvider
.
const flagsmithClientProvider = new FlagsmithClientProvider({
environmentID: '<ENVIRONMENT_ID>',
});
await OpenFeature.setContext({ targetingKey, traits });
OpenFeature.setProvider(flagsmithClientProvider); // Attach the provider to OpenFeature
To reset the identity you can simply reset the context. This will do the equivalent of flagsmith.logout()
await OpenFeature.setContext({ });
In Flagsmith, features are evaluated based on the following Resolution reasons:
StandardResolutionReasons.CACHED | StandardResolutionReasons.STATIC | StandardResolutionReasons.DEFAULT | StandardResolutionReasons.ERROR
Note that resolutions of type SPLIT may be the result of targetted matching or percentage split however Flagsmith does not expose this information to client-side SDKs.
The Flagsmith provider emits the following OpenFeature events:
Run nx package providers-flagsmith
to build the library.
Run nx test providers-flagsmith
to execute the unit tests via Jest.
You can find examples using this provider in several frameworks Here.
FAQs
This provider is an implementation for the [JavaScript SDK](https://docs.flagsmith.com/clients/javascript/) of [Flagsmith](https://flagsmith.com).
We found that @openfeature/flagsmith-client-provider demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Maintainers back GitHub’s npm security overhaul but raise concerns about CI/CD workflows, enterprise support, and token management.
Product
Socket Firewall is a free tool that blocks malicious packages at install time, giving developers proactive protection against rising supply chain attacks.
Research
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.