INTEGRITY Документация

Конфигурация

Чтобы использовать Flagship в Cloudflare Worker, добавьте привязку Flagship в файл конфигурации Wrangler. Привязка дает вашему Worker доступ к env.FLAGS, который предоставляет методы для оценки флагов функций.

Добавление привязки

Добавьте flagship блок в файл конфигурации Wrangler с именем привязки и идентификатором вашего приложения.

{
	"flagship": [
		{
			"binding": "FLAGS",
			"app_id": "<APP_ID>",
		},
	],
}
[[flagship]]
binding = "FLAGS"
app_id = "<APP_ID>"

Замените <APP_ID> с ID приложения из вашего приложения Flagship. Если вы ещё не создали приложение, см. Руководство по началу работы. binding поле задает имя, которое вы используете для доступа к Flagship в коде Worker (например, env.FLAGS).

Привязка к нескольким приложениям

Один Worker может привязываться к нескольким приложениям Flagship. Чтобы задать несколько привязок, используйте форму массива:

{
	"flagship": [
		{
			"binding": "FLAGS",
			"app_id": "<APP_ID_1>",
		},
		{
			"binding": "EXPERIMENT_FLAGS",
			"app_id": "<APP_ID_2>",
		},
	],
}
[[flagship]]
binding = "FLAGS"
app_id = "<APP_ID_1>"

[[flagship]]
binding = "EXPERIMENT_FLAGS"
app_id = "<APP_ID_2>"

Каждая привязка доступна как отдельное свойство env объект (например, env.FLAGS и env.EXPERIMENT_FLAGS).

Генерация типов

После добавления привязки выполните npx wrangler types чтобы сгенерировать типы TypeScript. При этом создаётся Env интерфейс, где каждая привязка типизирована как Flagship.

interface Env {
	FLAGS: Flagship;
	EXPERIMENT_FLAGS: Flagship;
}

Используйте привязку

Вызывайте методы оценки для env.FLAGS чтобы получать значения флагов во время выполнения. Каждый метод принимает ключ флага, значение по умолчанию и необязательный контекст оценки.

export default {
	async fetch(request, env) {
		const isEnabled = await env.FLAGS.getBooleanValue("my-feature", false, {
			userId: "user-42",
		});

		return new Response(isEnabled ? "Feature is on" : "Feature is off");
	},
};
export default {
	async fetch(request: Request, env: Env): Promise<Response> {
		const isEnabled = await env.FLAGS.getBooleanValue("my-feature", false, {
			userId: "user-42",
		});

		return new Response(isEnabled ? "Feature is on" : "Feature is off");
	},
};

См. справочник по API привязки для полного списка методов.

Локальная разработка

Привязки Flagship работают с wrangler dev. Локальные Worker используют активное приложение Flagship, настроенное с помощью app_id. Локального хранилища флагов не существует. Перед тестированием оценок убедитесь, что локальная конфигурация Wrangler указывает на действующее приложение Flagship.