Skip to content

autumn-openfeature

Стартер autumn для фича-флагов OpenFeature.

Какую задачу решает

Библиотека openfeature даёт стандартный API оценки флагов, но требует ручной настройки при старте: выбрать провайдера, передать ему путь к конфигурации, зарегистрировать, получить клиента. В приложении на autumn такой код приходится писать в точке входа и следить, чтобы он выполнился раньше прикладных компонентов.

Стартер убирает эту работу. Провайдер описывается секцией в autumn-properties.json, а клиент оценки становится обычным желудем: прикладной компонент объявляет &Пластилин Перем FeatureClient и сразу работает с флагами.

Что это даёт

  • Источник флагов меняется настройкой, а не кодом. На стенде json, в тестах none, в проде свой провайдер.
  • Нет порядка инициализации в прикладном коде. Клиент собирается по требованию, поэтому неважно, какой компонент обратится к флагам первым.
  • Тесты не требуют заглушек. Режим none оставляет провайдер-заглушку, и компонент получает переданные значения по умолчанию.

Границы ответственности

ПроектОтвечает за
openfeatureСтандартный API, провайдеры, контекст, хуки
autumn-openfeatureНастройка провайдера и выдача клиента как желудя
oneflag-sdkПровайдер, читающий флаги с сервера OneFlag

Стартер намеренно тонкий: он не добавляет своего API оценки и не оборачивает клиента. Прикладной код пишется против openfeature, поэтому отказ от осени или переход на другой контейнер не потребует переписывать вызовы флагов.

Ограничения

  • Поддерживаются провайдеры json, memory и none. Внешние провайдеры (например oneflag-sdk) регистрируются обычным способом, через OpenFeature.УстановитьПровайдер, потому что им нужны свои параметры подключения.
  • Один клиент на приложение. Несколько доменов с разными провайдерами не поддерживаются: в спецификации это доменные провайдеры, а библиотека openfeature пока их не реализует.