# Ordinis НСИ ЦУОД ОДХ

Документация продукта Ordinis. Здесь — материалы для трёх ролей:

- **Операторы справочников** — заводят и поддерживают данные
- **Ревьюеры schema drafts** — принимают решения об изменениях схем
- **Разработчики-интеграторы** — подключают свои сервисы к API

Архитектурные deep-dive'ы, runbook'и для ops-команды и project state —
во внутренней документации проекта (не публикуется).

**Anchor v1 — production LIVE на cluster.264** (с 2026-05-07).
Альтум consumers подключены, blue/green cutover завершён.

## С чего начать

{% list tabs %}

- Я оператор справочников

  Заводишь записи (спутники, наземные станции, типы антенн)? Начни с
  [руководства оператора](operator/index.md).

  Самое полезное:
  - [Создание справочника](operator/create-dictionary.md) — если справочника
    ещё нет, нужно создать новый
  - [Работа с записями](operator/edit-record.md) — добавить, изменить,
    найти запись
  - [Закрытие записи](operator/close-record.md) — корректно «удалить»,
    сохранив историю
  - [Разбор ошибок](operator/errors.md) — что значит сообщение, которое
    вылетело

- Я ревьюер schema drafts

  Принимаешь решения об изменении схем справочников? Смотри
  [руководство ревьюера](reviewer/index.md) и
  [пошаговую инструкцию ревью](reviewer/schema-drafts.md).

  Главное помнить:
  - Не ломать существующие записи (breaking changes — через миграцию)
  - Не ломать downstream (Альтум, BI) — согласуй, если меняешь поле,
    которое они читают
  - Документируй причину approve/reject в комментарии (это аудит)

- Я интегрирую свой сервис

  Начни с [обзора API](integration/api/index.md) и [авторизации](integration/api/auth.md).

  Дальше:
  - [Read-side endpoints](integration/api/read-endpoints.md) — как читать справочники
  - [События (Kafka outbox)](integration/api/events.md) — топики `ordinis.cuod.events.*`
  - [Webhooks](integration/api/webhooks.md) — push-уведомления вместо polling
  - [Кэширование](integration/api/caching.md) — TTL / push / snapshot стратегии

- Я строю UI / клиент

  - [Cross-references](integration/api/x-references.md) — FK между справочниками
  - [Bitemporal](integration/api/bitemporal.md) — `validFrom` / `validTo` + история
  - [Bundle cuod](integration/api/bundle-cuod.md) — список 40 справочников ЦУОД
  - [Best practices](integration/api/best-practices.md) — частые ошибки

- Я обрабатываю ошибки в интеграции

  - [Ошибки и rate limits](integration/api/errors.md) — error codes, retry strategy
  - [Лучшие практики](integration/api/best-practices.md) — robust integration

- Я хочу пощупать API

  Открой [Swagger UI на staging](https://ordinis.k8s.265.nstart.cloud/swagger-ui.html) —
  там можно нажать **Authorize** → войти через Keycloak (PKCE, без secret) →
  и сразу делать «Try it out» с реальным JWT. Authorization, error codes,
  schemas — всё через interactive UI.

  **Важно:** прод (`/k8s.264.nstart.cloud/`) — для реальных пользователей,
  не для exploration. Запросы там влияют на бизнес-данные. Используй
  staging для изучения API.

{% endlist %}

## Что нового в продукте

Список значимых обновлений — в [«Что нового»](changelog.md). Обновления
автоматически приходят на твой сервер при следующем deploy.

Кнопка «Что нового» в правом верхнем углу админ-панели показывает то же
содержимое + красная точка с количеством непрочитанных релизов.

## Среды

| Среда | URL | Auth | Назначение |
|---|---|---|---|
| **prod** | `https://ordinis.k8s.264.nstart.cloud/` | JWT обязателен | Real users |
| staging | `https://ordinis.k8s.265.nstart.cloud/` | optional (legacy mode) | Dev environment |
| local | `http://localhost:8080` | off | docker-compose dev |

## Поддержка

- Запросы новых ролей / scope в Keycloak: `zimin.an@nstart.space`
- Bug reports / feature requests: через issue tracker (запросить URL у Ordinis team)
- Проблема с конкретной записью или ошибкой? Сначала загляни в
  [Разбор ошибок](operator/errors.md) — часто там сразу ответ

## Версионирование

API стабилизирован под v1 — breaking changes только через major bump (`v2`). См.
[Best practices](integration/api/best-practices.md) для рекомендаций по
обработке появления новых полей в v1 (forward compatibility).

Bundle справочников ЦУОД versioned отдельно (`cuod-bundle:1.2.1`). Изменение
schemas — minor bump, добавление словарей — minor bump, удаление — major bump
(никогда без уведомления consumers через `record.closed` events).
