Что нового¶
Все значимые изменения платформы Kruma Data Contracts.
Quality Validator v1.0.1¶
BREAKING CHANGE — Именование Kafka-топиков
Начиная с v1.0.1 изменён формат именования топиков:
| Топик | Было (v1.0.0) | Стало (v1.0.1) |
|---|---|---|
| Production | sales.orders_prod | sales.orders.prod |
| Dead Letter Queue | sales.orders_dlq | sales.orders.dlq |
| Raw (без изменений) | sales.orders.raw | sales.orders.raw |
Требуется: пересоздание топиков Kafka или алиасы. Подробнее — в руководстве по интеграции.
Дата: 1 февраля 2026
Критические исправления¶
- Именование топиков — Устранена несогласованность разделителей: теперь единообразно используется точка (
.) дляraw,prodиdlq - Уязвимость в custom-выражениях — Небезопасный
eval()заменён на sandbox-окружение с ограниченным набором безопасных функций - Сериализация DLQ — Исправлен вызов несуществующего метода
.to_dict()→.model_dump()(Pydantic v2) - Устаревший
datetime.utcnow()— Заменён наdatetime.now(timezone.utc)(совместимость с Python 3.12+)
Новая функциональность¶
- SQL-правила — Добавлена заглушка
_validate_sql()с информативным сообщением и предложением workaround - REFERENCE-правила — Добавлена заглушка
_validate_reference()для будущей валидации ссылочной целостности
Улучшения кода¶
- Полная типизация PEP 484/585 (
X | None,list[X]) - Pydantic v2 best practices:
ConfigDict,frozen=True,str_strip_whitespace __slots__для критичных классов — снижение потребления памяти до 30%- Полные docstrings в формате Google для всех публичных API
- Валидация имён правил: только
snake_case - Алиас
nullдляNoneв custom-выражениях (совместимость с JSON/YAML)
Безопасность¶
Критическое исправление безопасности
Ограничено окружение выполнения custom-выражений:
- Нет доступа к
__import__,open(),exec(),eval() - Доступны только безопасные функции:
len,str,int,float,bool,abs,min,max,sum,round - Невозможен доступ к файловой системе, сети и системным ресурсам
Quality Validator v1.0.0¶
Дата: 23 января 2026
Первый релиз Quality Validator — модуля валидации качества данных на базе Python.
Ключевые возможности¶
- Движок валидации с 10 типами правил:
not_null,unique,range,regex,enum,freshness,format,custom,sql,reference - Интеграция с Apache Kafka: автоматическая маршрутизация в
.prod/.dlq - Загрузка контрактов из YAML-файлов
- Пакетная валидация с метриками и статистикой
- DLQ-записи с полным контекстом ошибок для debug и replay
- Prometheus-метрики для мониторинга
Контракты данных¶
sales/orders v2.1.0¶
Дата: 23 января 2026
- Добавлено поле
discount_amount(nullable) - Добавлено поле
customer_phone(nullable) - Нарушающих изменений нет
warehouse/inventory v1.2.0¶
Дата: 24 января 2026
- Добавлены поля
location_zone,location_row,location_shelf - Добавлено поле
cost_price - Нарушающих изменений нет
aviation/flights v1.0.0¶
Дата: 28 января 2026
Демо-контракт
Создан для демонстрации возможностей платформы на примере данных OpenSky Network (ADS-B).
- Первая версия контракта
- Схема: ICAO24, координаты, высота, скорость, курс
- 11 правил качества: NOT NULL, RANGE, REGEX, FRESHNESS, CUSTOM