Release 0.17 notes
ENVIRONMENT VARIABLES
Deprecated
USE_NEW_ENTITY_LINK_REPO
DB__URL
DB__CONN_OPTIONS
DB__STAGE_SCHEMA
DB__STORE_SCHEMA
DB__WORK_SCHEMA
NEW
USE_NEW_V100_REPO- выполнять работу с объектами v2, используя целевую архитектуру метаданных v100 (default =True). В 0.17 применимо только к загрузчикам. ЕслиTrue, то данные v2 сохраняются как в целевой, так и в легаси архитектуре, при этом чтение происходит только из целевых таблиц metastore. ЕслиFalse, то используются метаданные только из легаси архитектуры.APP__MAX_ITEMS_LIMIT- максимальное количество элементов в ответе пагинированного эндпоинта.S3- Добавлена возможность авторизации в S3 хранилище с помощью openid токена (keycloak).S3__AUTH_TYPE=openid: включить авторизацию через openid токен (default =access_key). В режиме авторизации черезopenidпараметрыS3__ACCESS_KEYиS3__SECRET_ACCESS_KEYне используются.S3__SESSION_TOKEN_LIFETIME=3600: время жизни S3 токена в секундах. Диапазон допустимых значений 900 - 604800 (default =3600)
SWAGGER- настройки для swaggerSWAGGER__USE_BUNDLED=true- Использовать встроенную версию.jsи.cssресурсов для сваггераSWAGGER__TOKEN_URL=null- кастомный адрес, по которому получать токен
APP__DEFAULT_SOURCE_RK=-1- суррогатный ключ источника по умолчанию для запуска заданий
Изменение формата ответа /health
Изменяется схема отчета о состоянии системы.
Вместо datastore добавляется секция sources с отчетом по подключению к каждому источнику данных
из справочника meta.v100_sources.
Изменение подключения к датасторам
Настройка подключений к датасторам теперь осуществляется через таблицу meta.v100_source.
!NB Источник source_rk = -1 (дефолтный датастор) удалять нельзя, т.к. API V2 и узлы constructor
продолжают работать только с ним.
Загрузчики из внешних датасторов
Загрузчики из SQL/таблиц теперь работают только с источником source_rk = -1.
Другие источники не могут использоваться для загрузки данных, репликация данных между источниками
больше не производится.
Миграция загрузчиков
Загрузчики мигрируют в целевую архитектуру метаданных v100. Важные изменения после миграции:
- Статус загрузчика берется только из задания загрузки (джоба). При удалении связанного джоба, статус загрузчика будет пустым.
- В новой архитектуре снова начинают работать sql-загрузчики, но теперь скрипт должен состоять только
из одной инструкции
selectбез использования CTE.
Для обеспечения возможности "отката" к легаси архитектуре, в релизе предусмотрена переменная
USE_NEW_V100_REPO (бывш. USE_NEW_ENTITY_LINK_REPO).
Переименование загрузчиков
После миграции загрузчиков, имена загрузчиков связей всегда совпадают с именами связей и изменяются синхронно. Имена всех загрузчиков связей принудительно приводятся к именам связей, которые они грузят. При этом, если среди загрузчиков переменных и загрузчиков сегментов обнаруживается загрузчик с таким же именем, как у связи, то такому загрузчику присваивается случайное сгенерированное имя.
Проверить наличие таких загрузчиков можно с помощью запроса:
select * from meta.loader l
where l.type != 'entity_link' and l.name in (
select name from meta.entity_link
)
Такие загрузчики лучше переименовать до установки релиза.
Активация / деактивация загрузчиков
Из API v2 удаляется функциональность активации/деактивации вместе с эндпоинтами:
- POST /loader/activate
- POST /loader/deactivate
Все ранее деактивированные загрузчики принудительно активируются при установке релиза. Если при принудительной активации обнаруживается версия переменной с неуникальным именем, то такой версии переменной присваивается случайное сгенерированное имя.
Проверить наличие таких версий переменных можно с помощью запроса:
select distinct fc.*
from meta.loader l
inner join meta.loader_feature_map lfm on lfm.loader_rk = l.loader_rk
inner join meta.feature_column fc on fc.column_rk = lfm.column_rk
inner join meta.feature_column fc_dupl on (
fc_dupl.feature_rk = fc.feature_rk
and fc_dupl.name = fc.name
and fc_dupl.column_rk != fc.column_rk
)
where l.active_flg = false
Отобрать деактивированные загрузчики можно с помощью запроса:
Такие загрузчики лучше удалить или активировать до установки релиза.
Переход на SQLAlchemy 2.0
Строка подключения к БД meta не должна содержать явного указания драйвера: postresql://...
После перехода на второе поколение библиотеки SQLAlchemy для коннекта к БД meta используется
асинхронный драйвер postgresql - asyncpg. Если в строке подключения к БД будет указан
другой драйвер (например postgresql+psycopg2://), то приложение сообщит об этом и упадет.
При этом для миграций alembic по прежнему используется драйвер psycopg2 и приложения самостоятельно
принимает решение, какой драйвер надо использовать в зависимости от контекста.
Изменение формата расписания в API V2
Для методов POST /loader/create, PATCH /loader/{loader_rk}, GET /loader/{loader_rk}
меняется формат поля SCHEDULE для request/response body:
вместо схемы расписание теперь задается в формате пятизначной крон-строки.
Удаление набора эндпоинтов датасета API V2
Следующие эндпоинты были удалены:
POST /datasetPUT /dataset/{dataset_rk}POST /dataset/{dataset_rk}/splitGET /dataset/history/{dataset_rk}GET /dataset/{dataset_rk}/executionPOST /dataset/imputePOST /dataset/validate
Функционал метода POST /dataset/impute перенесен в API V100
и реализован как узел fat_impute.
Изменение эндпоинта DELETE DATASET API V2
Из схемы reqeust body удален аргумент DELETE_FLG.
Теперь эндпоинт удаляет датасет как в метаданных, так и физическую таблицу в datastore (с учетом force_flg).
Интеграция с сервисом генерации Excel каталога
В WEB-интерфейсе реализована поддержка интеграции с сервисом генерации каталога в формате Excel.
Для этого необходимо указать адрес сервиса в переменную INFOMAP_GENERATOR_API в values.yaml веб-интерфейса.