# Дорожная карта

Этапная карта развития reference runtime `../ioot-pro-cabinet`. Этот документ отвечает на вопрос "какие фазы уже пройдены и какой этап утвержден следующим", в отличие от `Доски задач`, где видны детальные задачи внутри этапов.

## Этап 0 — Базовая среда исполнения (выполнено)

- [x] Сформирован и стабилизирован reference runtime `../ioot-pro-cabinet`.
- [x] Реализованы базовые backend-модули, модульный реестр и install/uninstall.
- [x] Реализованы контуры `status` (WS), `demo` (MQTT generator), `pult`, `passkey`, `auth`.
- [x] Введен базовый набор unit/e2e проверок.

## Этап 1 — Контракты и контексты

- [x] Реализовать `app/context` (tenant/master/role/feature_flags) с policy snapshot (`permissions/capabilities/guards`).
- [x] Зафиксировать OpenAPI как source-of-truth и опубликовать Swagger UI в runtime.
- [x] Расширить contract testing для ключевых endpoint-ов.
- [x] Согласовать и внедрить сервисные endpoint-ы готовности.

## Этап 2 — Декомпозиция runtime

- [x] Разложить frontend на модульные слои и сервисы.
- [x] Формализовать permission-aware/navigation-aware runtime.
- [x] Укрепить отказоустойчивость WS/MQTT и degraded mode.

## Этап 3 — Безопасность и релизная дисциплина

- [x] Ввести production-контур JWT + RBAC.
- [x] Закрыть аудит и security logging.
- [x] Установить обязательную синхронизацию документации `green-robot` при изменениях changelog/runtime.

## Этап 4 — Готовность tenant-master к production

- [x] Реализовать tenant-master sync с утвержденным whitelist.
- [x] Подготовить эксплуатационные runbook и release package.
- [x] Формализовать release gate и quality pipeline.
- [x] Подготовить масштабирование и SLA/SLO как следующий отдельный рабочий этап.

## Этап 5 — Productization shell (закрыт)

- [x] Перевести shell preferences и права меню на backend-driven persistence (`auth/ui-preferences`, `auth/ui-access`).
- [x] Начать сервисную декомпозицию frontend-shell: вынести из `App.vue` базовые API-клиенты (`auth`, `runtime bootstrap`, `ui-preferences`, `permissions`, `modules admin`).
- [x] Вынести feature-specific API-клиенты (`status`, `passkey`, `pult`, `demo`, отраслевые action/list`) в отдельные services/composables.
- [x] Выделить composables для auth-flow, runtime bootstrap, module actions и route/fullscreen orchestration.
- [x] Добавить export/import shell profile, pilot presets и acceptance smoke для shell permissions/persistence.

## Этап 6 — Pilot Rollout & Scale Readiness (закрыт)

- [x] Подготовить bootstrap-package pilot-контура для `cloud-multi` и `edge-single` (`modules_state`, `site-policy`, `shell-profile`, порядок применения).
- [x] Формализовать SLA/SLO и capacity profile для `tenant/master`, `Postgres`, `NanoMQ` и realtime/status path.
- [x] Добавить exportable evidence bundle для sign-off (`app/context`, `modules/list`, `site-policy`, `shell-profile`, `security-log`).
- [x] Автоматизировать rollback/restore drill pilot-контура и включить его в release gate.

## Этап 7 — Pilot Execution & Operational Handover (закрыт)

- [x] Выполнить реальный pilot sign-off на целевом контуре (`bootstrap apply`, `production smoke`, `evidence bundle`, `rollback/restore drill`, архив площадки).
- [x] Ввести retention и место хранения pilot-артефактов вне локального рабочего каталога.
- [x] Добавить pilot observability и alerting для `/ready`, `tenant-master-sync lag`, `status heartbeat`, `Postgres/NanoMQ`.
- [x] Подготовить promotion-path `pilot -> production` с checklist допуска и policy по версиям артефактов.

## Этап 8 — Fleet Rollout & Operations Automation (закрыт)

- [x] Добавить cron/systemd templates и расписание для observability/retention jobs.
- [x] Ввести rollout registry по площадкам и production waves.
- [x] Подготовить operational incident handover package.
- [x] Зафиксировать immutability policy для production package и связанных pilot artifacts.

## Следующий этап

- Новый этап после `Fleet Rollout & Operations Automation` еще не утвержден.
- Следующий backlog должен открываться отдельным решением, а не как продолжение закрытого этапа 8.
