Интеграция OpenFeature с autumn: провайдер поднимается по настройкам, клиент флагов внедряется через &Пластилин.
Пакет лежит в основном пуле хаба, а opm знает этот хаб по умолчанию: короткой формы достаточно.
opm install autumn-openfeatureСкачанный файл ставится командой opm install -f <файл> — сеть для этого уже не нужна.
Описание
autumn-openfeature
Интеграция OpenFeature с autumn: провайдер фича-флагов поднимается по настройкам приложения, а клиент оценки внедряется как обычная зависимость.
Библиотека openfeature даёт стандартный API флагов, но требует ручной
настройки провайдера при старте. Этот стартер убирает ручную работу: секция в autumn-properties.json вместо кода
инициализации.
Установка
opm install autumn-openfeature
Использование
Опишите провайдера в autumn-properties.json:
{
"openfeature": {
"Провайдер": "json",
"ПутьКФайлу": "flags.json",
"Домен": "магазин"
}
}
Дальше прикладной компонент объявляет зависимость и сразу работает с флагами:
&Пластилин Перем FeatureClient;
&Желудь
Процедура ПриСозданииОбъекта()
КонецПроцедуры
Процедура ОформитьЗаказ() Экспорт
Контекст = Новый EvaluationContext(ИдентификаторПользователя, Новый Структура("plan", "pro"));
Если FeatureClient.ПолучитьЛогическое("new-checkout", Ложь, Контекст) Тогда
НоваяКорзина();
Иначе
СтараяКорзина();
КонецЕсли;
КонецПроцедуры
Ни УстановитьПровайдер, ни путь к файлу флагов в коде не упоминаются: сменить источник флагов можно правкой настроек.
Настройки
Секция openfeature в autumn-properties.json:
| Параметр | По умолчанию | Назначение |
|---|---|---|
Провайдер |
memory |
json - флаги из файла, memory - набор в памяти, none - только значения по умолчанию |
ПутьКФайлу |
flags.json |
Файл с описанием флагов для провайдера json |
Домен |
"" |
Домен, с которым создаётся клиент; попадает в метаданные |
Формат файла флагов описан в README библиотеки openfeature: простое значение либо развёрнутое описание с вариантами и правилами таргетинга.
Значение none оставляет провайдер-заглушку. Это рабочий режим для тестов и для стендов, где флаги отключены:
приложение получает переданные значения по умолчанию и не зависит от внешнего источника.
Публичный API
| Класс | Роль |
|---|---|
НастройкиФлагов |
Желудь с прочитанной секцией openfeature: Провайдер(), ПутьКФайлу(), Домен() |
ФабрикаФлагов |
Дуб с завязью FeatureClient: поднимает провайдера и отдаёт клиента |
Провайдер регистрируется при первом обращении к клиенту, а не в конструкторе: иначе стартер завязался бы на порядок инициализации компонентов, а он в autumn не гарантирован.
Примеры
oscript examples/ВнедрениеЧерезОсень.os
Тесты
opm run install
opm run test