OpenHub
OpenHub
Войти

autumn-openfeatureпакет

с апстрима
автор: Ivan Karloскачиваний: 0

Пакет лежит в основном пуле хаба: короткой формы достаточно, если хаб прописан сервером пакетов в opm.cfg.

opm install autumn-openfeature

Установка на opm младше 1.7.0

Легаси-флоу. Клиент младше 1.7.0 адрес пула в аргументе не разбирает: пул сначала прописывают сервером пакетов, и только потом ставят через него. На 1.7.0 и новее этот раздел не нужен — хватает команды из шапки страницы.

Добавьте пул сервером пакетов в opm.cfg. Порт продублирован в «Сервер»: у opm push поле «Порт» не читается.

{ "СервераПакетов": [ { "Имя": "default", "Сервер": "https://hub.1cdevelopers.ru", "Порт": 443, "ПутьНаСервере": "/api/v1/pools/default/download/", "РесурсПубликацииПакетов": "/api/v1/pools/default/push", "Приоритет": 1 } ] }

И ставьте пакет, указывая сервер:

opm install -m default autumn-openfeature

Описание

autumn-openfeature

telegram chat Ask DeepWiki

Интеграция 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

Лицензия

MIT