INTEGRITY Dokumentace

TypeScript Client SDK

FlagshipClientProvider implementuje rozhraní webového poskytovatele OpenFeature pro aplikace v prohlížeči. Při inicializaci předem načte deklarovanou sadu hodnot flagů a vyhodnocení pak řeší synchronně z cache v paměti.

Díky tomu je poskytovatel vhodný pro rendering na straně klienta, kde je potřeba synchronní přístup k hodnotám flagů.

prefetchFlags

prefetchFlags je povinné pole klíčů flagů, které poskytovatel načítá při inicializaci a při každé změně kontextu. Synchronně lze vyhodnotit jen flagy uvedené v tomto poli, pro jakýkoli klíč flagu mimo něj se vrátí FLAG_NOT_FOUND chybu v době vyhodnocení.

Chování při načítání:

Nastavení

Následující příklad inicializuje poskytovatele se sadou předem načtených příznaků a vyhodnocuje je v prohlížečové aplikaci.

import { OpenFeature } from "@openfeature/web-sdk";
import { FlagshipClientProvider } from "@cloudflare/flagship/web";

await OpenFeature.setProviderAndWait(
	new FlagshipClientProvider({
		appId: "<APP_ID>",
		accountId: "<ACCOUNT_ID>",
		authToken: "<API_TOKEN>",
		prefetchFlags: ["promo-banner", "dark-mode", "max-uploads"],
	}),
);

// Set evaluation context globally. The provider re-fetches all prefetchFlags
// whenever the context changes.
await OpenFeature.setContext({ targetingKey: "user-42", plan: "enterprise" });

const client = OpenFeature.getClient();

// Synchronous — served from the in-memory cache.
const showBanner = client.getBooleanValue("promo-banner", false);

if (showBanner) {
	document.getElementById("banner").style.display = "block";
}
import { OpenFeature } from "@openfeature/web-sdk";
import { FlagshipClientProvider } from "@cloudflare/flagship/web";

await OpenFeature.setProviderAndWait(
	new FlagshipClientProvider({
		appId: "<APP_ID>",
		accountId: "<ACCOUNT_ID>",
		authToken: "<API_TOKEN>",
		prefetchFlags: ["promo-banner", "dark-mode", "max-uploads"],
	}),
);

// Set evaluation context globally. The provider re-fetches all prefetchFlags
// whenever the context changes.
await OpenFeature.setContext({ targetingKey: "user-42", plan: "enterprise" });

const client = OpenFeature.getClient();

// Synchronous — served from the in-memory cache.
const showBanner = client.getBooleanValue("promo-banner", false);

if (showBanner) {
	document.getElementById("banner").style.display = "block";
}

Možnosti konfigurace

Možnost Typ Povinné Popis
appId string Ano ID aplikace Flagship z Cloudflare dashboardu.
accountId string Ano ID vašeho účtu Cloudflare.
authToken string Ano Cloudflare API token s oprávněním Flagship Evaluate nebo Flagship App Evaluate.
fetchOptions RequestInit Ne Vlastní možnosti fetch aplikované na HTTP požadavky.
timeout number Ne Časový limit požadavku v milisekundách. Výchozí hodnota je 5000.
retries number Ne Počet opakování při dočasných chybách. Výchozí hodnota je 1 a je omezeno na 10.
retryDelay number Ne Prodleva mezi opakováními v milisekundách. Výchozí hodnota je 1000 a je omezeno na 30000.
prefetchFlags string[] Ano Klíče příznaků, které se načtou při inicializaci a při každé změně kontextu. Příznaky, které nejsou v tomto seznamu, vrátí FLAG_NOT_FOUND v době vyhodnocení.

Kdy použít klientského poskytovatele

Klientského poskytovatele použijte v prohlížečových aplikacích, single-page aplikacích nebo v jakémkoli JavaScriptovém prostředí na straně klienta.

Vyhodnocení probíhají synchronně, takže neblokují vykreslování. Hodnoty příznaků se načtou jednou při inicializaci a znovu se načtou při každé změně kontextu vyhodnocení. Vynucené obnovení provedete aktualizací kontextu prostřednictvím OpenFeature.setContext(...).