Files
mdm-ordinis/docs/changelog.md
T
2026-05-17 09:15:07 +00:00

293 lines
26 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Что нового в Ordinis
Список значимых обновлений продукта на понятном языке. Технических подробностей нет — для них есть [внутренний CHANGELOG](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/blob/main/ordinis-admin-ui/CHANGELOG.md) с привязкой к коммитам.
Обновления приходят на твой сервер автоматически при следующем deploy.
## [2.36.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.36.0) (2026-05-17)
### ✨ Новые возможности
* **Тихие часы** — на странице «Уведомления» (`/me/notifications/preferences`) можно включить окно, например 22:00–08:00 МСК, когда email и express-сообщения не отправляются. Внутренние уведомления в шапке (bell badge) остаются доступны. Часовой пояс выбирается из 12 российских зон + UTC. Окна через полночь поддерживаются.
## [2.35.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.35.0) (2026-05-17)
### ✨ Новые возможности
* **Bundle hygiene v2 (для интеграторов справочников)** — каталог справочников теперь поставляется с `manifest.yaml` (явный список + метаданные) и ed25519-подписью. Защита от подмены файлов и явный контракт версии для CUOD-handoff. Документация: [`docs/integration/bundle-format-spec.md`](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/blob/main/docs/integration/bundle-format-spec.md) и [`docs/user-guide/bundle-authoring.md`](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/blob/main/docs/user-guide/bundle-authoring.md).
## [2.34.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.34.0) [2.34.1](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.34.1) (2026-05-16)
### ✨ Новые возможности
* **✨ AI: добавить поле** — в редакторе схемы справочника появилась кнопка «AI: добавить поле». Опиши идею простыми словами («email контакт», «дата запуска», «частотный диапазон в МГц») — LLM сгенерирует валидное JSON Schema поле. Можно принять, отредактировать или попросить другой вариант. Работает на shared Vortex (`vortex.nstart.cloud`, модель `qwen2.5:7b`). Включается через helm `ai.enabled`. Rate-limit 30 запросов/мин на IP, circuit breaker на падения.
### 🐛 Исправления
* **AI endpoint возвращал 500 после деплоя** — nginx роутил `/api/v1/ai/*` через generic fall-through на read-api. Добавлено явное правило к writer (тот же паттерн что для `/drafts`, `/me`, `/admin`).
## [2.33.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.33.0) (2026-05-16)
### ✨ Новые возможности
* **Шаблоны схем при создании справочника** — в окне «Создать справочник», вкладка Schema, появилась grid из 6 готовых шаблонов: Чистая, Космический аппарат, Наземная станция, Антенна, Частотный диапазон, Оператор. Один клик — форма заполнена типовыми полями ДЗЗ-домена. Экономит время на повторяющихся типах объектов.
## [2.32.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.32.0) (2026-05-16)
### ✨ Новые возможности
* **Метка «Запланировано» в таблице записей** — если у записи есть будущая версия (с датой validFrom в будущем), в строке таблицы появляется badge. Видно сразу, не открывая запись.
## [2.31.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.31.0) [2.31.5](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.31.5) (2026-05-15 2026-05-16)
### ✨ Новые возможности
* **Phase B-2 уведомления — матрица 4×3** — на странице «Уведомления» появилась таблица: 4 события (отправлено на ревью / одобрено / отклонено / отозвано) × 3 канала (email / express / telegram). Можно отключить email при approve, оставить email при reject — гранулярно. Express и Telegram пока с пометкой «Скоро» (preferences хранятся для opt-in заранее).
* **TimeTravel — окно в будущее** — слайдер истории дотягивается до реальной максимальной даты словаря, включая запланированные версии. Раньше был зажат в «сегодня». К подписям границ добавлен год.
* **Banner и индикатор запланированных записей** — над таблицей записей показывается количество future-версий + ближайшая дата ввода. Понятно, что прилетит в следующий квартал.
### 🐛 Исправления
* **Smart Search возвращал 0 результатов** — фильтр scope передавался строчными буквами (`'public'`), а в БД хранится `'PUBLIC'` (CHECK constraint UPPERCASE из миграций 0008/0009). Bug жил 5 месяцев. Теперь поиск работает для всех ролей.
* **Версия в шапке показывала «none»** — `/version` возвращал тег без значения, потому что build на main без git-тега. Теперь подхватывает тег из helm chart (например `v2.31.2`), парсит SHA-суффикс и форматирует.
* **Журнал аудита — 13 типов action** — раньше многие типы (DRAFT_PUBLISHED, REVIEWER_ASSIGNED и др.) показывались как enum-имя. Теперь все 13 — русские названия.
* **«Действует с» в редакторе** — поле было пустым в create-режиме, выглядело как баг. Теперь предзаполнено текущим временем (`now()`).
* **QA P3/P4 пакет** — 7 косметических багов (i18n, layouts, labels).
### ♻️ Под капотом
* **CI — Alpine mirror стабилизирован** — после drift между Nexus v3.23 APKINDEX и реальными файлами release-jobs ломались на каждом auto-bump. Pinned `node:22-alpine3.20` + `apk update` перед `add` + sed swap на `repo.nstart.cloud`. Auto-bump теперь работает без ручного вмешательства. Runbook DevOps: `docs-internal/ops/nexus-alpine-mirror.md`.
## [2.30.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.30.0) [2.30.1](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.30.1) (2026-05-15)
### ✨ Новые возможности
* **Phase B-2 backend** — per-event-type granular preferences API + миграция данных (подготовка к UI-матрице из v2.31).
### 🐛 Исправления
* **Sidebar для PUBLIC users** — outbox / audit / webhooks скрыты (раньше показывали ссылки, при клике — 403).
* **TimeTravel slider** — extend до now + 30 дней или future marks (улучшено окончательно в v2.31).
## [2.29.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.29.0) [2.29.1](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.29.1) (2026-05-15)
### ✨ Новые возможности
* **Webhook text-wrap для chat-bot receivers** — Mattermost `@WebhookBot` теперь корректно получает payload (receiver требует `{"text":"..."}` иначе «неизвестный webhook»). Включается в admin-ui на странице подписки (host allowlist + textWrapHosts).
### 🐛 Исправления
* **Bell badge glyph** — счётчик уведомлений в шапке обрезался по верху. Теперь полностью виден.
## [2.28.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.28.0) [2.28.2](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.28.2) (2026-05-15)
### ✨ Новые возможности
* **Phase B уведомления — backend + UI** — per-user channel preferences (email / express / telegram), страница `/me/notifications/preferences`.
### 🐛 Исправления
* **Email уведомления не уходили вообще** — race между OutboxPoller и dispatcher. Окончательное решение: drop `@Modifying` из `tryClaim` + `EmailChannel` как `@Bean`, не `@Component`. Critical fix.
* **HTTP status code** — `ResponseStatusException` теперь возвращает корректный код (раньше всё было 500).
* **User-Agent webhook** — установлен `ordinis-alerts` (match Webhook Bot subscription).
* **Actuator** — Redis health indicator отключён в writer (не нужен, шумел в `/actuator/health`).
## [2.27.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.27.0) [2.27.13](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.27.13) (2026-05-14 2026-05-15)
### ✨ Новые возможности
* **Полный цикл уведомлений по schema-draft** — после approve/reject автор получает toast (немедленно) + email (через outbox) + bell badge в шапке. Закрывает TODO 7 design-doc'а.
### 🐛 Исправления
* **Согласования — Mine tab для анонимов** — раньше показывал raw AxiosError, теперь dedicated empty state с sign-in CTA.
* **Sidebar — 403 spam в консоли** — outbox/webhook badge polling гейтятся на INTERNAL scope. Анонимам не дёргаем.
* **`/drafts/active` теперь 200 + null** для PUBLIC scope (вместо 404 → нет шума в консоли).
* **QueryErrorState везде** — все routes теперь используют friendly error UI вместо raw AxiosError dump.
* **44×44 px touch targets** — кнопки достижимы на mobile.
* **Em-dash fallback в UserCell** — пустые actor'ы показывают «—» вместо raw UUID.
* **Routing /api/v1/me/*** — закрыт 500 на `/me/notifications` (тот же паттерн что для `/ai`, `/drafts`).
* **Defensive /me/notifications** — wrap DB ops в try/catch с panic-level логированием.
## [2.26.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.26.0) [2.26.1](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.26.1) (2026-05-14)
### ✨ Новые возможности
* **«Мои» tab в Согласованиях** — maker self-tracking со status-фильтром. Видишь свои поданные draft'ы и их текущий статус в одном месте.
## [2.25.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.25.0) [2.25.1](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.25.1) (2026-05-14)
### ✨ Новые возможности
* **Approval UX — inline draft CTA + reviewer diff summary** — ревьюер видит сжатый diff в drawer'е, автор получает inline-кнопку «Открыть draft» прямо из таблицы записей.
## [2.24.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.24.0) (2026-05-14)
### ✨ Новые возможности
* **Audit + outbox для record-draft lifecycle** — каждое изменение draft пишется в журнал аудита + outbox event для подписчиков webhook.
### 🐛 Исправления
* **Approval — закрыты 2 bypass paths** (security audit findings).
* **Non-breaking schema changes** — теперь применяются inline без полного draft workflow.
* **DictionaryEditorDialog** — Save блокируется когда нужен draft workflow (раньше silently сохранял).
## [2.23.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.23.0) [2.23.1](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.23.1) (2026-05-14)
### ✨ Новые возможности
* **UUID → имя пользователя через Keycloak** — Phase 1 (persistent DB cache) + Phase 2 (on-demand Keycloak lookup). Везде где раньше торчал UUID actor'а (changelog, events, history, audit), теперь видно имя через UserCell.
## [2.22.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.22.0) [2.22.1](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.22.1) (2026-05-14)
### ✨ Новые возможности
* **Per-dictionary approvalMinRole** (Phase 2) — у каждого справочника свой минимальный role для approve. Reviewer с меньшей ролью видит draft, но не может approve.
* **Закрытие записей через draft** — `close` / `bulk-close` идут через workflow, когда у справочника `approvalRequired=true`.
* **Scope-gated audit / outbox endpoints** — INTERNAL/RESTRICTED scopes гейтят доступ к админ-эндпоинтам.
* **`/admin/users/{sub}/display`** — endpoint для UserCell.
## [2.21.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.21.0) (2026-05-13)
### ✨ Новые возможности
* **Auto-route create/edit через draft** — когда у справочника `approvalRequired=true`, любое создание/редактирование записи автоматически создаёт draft в workflow.
## [2.20.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.20.0) (2026-05-13)
### ✨ Новые возможности
* **Schema drafts в «Мои черновики»** — теперь там видны не только record drafts, но и schema drafts.
## [2.19.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.19.0) [2.19.2](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.19.2) (2026-05-13)
### ✨ Новые возможности
* **Sidebar /reviews — role-based visibility** — пункт меню «Согласования» показывается только пользователям с reviewer-ролью.
### 🐛 Исправления
* **Чтение ролей из access_token, не id_token** — sidebar /reviews был скрыт у reviewer'ов из-за неправильного источника roles claim.
* **Webhook scope_filter** — Hibernate ordinal mapping bug + UI toggle для активации подписки.
## [2.18.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.18.0) (2026-05-13)
### ✨ Новые возможности
* **WorkflowRoles — configurable claim path + ordinis:admin super-role** — admin теперь bypass'ит все role-checks (для troubleshooting + emergency edits).
## [2.17.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.17.0) (2026-05-13)
### ✨ Новые возможности
* **Phase 1d — backend role enforcement для workflow** — backend сам проверяет роль на approve/reject (раньше доверяли UI). Closing security gap.
## [2.16.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.16.0) [2.16.4](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.16.4) (2026-05-12 2026-05-13)
### ✨ Новые возможности
* **«Что нового» button в шапке** — кнопка открывает modal с этим самым changelog'ом.
### 🐛 Исправления
* **404 вместо 500** — несуществующий endpoint теперь возвращает 404 (NoResource / NoHandler exceptions properly mapped).
* **Кнопки в schema draft drawer** — RU labels + flow row layout.
* **Sidebar badges** — Outbox + Webhooks теперь с реальными счётчиками; audit scope label уточнён.
* **Schema draft — автор display + gate «Отозвать»** — кнопка только у maker'а draft'а.
* **CI release** — убран `[skip ci]` из semantic-release commit'ов (auto-bump pipeline теперь запускается).
## [2.15.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.15.0) (2026-05-12)
### ✨ Новые возможности
* **«Что нового» — первая версия + state.md** — wiring под changelog story (полноценный modal добавлен в v2.16.0).
### 🐛 Исправления
* **Swagger UI на staging** — доступно всегда для exploration; на prod env-flagged.
* **Docs build context** — copy operator/reviewer/changelog директорий в docker image.
## [2.14.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.14.0) (2026-05-12)
### ✨ Новые возможности
* **График доставки webhook'ов** — на странице webhook-подписки теперь видно историю доставок за последние 24 часа или 7 дней. Можно навести курсор на любой столбик и увидеть, сколько было успешных доставок, retry, и сколько ушло в DLQ.
## [2.13.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.13.0) (2026-05-12)
### ✨ Новые возможности
* **Поиск в фильтре типов событий** — у webhook event-type фильтра появилось поле поиска. Можно набрать «Record» и увидеть только относящиеся типы событий, вместо ручного скроллинга через все 11.
* **Выбор диапазона дат** — в журнале аудита вместо двух отдельных полей «с» и «по» теперь один календарь, в котором можно отметить начало и конец периода. Удобнее и компактнее.
## [2.12.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.12.0) (2026-05-12)
### ✨ Новые возможности
* **Подсветка активной секции в редакторе записи** — когда в редакторе записи прокручиваешь форму, соответствующий «таб» в верхней панели подсвечивается синим. Удобно, чтобы не теряться в длинных формах.
## [2.11.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.11.0) (2026-05-12)
### ✨ Новые возможности
* **TimeTravel — реальные данные на момент** — во вкладках «Записи на момент» и «Структура и поля» в окне TimeTravel теперь видны фактические данные, а не заглушка «backend pending». Можно посмотреть, как выглядел справочник в любую дату из истории.
## [2.10.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.10.0) (2026-05-12)
### ✨ Новые возможности
* **Что изменилось — вкладка с реальными изменениями** — в окне TimeTravel вкладка «Что изменилось» теперь показывает фактический diff между версиями (добавленные поля, изменённые типы, удалённые свойства), а не пустую заглушку.
### 🐛 Исправления
* **Понятные сообщения об ошибках** — вместо технического «AxiosError: Request failed with status code 503» теперь видишь нормальное «Сервер временно недоступен» с кнопкой «Повторить». Это работает для всех ошибок 4xx/5xx и проблем с сетью.
## [2.9.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.9.0) (2026-05-12)
### ✨ Новые возможности
* **Статистика webhook-подписок** — на странице подписки появились карточки со счётчиками: в очереди, retry, доставлено, в DLQ + общий процент успешных доставок. Видно с одного взгляда, насколько здоров твой webhook.
## [2.8.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.8.0) (2026-05-12)
### ✨ Новые возможности
* **Редактор схемы прямо в окне создания draft'а** — больше не нужно открывать отдельную форму. Окно «Создать schema draft» теперь содержит полноценный JSON-редактор (Monaco) с подсветкой синтаксиса и проверкой схемы налету.
* **Согласования — отдельные вкладки** — в разделе «Согласования» (`/reviews`) появились вкладки «Записи» и «Схемы» со счётчиками. Auto-switch на ту вкладку, где есть что согласовать.
* **Редактирование draft'а без пересоздания** — если ревьюер запросил изменения, можешь поправить schema draft inline, без удаления и создания нового. Изменения автоматически возвращают draft в статус «На доработке у автора».
* **Фильтр типов webhook-событий** — вместо ввода CSV-строкой теперь multi-select с 11 известными типами событий (`RecordCreated`, `SchemaDraftPublished` и др.).
## [2.7.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.7.0) (2026-05-12)
### ✨ Новые возможности
* **Schema workflow Phase 1c** — окно создания schema draft, расширение раздела согласований, контроль прав доступа.
## [2.6.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.6.0) (2026-05-12)
### ✨ Новые возможности
* **Боковая панель schema draft с действиями** — drawer показывает текущий статус draft'а и контекстные кнопки: отправить на ревью, approve, request changes, reject, publish, withdraw, edit. Видишь только те действия, которые доступны на текущем шаге.
## [2.5.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.5.0) (2026-05-12)
### ✨ Новые возможности
* **Вкладка «История версий»** — теперь показывает реальный timeline изменений с иконками по типу события и кнопкой «Сравнить» — открывает модальное окно с before/after JSON. Раньше там была заглушка.
## [2.4.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.4.0) (2026-05-12)
### ✨ Новые возможности
* **Полное сравнение версий схемы** — endpoint позволяет получить before/after любой пары версий схемы для конкретной записи (используется кнопкой «Сравнить» в History tab'е).
### 🐛 Исправления
* **Слайдер TimeTravel** — пометки дат больше не наезжают друг на друга при близких версиях.
* **Кнопки в редакторе записи** — кнопка «JSON» теперь видна явно (раньше скрывалась как иконка). Если у записи всего одна версия, показывается подсказка вместо disabled кнопок.
## [2.3.0-2.0.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/blob/main/CHANGELOG.md) (2026-05-12)
Большой релиз-волна: backend endpoints для полного timeline истории, schema workflow API (8 endpoints с maker-checker согласованием), Diff endpoint, тёмная тема. Подробности — в [полном CHANGELOG](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/blob/main/CHANGELOG.md).