Reference

📘

Flagship SDK Reference

Please refer to the JS SDK Documentation for Flagship classes

ABTastyProvider class

The ABTastyProvider implements the OpenFeature Provider interface and is responsible for:

  • Initializing the Flagship Client:
    It starts the Flagship client using the provided environment ID, API key, and correct config.
  • Creating a Visitor:
    It instantiates a visitor with context details (e.g., targetingKey, user context), fetches the associated flags, and updates context (if needed).
  • Logging Adaptation:
    Uses an AdapterLogger to map Flagship logging to the OpenFeature Logger interface.
  • Delegating Resolution:
    Delegates flag resolution tasks to the ABTastyResolver, which performs the resolution based on visitor context.

Key Methods

constructor(envId: string, apiKey: string, config?: IFlagshipConfig, logger?: OpenFeatureLogger)

  • Description: Initializes the Flagship client. It:
    • Starts the Flagship client using the provided environment ID and API key.
  • Arguments:
NameTypeRequiredDescription
envIdStringRequiredEnvironment ID provided by Flagship.
apiKeyStringRequiredApi authentication key provided by Flagship.
configObjectOptionalCustom flagship configuration. see SDK configuration
loggerObjectOptionalAdapterLogger instance.

Example:

const {
    ABTastyProvider,
} = require("@flagship.io/openfeature-provider-js");

// Step 1: Start the OpenFeature SDK by providing the environment ID and API key
let provider = new ABTastyProvider("<ENV_ID>", "<API_KEY>");

initialize(context?: EvaluationContext)

  • Description: Internally called by the OpenFeature class when the provider is set and initializes the visitor. It:
    • Creates a new visitor with the given evaluation context.
    • Fetches feature flags.
    • Instantiates the ABTastyResolver.
    • Emits the provider's Ready event.
  • Arguments:
    • context: Optional context (e.g., targeting key and additional user data).
  • Returns:
    • A promise that resolves when initialization completes.

Example:

const {
    ABTastyProvider,
} = require("@flagship.io/openfeature-provider-js");
const { OpenFeature } = require("@openfeature/server-sdk");

// Step 1: Start the OpenFeature SDK by providing the environment ID and API key
let provider = new ABTastyProvider("<ENV_ID>", "<API_KEY>");

// Step 2: Set Flagship SDK as provider
await OpenFeature.setProviderAndWait(provider);

getConfig(): IFlagshipConfig

  • Description: Retrieves the current configuration settings used by the Flagship client.
  • Returns:
    • The configuration object (IFlagshipConfig).

close(): Promise<void>

  • Description: Gracefully shuts down the Flagship client connection.
  • Returns:
    • A promise that resolves when the client has successfully closed.