Перейти к основному содержимому

Готовность платформы

Зачем нужно

Документ задаёт критерии готовности платформенного слоя. Платформа считается готовой, когда любой из 7 доменов можно реализовать без изобретения собственных конвенций.

Чек-лист готовности

Стек и окружение

  • стек объявлен в tech-stack.md;
  • монорепо настроено: pnpm workspaces, общие пакеты;
  • dev-окружение поднимается одной командой (docker compose up);
  • CI проходит на пустом сервисе.

Топология

  • список сервисов в topology.md совпадает с реальной топологией;
  • публичные домены и API-префиксы зафиксированы;
  • каждый сервис имеет свою БД.

API

  • envelope ответа реализован в общем пакете;
  • каталог ошибок поддерживается централизованно;
  • пагинация поддерживает page и cursor;
  • идемпотентность реализована;
  • OpenAPI генерируется автоматически.

Auth

  • identity authorization server отдаёт OIDC discovery и JWKS;
  • backend-сервисы валидируют токены без обращения в identity на каждом запросе;
  • service-to-service токены работают;
  • X-Actor-Context обрабатывается всеми guards.

Permissions

  • формат permission зафиксирован;
  • каталог permissions поддерживается централизованно;
  • guards работают через общий пакет;
  • аудит изменения прав ведётся.

События

  • шина запущена;
  • клиент шины опубликован как пакет;
  • outbox/inbox шаблоны реализованы;
  • DLQ настроен;
  • retention политики настроены.

Reference-данные

  • справочники (subject, level, format, grade_range) опубликованы как пакет;
  • есть API для управления;
  • событие platform.reference_data.changed доходит до подписчиков;
  • доменные сервисы используют ключи, а не дублируют поля.

UI-система

  • дизайн-токены опубликованы;
  • базовые компоненты UI Kit готовы;
  • темы (light, dark, high-contrast) работают;
  • accessibility check встроен в CI.

Observability

  • логи в едином формате;
  • PII redaction работает;
  • метрики имеют общий префикс и обязательные labels;
  • трассировки сшиваются end-to-end;
  • Sentry получает ошибки;
  • алерты настроены.

Security

  • секреты не в репозитории;
  • заголовки безопасности присутствуют;
  • rate limit работает;
  • CSP настроен на frontend;
  • webhook signatures проверяются;
  • CSRF включён где нужен.

Data

  • PostgreSQL conventions соблюдены;
  • миграции через Prisma;
  • outbox/inbox реализованы;
  • audit log append-only;
  • backup и restore проверены.

Frontend

  • Next.js приложения используют общий API-клиент;
  • silent refresh работает;
  • защита маршрутов работает;
  • перформанс-бюджеты соблюдены;
  • WCAG 2.2 AA проверен в CI.

CI/CD

  • PR checks включают lint, typecheck, tests, security audit, openapi diff;
  • деплой через ArgoCD;
  • rollback воспроизводим;
  • dev/staging/prod окружения настроены.

Документация

  • все файлы платформы заполнены и согласованы;
  • нет ссылок в archive;
  • development-order.md согласован с готовыми доменами;
  • каждый ADR влияющий на платформу — в decisions/.

Что значит «готова»

Платформа готова, когда новая команда может стартовать любой из 7 доменов и не задавать вопросы про API, события, RBAC, observability и стек, потому что ответы уже есть в platform/.