0.2.0 (2025-04-04)
TL;DR
– Полностью новый UI(пользовательский интерфейс). – Добавлена поддержка подключений к файловой системе. – Добавлена поддержка простых преобразований в процессе передачи данных: фильтрация файлов, фильтрация строк, изменение столбцов. – Добавлена поддержка стратегии инкрементального чтения. – Добавлена поддержка запуска передач по расписанию. – Добавлена поддержка изменения ограничений ресурсов SparkSession.
Огромное спасибо Dmitry Pedchenko, Maxim Lixakov, Ilyas Gasanov, Kirill Chernikov.
Критичные изменения
- Реализован единый формат обработки ошибок для повышения согласованности (#95)
- Изменён формат ответа для
GET /v1/groups– добавлена текущая роль пользователя для каждой группы (#97) - Изменён формат ответа для
GET /v1/groups/:id- добавлена текущая роль пользователя для каждой группы (#109) - Теперь миграции выполняются в отдельном контейнере, а не как часть контейнера
backend. (#163) - Удаляются записи transfers, queues и groups вместо того, чтобы отмечать их как удалённые (#168)
- Перемещено поле
typeиз вложенного поляconnection_dataв корневой уровень ответаConnection. (#169) - Отделен
auth_data.typeот типа подключения (например,postgres) и связан с типом аутентификации (например,basic). (#169) - Добавлено удаление записей connections вместо пометки их как удалённых (#170)
- Используется PUT вместо PATCH для моделей
ConnectionиTransfer(#215) - Возвращаются новые объекты подключения и передачи в эндпоинтах
POST /v1/transfer/copyиPOST /v1/connection/copy. - Изменен статус ответа с 200 на 204 для всех эндпоинтов
DELETE.
Функции
- Добавлен hive к известным типам (#67)
- Разрешен поиск по группам, пользователям, подключениям, передачам, очередям (#92, #94, #99, #100, #101, #103)
- Добавлены фильтры для подключений, пересылок и запусков (#94, #102, #106)
- Реализован планировщик для запуска задач Celery по расписанию. Это можно сделать, установив
Transfer.is_scheduled=TrueиTransfer.schedule="..."(выражение в стиле cron). Модель выполнения теперь имеет полеtypeс вариантамиMANUALиSCHEDULED. (#114) - Добавлен эндпоинт GET
v1/monitoring/metricsдля предоставления базовых метрик HTTP-сервера в формате Prometheus (#121) - Реализован
KeycloakAuthProviderдля аутентификации с единым входом (SSO). (#123) - Реализован
DummyAuthProviderдля сред разработки и тестирования. (#123) - Добавлены схемы API для новых источников БД — Clickhouse, MSSQL, MySQL (#124, #125, #126, #160)
- Добавлена логика для обработки передач FTP, FTPS, SFTP, Samba, WebDAV (#189, #191, #192, #194)
- Добавлены схемы API для источников файлов: SFTP, FTP, FTPS, WebDAV, Samba (#187)
- Добавлены схемы API для форматов файлов: Excel, XML, ORC, Parquet (#140, #142, #143, #144)
- Добавлены параметры сжатия для файлов форматов CSV, JSON, JSONLine, Excel, ORC, Parquet, XML (#159, #161)
- Добавлены преобразования для Переводов с фильтрацией строк датафрейма (#184)
- Добавлены преобразования для Переводов с фильтрацией столбцов датафрейма (#186)
- Добавлены преобразования для Переводов с фильтрацией файлов (#198)
- Добавлено поле
increment_byвstrategy_params(#202) - Реализована стратегия инкремента для передач с файловыми источниками (#209)
- Реализована стратегия приращения для передач с источниками баз данных (#211)
- Добавлено поле
resourcesвTransfer. (#214) - Добавлено поле
file_name_templateвtarget_params(#196, #201)
Улучшения
- Обновлена модель
User: теперь в нее включены поляemail,first_name,middle_nameиlast_name(все необязательные). (#123) - Чтение переменной окружения
SYNCMASTER__ENTRYPOINT__SUPERUSERSдля повышения роли пользователей доSUPERUSERпри запуске сервера. (#137) - Включен динамический выбор поставщика аутентификации через переменную окружения
SYNCMASTER__AUTH__PROVIDER. (#123) - Включено параллельное чтение из источников JDBC. (#219)
- Сброс HWM при смене стратегии с «инкрементной» на «полную». (#217)
- Предоставление прав «только чтение» предыдущему владельцу группы при передаче права собственности (#135)
Исправление ошибок
- Используйте Hadoop AWS
magiccommiter только если target передачи — S3. (#46) - Убедитесь, что
service_nameиsidявляются взаимоисключающими при редактировании подключения Oracle. (#52) - Имя очереди уникально в пределах группы, новое поле
slugуникально глобально. (#54, #119) - Запретите обновление типа соединения, если с этим соединением связана передача. (#55)
- Исправлена ошибка, из-за которой значение поля
is_scheduledигнорировалось. (#57) - Группа без назначенных пользователей отсутствовала в списке групп. (#62)
- Сбрасывать учётные данные подключения при запуске передачи. (#63)