semantic-release-bot c3ae1a7ecc chore(release): v1.4.0 [skip ci]
## [1.4.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v1.3.0...v1.4.0) (2026-05-11)

###  Features

* **catalog:** scope-colored row stripes + filter pills + chips ([bc73782](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/bc737820d6a74755494987bf7c45cc2674ab2365))
* **catalog:** toolbar layout per redesign prototype ([ad7c51d](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/ad7c51d93fe73c8af4c91464637992ef758d9b48))
* **editor:** Fields / Events / History tabs match redesign prototype ([cbe21db](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/cbe21dbc52026998ceb91205a491b531f201c0c1))
* **editor:** scope-colored InfoPanel badge + Time-travel label ([e580a04](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/e580a04007e2a0658b3cfcedc73f240bd81978ac))
* **editor:** wrap InfoPanel + main content in bordered panels per prototype ([ce1f40c](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/ce1f40c5d1771166a7ba59785d8b2a4623c0ed9a))
* **editor:** Связи tab 2-col split per redesign prototype ([180a592](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/180a5920fe79b2144396bc3fb6ff6a90337e3a3e))
* **layout:** catalog relative time + chevron + flat sidebar per redesign (4) ([7e33456](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/7e33456d70875ad70e8748517cb668b0abd6fec2)), closes [#faf9f5](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/issues/faf9f5)
* **record:** conflict diff modal на 409 save (handoff line 444) ([16da694](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/16da694d8ca9acb1a3014f0d2947ea2421c57401))
* **records:** accent businessKey + remove redundant Export CSV from bulk bar ([3e4d789](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/3e4d78906d4ebb976ec9382defd6c7c502add794))
* **topbar:** match redesign prototype — breadcrumb back-arrow + cleaner right cluster ([ac1ca8d](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/ac1ca8d035d928bfd90ab36650cd38a196a73ebc))

### 🐛 Fixes

* **catalog:** title→TopBar + toolbar→tinted bar + table white + font fix ([d77f040](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/d77f040a5c2ba7b566cd94d50f1776d695988278))
* **table:** white row bg + stronger hover per user feedback ([a27e9ec](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/a27e9ec901d609afea150d1272c2be5b4bee8adb)), closes [#faf9f5](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/issues/faf9f5)
* **topbar:** restore full right cluster per user preference ([38f7dce](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/38f7dcee3ec7ba645ecbbaa8e278fb060f2b7c6c))
* **topbar:** revert ThemeSwitch to 3-icon original + shorten create button ([6627fd9](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/6627fd918d382f338bc4ee2667df70dfae604191))
2026-05-11 17:47:48 +00:00
2026-05-03 23:06:24 +03:00

Ordinis

MDM сервис для НСИ ЦУОД ОДХ (Оперативное и Долговременное Хранение). Часть линейки Terravault. Ордо/порядок (от лат. ordo) — упорядоченные классификаторы и справочные данные.

ЦУОД — anchor-клиент v1, второй клиент = свой config bundle, без code change.

Maven multimodule

ordinis/
├── ordinis-domain              JPA entities, JSONB types, bitemporal model
├── ordinis-validation          JSON Schema validator (networknt)
├── ordinis-events-api          DTO для Kafka (semver shared module)
├── ordinis-outbox              Outbox pattern + @Scheduled poller
├── ordinis-rest-api            Admin write API (CRUD, bundle import)
├── ordinis-app                 Spring Boot main: writer side
├── ordinis-read-api            Read service (PG replica + scope filtering)
├── ordinis-projection-writer   Опц.: Kafka → Redis projection (feature-flagged)
├── ordinis-cuod-bundle         ЦУОД config: JSON Schema, seed, Grafana dashboards
└── ordinis-migrations          Liquibase changelogs → Helm pre-upgrade Job (1-shot)

Стек

  • Java 21, Spring Boot 3.4
  • PostgreSQL 18 + PostGIS 3.6 + btree_gist (EXCLUSION CONSTRAINT)
  • Apache Kafka 4.2 (KRaft, SASL SCRAM-SHA-512)
  • Hibernate Envers (tx-time) + valid_from/valid_to (effective-time) — bitemporal
  • Liquibase
  • Spring Cloud Config + Spring Cloud Vault (Kubernetes auth)
  • Micrometer + Prometheus
  • LogstashEncoder JSON stdout → Loki через Alloy
  • OpenTelemetry → Tempo (OTLP gRPC)

Архитектурные принципы

  • Generic dictionary engine + ЦУОД config bundle (Approach B). Engine не знает про "КА"/"наземные станции" — узнаёт через JSON Schema из bundle
  • Bitemporal: Envers для tx-time + valid_from/valid_to для effective-time + EXCLUSION CONSTRAINT
  • 3 scope-топика Kafka (public/internal/restricted) — изоляция через ACL, не через filter в consumer
  • System boundary: 3 deployable делят БД (master+replica). Внешние consumers — только REST/Kafka, никогда прямо в БД
  • Tiered performance: 1k RPS из коробки (PG replica + Caffeine). 10k+ RPS включается per-dictionary через Redis projection
  • Audit log в БД (compliance), технические логи в Loki

Build

mvn clean install        # все модули
mvn -pl ordinis-app -am package -DskipTests  # только app + transitive
docker build -f ordinis-app/Dockerfile -t ordinis-app:0.1.0 .
docker build -f ordinis-migrations/Dockerfile -t ordinis-migrations:0.1.0 ordinis-migrations/

Связанные репо

S
Description
No description provided
Readme 3.2 MiB
Languages
TypeScript 49.7%
Java 43.7%
HTML 5.5%
CSS 0.7%
Dockerfile 0.3%