380 lines
39 KiB
Markdown
380 lines
39 KiB
Markdown
# Что нового в Ordinis
|
||
|
||
Список значимых обновлений продукта на понятном языке. Технических подробностей нет — для них есть [внутренний CHANGELOG](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/blob/main/ordinis-admin-ui/CHANGELOG.md) с привязкой к коммитам.
|
||
|
||
Обновления приходят на твой сервер автоматически при следующем deploy.
|
||
|
||
## [2.54.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.54.0) (2026-06-09)
|
||
|
||
### ✨ Новые возможности
|
||
|
||
* **Удаление справочника — теперь soft-delete с 7-дневным окном восстановления** — раньше «Удалить справочник» физически удалял записи каскадом (recovery только из DB-бэкапа). Теперь backend ставит метку `deleted_at = now()`, записи и черновики остаются в БД. В течение 7 дней администратор может восстановить справочник: открой URL удалённого справочника → красная карточка «Справочник удалён» с кнопкой **«Восстановить справочник»** + счётчик дней до автоудаления. После 7 дней backend cron `DictionaryPurgeJob` (раз в час) физически удаляет cascade — recovery невозможен. Список soft-deleted dicts доступен через `GET /api/v1/dictionaries/deleted` (admin-only Корзина page — UI в follow-up MR).
|
||
|
||
## [2.52.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.52.0) (2026-06-05)
|
||
|
||
### ✨ Новые возможности
|
||
|
||
* **Удаление справочника одной кнопкой** — в правой info-панели редактора справочника появилась danger-кнопка «Удалить справочник…» (видна только пользователям с ролью admin). При клике — модальное окно с предупреждением: будут soft-deleted ВСЕ записи, drafts, schema-drafts. Если на справочник ссылается другой через `x-references` — backend возвращает 409 со списком зависимостей, в модалке появляется дополнительная кнопка «Удалить force» (на случай если зависимый справочник нужно поправить отдельно). Audit log + outbox event «DefinitionDeleted» пишутся при пометке — consumers downstream (геопортал, Альтум) получают snapshot для инвалидации кэша.
|
||
|
||
## [2.51.2](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.51.2) (2026-06-04)
|
||
|
||
### 🐛 Исправления
|
||
|
||
* **FK reference: целевое поле — выпадающий список вместо free-form ввода** — в Schema Builder при настройке поля как FK (x-references) раньше «Целевое поле» был обычным input с placeholder `code`. Можно было ввести любое имя — UI не проверял существование. На staging получили 6 broken FK где target field = `code`, а в реальных схемах поля `code` не было (есть `designator`, `name`, etc). При создании записи backend искал по несуществующему полю и возвращал 422 `x_references_target_not_found`. Теперь target field — Select из реальной схемы целевого справочника (businessKey + все scalar non-localized поля). При смене целевого справочника поле сбрасывается на `businessKey` (universal identifier). Если в существующей схеме FK указывает на несуществующее поле — Builder показывает красное предупреждение «Поле … отсутствует в схеме …».
|
||
|
||
## [2.51.1](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.51.1) (2026-06-02)
|
||
|
||
### 🐛 Исправления
|
||
|
||
* **Админ теперь может self-approve собственный draft** — раньше в Reviews при открытии своего pending draft через «Мои» кнопки Approve/Reject были скрыты, виден только Withdraw, даже для пользователей с ролью `ordinis:admin`. Backend в v2.46 уже пропускал админский override, но фронт не давал кликнуть. Теперь `useIsAdmin()` с tail-match (`admin` / `ordinis:admin` / `*-admin` / `*_admin` / `*:admin`) определяет роль и снимает блокировку UI для всех admin-эквивалентных ролей. В audit log пишется отдельная запись «Admin self-approve override» для compliance trail.
|
||
|
||
## [2.51.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.51.0) (2026-06-02)
|
||
|
||
### ✨ Новые возможности
|
||
|
||
* **Полная ширина на больших экранах** — раньше контент в админке ограничивался шириной 1280px и был центрирован. На мониторах 1920+px по краям оставалось много пустого места. Убрали ограничение — теперь страницы записей справочника, schema editor и audit log используют всю доступную ширину (полезной ширины +33% на 1920px мониторе). Reviews/Settings text-heavy страницы остаются ограниченными (читаемость).
|
||
|
||
## [2.50.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.50.0) (2026-06-02)
|
||
|
||
### ✨ Новые возможности
|
||
|
||
* **Колонки таблицы — лишние спрятаны по умолчанию** — info-dense справочники (spacecraft с 13 полями, ground_station с 10+) переполняли таблицу и приводили к горизонтальному скроллу. Теперь из коробки видны только businessKey, name, scope, validFrom + первые 2 дополнительных scalar поля. Остальные доступны через меню «Колонки» (включил один раз — выбор сохранится в localStorage per справочник).
|
||
|
||
### 🐛 Исправления
|
||
|
||
* **Sticky header + sticky pagination** — при вертикальной прокрутке длинного списка записей шапка таблицы (с фильтрами и стрелками сортировки) и кнопки навигации страниц больше не уезжают, они зафиксированы. Не приходится листать вверх/вниз чтобы переключить страницу или отсортировать.
|
||
* **Существующие пользователи получают новые defaults** — те, кто хоть раз открывал таблицу до этой версии, имели пустое значение `hidden` в localStorage и продолжали видеть все 13 колонок. Добавили схему версии `_v: 2` — старые записи переинициализируются с правильными default-hidden настройками, сортировка preserve.
|
||
|
||
## [2.49.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.49.0) (2026-06-02)
|
||
|
||
### ✨ Новые возможности
|
||
|
||
* **Все поля схемы доступны как колонки таблицы** — раньше в меню «Колонки» попадали только enum и FK-поля справочника. Все остальные scalar-поля (string, number, integer, boolean, date), которые отображаются в drawer редактирования, в таблице выбрать было нельзя. Теперь pool колонок == поля редактирования (1:1).
|
||
|
||
### 🐛 Исправления
|
||
|
||
* **Массовый approve больше не падает с 500** — при выборе нескольких черновиков и нажатии «Approve all» одновременные запросы конфликтовали в Postgres (`SERIALIZABLE` isolation, SSI canceled-as-pivot). Один из approve выдавал 500, остальные проходили. Добавили retry с exponential backoff (50/100/200ms + jitter) для `CannotAcquireLockException` — теперь Postgres conflict разрешается прозрачно за 1-3 попытки.
|
||
|
||
## [2.48.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.48.0) (2026-06-02)
|
||
|
||
### ✨ Новые возможности
|
||
|
||
* **Drawer записи: широкий режим по умолчанию на десктопе** — раньше при открытии записи drawer всегда стартовал в узком режиме (520px), на 1920px мониторе с info-dense схемами приходилось каждый раз вручную нажимать кнопку расширения. Теперь при viewport ≥ 1024px drawer открывается в широком режиме (880px) по умолчанию. На мобильных — узкий (520px, полная ширина anyway). Выбор пользователя (явный toggle) побеждает viewport и сохраняется в localStorage.
|
||
|
||
### 🐛 Исправления
|
||
|
||
* **Bundle importer не откатывает user-published schema** — раньше при рестарте writer'а сравнение `bundle.schemaVersion != db.schemaVersion` срабатывало в обе стороны: если пользователь опубликовал через UI новую версию схемы (например `1.1.0`), а в bundle manifest осталась `1.0.0`, writer на следующем restart перезаписывал DB обратно к старой. Теперь используется semver-aware compare — обновление применяется ТОЛЬКО если bundle строго новее DB. User-published changes сохраняются.
|
||
|
||
## [2.47.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.47.0) (2026-06-02)
|
||
|
||
### ✨ Новые возможности
|
||
|
||
* **Таблица справочника — сортировка по колонкам и выбор колонок** — клик по любому заголовку колонки сортирует по asc → desc → none (NULL-значения всегда в конце). Сортировка numeric-aware (`BK-2 < BK-10 < BK-100` для бизнес-ключей). Меню «Колонки» позволяет скрыть/показать любую колонку кроме businessKey (primary identifier). Выбор сохраняется в localStorage per справочник.
|
||
|
||
## [2.46.1](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.46.1) (2026-06-02)
|
||
|
||
### 🐛 Исправления
|
||
|
||
* **Admin self-approve разблокирован на уровне БД** — в v2.46.0 backend разрешил админу approve собственный draft, но DB CHECK constraint (от старой defense-in-depth) всё равно блокировал INSERT/UPDATE → 500. Constraint убран миграцией 0029. Защита теперь только на Java-уровне через `WorkflowRoles.isAdmin()`.
|
||
|
||
## [2.46.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.46.0) (2026-06-02)
|
||
|
||
### ✨ Новые возможности
|
||
|
||
* **Админ может self-approve drafts** — для small teams без выделенных reviewer'ов админ (роль `ordinis:admin` или любой tail-match `*:admin` / `*-admin` / `*_admin`) теперь может approve собственный draft. Backend пропускает self_approve_forbidden проверку, в audit log пишется запись «Admin self-approve override: draft=… maker=… reviewer=… (same)» для compliance.
|
||
|
||
## [2.45.3](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/-/tags/v2.45.3) (2026-06-02)
|
||
|
||
### 🛡️ Безопасность
|
||
|
||
* **Backend контейнеры запускаются как non-root** — все три backend сервиса (writer, read-api, projection-writer) теперь работают под UID 10001 вместо root. Защита от container escape если злоумышленник захватит JVM.
|
||
* **`.env` файлы добавлены в `.gitignore`** — whitelist для `.env.example` / `.env.template` / `.env.sample`. Защита от случайного коммита credentials.
|
||
* **Actuator endpoints — public scope сужен** — раньше permitAll() на весь `/actuator/**` экспонировал potentially sensitive endpoints (env, beans, mappings) для anonymous browse. Теперь permitAll только для `health`/`info`/`prometheus`, остальное denyAll. Defense-in-depth через `MANAGEMENT_ENDPOINTS_WEB_EXPOSURE_INCLUDE` env override.
|
||
|
||
## [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).
|