Skip to content

Флаги

Флаг — именованная точка переключения в коде. можно. поддерживает два типа флагов, контекстные правила, сегменты и процентный роллаут.

Типы флагов

RELEASE

Стандартный фиче-флаг для постепенной раскатки. По умолчанию выключен — включается для целевой аудитории через правила активации.

KILLSWITCH

Аварийный выключатель. По умолчанию включён для всех — выключается при инцидентах. Проверяется как isEnabled(): если вернул false, функциональность заблокирована.

Когда что использовать

RELEASEKILLSWITCH
СутьВключает новую функциональностьВыключает проблемную функциональность
По умолчаниюВыключен (постепенно включается)Включён (мгновенно выключается)
Пример ключаnew-checkoutkill-payment-gateway
ОткатУстановить enabled: false или 0%Установить enabled: false

Контекстные правила

Контекстные правила (constraints) позволяют включать флаг для конкретных пользователей на основе атрибутов, переданных в SDK. Все правила внутри одной группы проверяются с логикой AND — должны совпасть все.

Каждое правило ссылается на контекст-дефинишен (поле field), задаёт оператор сравнения и допустимые значения. Тип контекста (string, number, time, semver) определяет, как оператор интерпретирует значение.

Подробнее — Контексты.

Сегменты

Сегмент — переиспользуемая группа пользователей, определённая через те же контекстные правила. Вместо дублирования правил на каждом флаге создаёте сегмент один раз и ссылаетесь на него.

Флаг может ссылаться на несколько сегментов — достаточно совпадения с любым (OR). Подробнее: Сегменты.

Процентный роллаут

Детерминированное распределение на основе MurmurHash32 от flagKey + userId (или sessionId). Один и тот же пользователь всегда попадает в одну группу.

Жизненный цикл

СостояниеОписание
АктивенФлаг создан, доступен для оценки SDK
В архивеФлаг заархивирован. SDK не получают его конфигурацию

Флаг также может быть включён (enabled: true) или выключен (enabled: false) на каждом окружении независимо.

Что дальше?

Released under the AGPL v3.0 License.