Александр Зимин
71f1c2172c
Merge branch 'fix/admin-self-approve-frontend' into 'main'
...
fix(reviews): admin может self-approve record draft через UI
See merge request 2-6/2-6-4/terravault/ordinis!290
2026-06-02 13:02:13 +00:00
Александр Зимин
308c9104e9
fix(reviews): admin может self-approve record draft через UI
2026-06-02 13:02:13 +00:00
semantic-release-bot
039b6ef039
chore(release): v2.51.0
...
## [2.51.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.50.0...v2.51.0 ) (2026-06-02)
### ✨ Features
* **layout:** убрать max-w-7xl на root — full width на больших экранах ([ff18a3a ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/ff18a3aa720824314bc2354d36acfd8220df58a8 ))
2026-06-02 12:55:05 +00:00
Александр Зимин
1387ff3906
Merge branch 'feat/wide-screen-layout' into 'main'
...
feat(layout): убрать max-w-7xl на root — full width на больших экранах
See merge request 2-6/2-6-4/terravault/ordinis!289
2026-06-02 12:38:11 +00:00
Александр Зимин
ff18a3aa72
feat(layout): убрать max-w-7xl на root — full width на больших экранах
2026-06-02 12:38:10 +00:00
semantic-release-bot
4f16669f2b
chore(release): v2.50.0
...
## [2.50.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.49.0...v2.50.0 ) (2026-06-02)
### ✨ Features
* **dict:** таблица справочника — hide tail columns по умолчанию (без H-scroll) ([b619071 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/b6190713e4e472b0aa1a9f26592b537920b8df8b ))
### 🐛 Fixes
* **dict:** default-hide для existing users (v=2 storage) + sticky header/pagination ([fece673 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/fece673017b5fbae0035f275cabba14f3d06879c ))
2026-06-02 12:35:11 +00:00
Александр Зимин
dee90a7ecf
Merge branch 'fix/dict-table-default-hide-existing-users' into 'main'
...
fix(dict): default-hide для existing users (v=2 storage) + sticky header/pagination
See merge request 2-6/2-6-4/terravault/ordinis!288
2026-06-02 12:22:19 +00:00
Александр Зимин
fece673017
fix(dict): default-hide для existing users (v=2 storage) + sticky header/pagination
2026-06-02 12:22:19 +00:00
Александр Зимин
f7fcb316bd
Merge branch 'feat/dict-table-default-hide-extras' into 'main'
...
feat(dict): таблица справочника — hide tail columns по умолчанию (без H-scroll)
See merge request 2-6/2-6-4/terravault/ordinis!287
2026-06-02 12:14:00 +00:00
Александр Зимин
b6190713e4
feat(dict): таблица справочника — hide tail columns по умолчанию (без H-scroll)
2026-06-02 12:14:00 +00:00
semantic-release-bot
071315b058
chore(release): v2.49.0
...
## [2.49.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.48.0...v2.49.0 ) (2026-06-02)
### ✨ Features
* **dict:** таблица справочника — все scalar поля схемы в pool колонок ([65f5dbd ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/65f5dbd48b5be5df612a74e834a5ae482bcced7e ))
### 🐛 Fixes
* **approve:** retry на Postgres SERIALIZABLE 40001 (массовый approve drafts) ([30506b0 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/30506b0cc4f7c52ddbcd47a8960c720117115098 ))
2026-06-02 12:08:28 +00:00
Александр Зимин
d8fdcea1db
Merge branch 'fix/approve-serializable-retry' into 'main'
...
fix(approve): retry на Postgres SERIALIZABLE 40001 (массовый approve drafts)
See merge request 2-6/2-6-4/terravault/ordinis!286
2026-06-02 11:56:03 +00:00
Александр Зимин
30506b0cc4
fix(approve): retry на Postgres SERIALIZABLE 40001 (массовый approve drafts)
2026-06-02 11:56:03 +00:00
Александр Зимин
6ba32f21ad
Merge branch 'feat/dict-table-all-schema-cols' into 'main'
...
feat(dict): таблица справочника — все scalar поля схемы в pool колонок
See merge request 2-6/2-6-4/terravault/ordinis!285
2026-06-02 11:50:16 +00:00
Александр Зимин
65f5dbd48b
feat(dict): таблица справочника — все scalar поля схемы в pool колонок
2026-06-02 11:50:16 +00:00
semantic-release-bot
4510d7cc6f
chore(release): v2.48.0
...
## [2.48.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.47.0...v2.48.0 ) (2026-06-02)
### ✨ Features
* **ui:** RecordDrawer wide-mode default по viewport ([010f71e ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/010f71e44d0caf9768c295bde3afa45593767bb3 ))
### 🐛 Fixes
* **bundle:** semver-aware schema update — не откатывать user-published ([39e24a6 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/39e24a6d0130fc29019d3347c92f0b431a7ca0e9 ))
2026-06-02 11:26:08 +00:00
Александр Зимин
b9056fdef2
Merge branch 'feat/drawer-wide-default-by-viewport' into 'main'
...
feat(ui): RecordDrawer wide-mode default по viewport
See merge request 2-6/2-6-4/terravault/ordinis!284
2026-06-02 11:14:48 +00:00
Александр Зимин
010f71e44d
feat(ui): RecordDrawer wide-mode default по viewport
2026-06-02 11:14:48 +00:00
Александр Зимин
e980be2024
Merge branch 'fix/bundle-importer-no-rollback' into 'main'
...
fix(bundle): semver-aware schema update — не откатывать user-published
See merge request 2-6/2-6-4/terravault/ordinis!283
2026-06-02 11:11:53 +00:00
Александр Зимин
39e24a6d01
fix(bundle): semver-aware schema update — не откатывать user-published
2026-06-02 11:11:53 +00:00
semantic-release-bot
c892f30b3e
chore(release): v2.47.0
...
## [2.47.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.46.1...v2.47.0 ) (2026-06-02)
### ✨ Features
* **ui:** dict table column sort + visibility toggle (localStorage) ([c2e7dd0 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/c2e7dd0c87113868f4b4b8c02936ae5cd894c450 ))
2026-06-02 11:04:14 +00:00
Александр Зимин
385effe773
Merge branch 'feat/dict-table-sort-columns' into 'main'
...
feat(ui): dict table column sort + visibility toggle (localStorage)
See merge request 2-6/2-6-4/terravault/ordinis!282
2026-06-02 10:58:59 +00:00
Александр Зимин
c2e7dd0c87
feat(ui): dict table column sort + visibility toggle (localStorage)
2026-06-02 10:58:59 +00:00
semantic-release-bot
c20ffb6dee
chore(release): v2.46.1
...
## [2.46.1](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.46.0...v2.46.1 ) (2026-06-02)
### 🐛 Fixes
* **workflow:** drop DB self-approve constraints (unblock admin override) ([ba76704 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/ba767045a494837c5aa95439db2fc9e3573ed592 ))
2026-06-02 09:27:23 +00:00
Александр Зимин
da7d4c489c
Merge branch 'fix/drop-self-approve-db-constraints' into 'main'
...
fix(workflow): drop DB self-approve constraints (unblock admin override)
See merge request 2-6/2-6-4/terravault/ordinis!281
2026-06-02 09:13:23 +00:00
Александр Зимин
ba767045a4
fix(workflow): drop DB self-approve constraints (unblock admin override)
2026-06-02 09:13:23 +00:00
semantic-release-bot
ff0fd1e3e9
chore(release): v2.46.0
...
## [2.46.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.45.3...v2.46.0 ) (2026-06-01)
### ✨ Features
* **workflow:** admin self-approve override (D3 relaxation для small teams) ([ba49854 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/ba49854a612aae10e9a1dacb1f020dfe36eefed7 ))
2026-06-01 18:55:37 +00:00
Александр Зимин
11d273c608
Merge branch 'feat/admin-self-approve' into 'main'
...
feat(workflow): admin self-approve override (D3 relaxation для small teams)
See merge request 2-6/2-6-4/terravault/ordinis!280
2026-06-01 18:46:15 +00:00
Александр Зимин
ba49854a61
feat(workflow): admin self-approve override (D3 relaxation для small teams)
2026-06-01 18:46:15 +00:00
semantic-release-bot
41466123cd
chore(release): v2.45.3
...
## [2.45.3](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.45.2...v2.45.3 ) (2026-05-27)
### 🐛 Fixes
* **security:** CSO findings — non-root containers + .env gitignore + actuator hardening ([7abff8f ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/7abff8f73ff9a042a5d03b81654827eb427fa981 )), closes [#1 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/issues/1 ) [#2 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/issues/2 ) [#3 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/issues/3 )
2026-05-27 16:15:25 +00:00
Александр Зимин
b84df0441e
Merge branch 'fix/security-hardening' into 'main'
...
fix(security): CSO findings #1-3 — non-root containers + .env gitignore + actuator hardening
See merge request 2-6/2-6-4/terravault/ordinis!279
2026-05-27 16:05:50 +00:00
Zimin A.N.
7abff8f73f
fix(security): CSO findings — non-root containers + .env gitignore + actuator hardening
...
Три прямых фикса по /cso security audit на v2.45.2:
## Finding #1 (HIGH): Backend containers run as root
ordinis-app / ordinis-read-api / ordinis-projection-writer Dockerfile'ы
запускали JVM от root (eclipse-temurin:21-jre default'но не задаёт USER).
Compromise через Spring CVE / Jackson deserialization → root-в-контейнере
= escalation surface на ноду через любой pod misconfig.
Добавлено: `RUN groupadd -r -g 10001 app && useradd -r -u 10001 -g app
-s /sbin/nologin app` + `USER app`. UID 10001 — outside system (0-999)
и distribution reserved (1000-9999). `--chown=app:app` на COPY чтобы
JVM могла прочитать jar.
ordinis-migrations (USER liquibase) и docs (nginx default) уже non-root.
## Finding #2 (HIGH): .env / .env.local not in .gitignore
`.gitignore` блокировал *.pem, *.key, .gstack/, .claude/ — но не .env.
Развработчик с realный dotenv для local dev мог случайно `git add .` и
закоммитить creds. Сейчас нет committed .env (verified) но защита нулевая.
Добавлено: `.env`, `.env.local`, `.env.*.local`, `*.env` + whitelist
`!.env.example`, `!.env.template`, `!.env.sample` для шаблонов.
Существующий tracked `ordinis-admin-ui/.env.example` остался tracked
(verified `git ls-files | grep .env.example`).
## Finding #3 (MEDIUM): Spring Actuator permitAll() — defense-in-depth gap
SecurityConfig had `requestMatchers("/actuator/**").permitAll()` →
любой pod в кластере мог `curl ordinis-app:8080/actuator/env` и
получить ORDINIS_KEYCLOAK_ADMIN_CLIENT_SECRET, DB creds и пр.
VERIFIED: nginx ingress на проде НЕ проксирует /actuator/* (SPA fallback
отдаёт index.html), так что не exposed на интернет. Но pod-to-pod в
кластере = открыто.
Defense in two layers:
1. SecurityConfig: split actuator routes —
/actuator/health/**, /actuator/info, /actuator/prometheus → permitAll
/actuator/** → denyAll
Probes/Prometheus scrape работают, остальное блок.
2. application.yml для всех трёх Spring apps: narrowed default exposure
to "health,info,prometheus". Поддерживается env override
MANAGEMENT_ENDPOINTS_WEB_EXPOSURE_INCLUDE для staging diagnostic
(включить env/configprops/loggers только когда нужно дебажить
autoconfig).
## Тесты
- mvn package — все 15 модулей SUCCESS
- ordinis-rest-api + ordinis-auth tests — SUCCESS
## Manual verify post-deploy
После пророллится v2.45.3:
- staging+prod liveness/readiness probes должны остаться зелёными
(/actuator/health/{liveness,readiness} в permitAll list).
- Prometheus scrape /actuator/prometheus → 200.
- ssh pod && curl localhost:8080/actuator/env → должен вернуть
401/403 (или 404 если endpoint вообще выключен через exposure).
## Откат
Если probes сломаются (маловероятно — health endpoints whitelisted) —
revert этого MR. Image rollback к v2.45.2 через helm.
2026-05-27 19:02:34 +03:00
Александр Зимин
d031743159
Merge branch 'chore/a11y-sweep' into 'main'
...
chore(ui): a11y touch-targets sweep + useUserDisplay JSDoc refresh
See merge request 2-6/2-6-4/terravault/ordinis!278
2026-05-27 15:49:17 +00:00
Александр Зимин
c1a006765f
chore(ui): a11y touch-targets sweep + useUserDisplay JSDoc refresh
2026-05-27 15:49:17 +00:00
semantic-release-bot
2868e8635a
chore(release): v2.45.2
...
## [2.45.2](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.45.1...v2.45.2 ) (2026-05-26)
### 🐛 Fixes
* **auth:** зачистить остатки auth.nstart.space → altum.nstart.cloud ([c1aaf6a ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/c1aaf6a696050678d7b2edacde1f1150647b1a00 ))
2026-05-26 13:26:20 +00:00
Александр Зимин
58df9917c8
Merge branch 'fix/strip-nstart-realm-refs' into 'main'
...
fix(auth): зачистить остатки auth.nstart.space → altum.nstart.cloud
See merge request 2-6/2-6-4/terravault/ordinis!277
2026-05-26 13:17:58 +00:00
Александр Зимин
c1aaf6a696
fix(auth): зачистить остатки auth.nstart.space → altum.nstart.cloud
2026-05-26 13:17:58 +00:00
Александр Зимин
d1b4916605
Merge branch 'chore/phase3-prep-org-id' into 'main'
...
chore(auth): Phase 3 cheap prep — nullable org_id + OrgContext skeleton
See merge request 2-6/2-6-4/terravault/ordinis!276
2026-05-26 13:01:36 +00:00
Александр Зимин
2c251311f5
chore(auth): Phase 3 cheap prep — nullable org_id + OrgContext skeleton
2026-05-26 13:01:36 +00:00
Александр Зимин
9144b2d1d1
Merge branch 'chore/cleanup-tokensync-jsdoc' into 'main'
...
chore(ui): убрать упоминание TokenSync из RequireAuth JSDoc
See merge request 2-6/2-6-4/terravault/ordinis!275
2026-05-26 12:37:17 +00:00
semantic-release-bot
16559a8488
chore(release): v2.45.1
...
## [2.45.1](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.45.0...v2.45.1 ) (2026-05-26)
### 🐛 Fixes
* **auth:** иерархическое расширение scope set в ScopeContext ([6977ba1 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/6977ba106dbb81e9a735edafb1224f8799c47c35 ))
2026-05-26 12:33:43 +00:00
Zimin A.N.
03973a943e
chore(ui): убрать упоминание TokenSync из RequireAuth JSDoc
...
TokenSync.tsx был удалён в Phase 1a (keycloak-js migration, MR !270 ).
В JSDoc на RequireAuth.tsx осталась ссылка на его поведение —
обновляем описание под текущую модель: apiClient request interceptor
+ ensureFreshToken на 401 (см. api/client.ts:64).
Минор-долг из checkpoint'а keycloak-js-altum-migration.
2026-05-26 15:28:24 +03:00
Александр Зимин
902218dbf3
Merge branch 'fix/scope-hierarchy' into 'main'
...
fix(auth): иерархическое расширение scope set в ScopeContext
See merge request 2-6/2-6-4/terravault/ordinis!274
2026-05-26 12:25:14 +00:00
Александр Зимин
6977ba106d
fix(auth): иерархическое расширение scope set в ScopeContext
2026-05-26 12:25:14 +00:00
semantic-release-bot
90a6c1185e
chore(release): v2.45.0
...
## [2.45.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.44.1...v2.45.0 ) (2026-05-26)
### ✨ Features
* **auth:** Phase 2 — audited-users UserPicker + Tier-3 Keycloak Admin lookup ([a4ba873 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/a4ba8735d0e03b1e867c648bc8fb9ee059aa5c8f ))
2026-05-26 12:09:48 +00:00
Александр Зимин
f38b2b668d
Merge branch 'feat/phase2-direct-kc-admin' into 'main'
...
feat(auth): Phase 2 — audited-users UserPicker + Tier-3 Keycloak Admin lookup
See merge request 2-6/2-6-4/terravault/ordinis!272
2026-05-26 12:01:10 +00:00
Александр Зимин
a4ba8735d0
feat(auth): Phase 2 — audited-users UserPicker + Tier-3 Keycloak Admin lookup
2026-05-26 12:01:09 +00:00
semantic-release-bot
bd3798ffa8
chore(release): v2.44.1
...
## [2.44.1](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.44.0...v2.44.1 ) (2026-05-26)
### 🐛 Fixes
* **ui:** TS2345 в DictionaryEditorDialog[#449 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/issues/449 ) — narrow unknown ([8337561 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/83375610b25b2f194f1e12fc6c0b1f1cfd1c2561 ))
2026-05-26 11:54:07 +00:00
Александр Зимин
49b2fcd1ab
Merge branch 'fix/ts-dictionary-editor-dialog' into 'main'
...
fix(ui): TS2345 в DictionaryEditorDialog#449 — narrow unknown
See merge request 2-6/2-6-4/terravault/ordinis!273
2026-05-26 11:48:24 +00:00
Александр Зимин
83375610b2
fix(ui): TS2345 в DictionaryEditorDialog#449 — narrow unknown
2026-05-26 11:48:24 +00:00