293 lines
26 KiB
Markdown
293 lines
26 KiB
Markdown
# Что нового в 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).
|