Доска задач#

Published/reference слой по истории runtime-пакетов ../ioot-pro-cabinet.

Актуальная repo-level очередь green-robot больше не ведется здесь: канонический task-entrypoint вынесен в корневой TASKS.md. Этот файл оставлен как reference history по уже закрытым runtime-phase и published sync.

0) Базовая синхронизация (выполнено/в процессе)#

  • [x] Зафиксированы уровни системы по модели: Field Device / Local Controller / Tenant Cloud / Master Cloud / Client Applications.

  • [x] Зафиксирован единый API-контракт /api/v1/<resource>/list + /scheme.

  • [x] Введен docs/backend_contracts.md как общая договоренность по маршрутам, параметрам и envelope.

  • [x] Сохранён backend-driven подход в UI-каркасе (sidebar, RouteContent-модель и модульные карточки в плане разработки).

  • [x] Подтверждено правило документационной дисциплины (обновление docs и связей при изменениях структуры).

1) Backend — контрактно-ориентированная платформа#

  • [x] Текущие endpoint-ы (health, modules/list, modules/scheme, modules/database/list, modules/permissions/list, modules/commands/install, modules/commands/uninstall, status/list, status/stream, passkeys/scheme, passkeys/list, passkeys/commands/issue, passkeys/commands/revoke).

  • [x] Реализован модульный runtime-реестр с install/uninstall, зависимостями и persistent state.

  • [x] Добавлено модульное управление моделью БД и правами (modules/database/list, modules/permissions/list).

  • [x] Реализован модуль passkey (QR/RFID) с backend plugin и модульными тестами.

  • [x] Реализован вход по passkey (auth/passkey/commands/start|commands/complete|status, auth/me, auth/commands/logout) и API middleware auth_required.

  • [x] Реализовано редактирование role/action прав модулей (modules/permissions/commands/update) и UI-матрица прав через шестеренку в карточках модулей.

  • [x] Расширить API до:

    • [x] GET /api/v1/modules/scheme — добавлена поддержка отраслевых метаданных.

    • [x] GET /api/v1/app/context.

    • [x] Базовые CRUD-ресурсы по таблицам/формам.

  • [x] Ввести мета-инфраструктуру ответа (meta.request_id, meta.timestamp).

  • [x] Добавить OpenAPI спецификацию как source-of-truth.

  • [x] Реализовать tenant-master контур обмена через whitelisted служебные события и статусы.

2) Frontend — shell и динамическая навигация#

  • [x] Разложить App.vue на модули: layout, widgets, services, stores (вынесены components/layout/AppSidebar.vue, components/layout/AppTopbar.vue, components/widgets/AuthMethodOption.vue, services/ui-persistence, services/runtime-cache, services/ui-guards, services/module-permissions и stores/ui-keys).

  • [x] Реализовать RouteContent-runtime по module_view из modules/scheme.

  • [x] Базовый sidebar/карточный интерфейс уже присутствует в каркасе.

  • [x] Добавлен frontend-реестр модулей (src/modules/<module>/manifest.js, src/modules/registry.js) и синхронизация dashboard с install state.

  • [x] Для poultry реализован workspace dashboard:

    • [x] cloud/tenant — summary/KPI dashboard с переходом в submodule details;

    • [x] edge-single — fullscreen cards-dashboard для 10» с теми же KPI и быстрым переходом в submodule details.

  • [x] Добавлена карточка Ключи доступа (Passkey): фильтры, выпуск QR/RFID, отзыв ключа, полноэкранная поддержка.

  • [x] Режимы table/cards/map/fullscreen сняты из scope (не требуются в новом интерфейсе).

  • [x] Прописать role/mode-aware UI-гварды и permission-маршрутизацию.

  • [x] Поддержать degraded mode при частичной недоступности API.

  • [x] Добавлены role-gated burger-меню, быстрые topbar-кнопки закрепленных модулей и синхронный drag-and-drop порядок между sidebar и dashboard.

  • [x] Добавлено backend persistence для theme, dashboard layout и quick modules с локальным fallback-кешем.

3) Компоненты общего/общеконтурного уровня#

  • [x] Модуль alarms (общий для tenant/master).

  • [x] Модуль tasks с жизненным циклом.

  • [x] Модуль audit для истории действий.

  • [x] Модуль devices/telemetry с фильтрами и KPI.

4) Tenant-профиль#

  • [x] Tenant-профиль (мониторинг, infobar/история, базовые операции) снят из scope для нового интерфейса.

5) Master-профиль#

  • [x] Подписки и SLA-профили.

  • [x] Политики и ограничения версий.

  • [x] Централизованная аналитика (агрегированные метрики).

  • [x] Управление синхронизацией tenant <-> master.

6) Безопасность и качество#

  • [x] JWT + RBAC для role-based границ master/tenant.

  • [x] Permission matrix для UI и API-операций.

  • [x] Security логирование auth/action.

  • [x] Добавлены module-level тесты: backend definition/plugin tests, frontend manifest tests, e2e сценарии установки/деинсталляции модулей.

  • [x] Добавлены backend-тесты модульной модели БД и прав (manager + modulemanager plugin).

  • [x] Добавлены backend-тесты auth middleware и login-flow по passkey.

  • [x] Contract tests (api), smoke-тесты, i18n-проверки, линт/билд (добавлены swine contract tests, scripts/smoke-check.sh, frontend-vue/scripts/check-i18n.mjs, проверены frontend test/build).

7) Отраслевые контуры#

  • [x] Создан раздел docs/industries для изолированных отраслевых пакетов.

  • [x] Инициализирован первый пакет poultry на основе источников ../poultry-module.

  • [x] D-005: определен следующий отраслевой приоритет melioration и инициализирован пакет.

  • [x] Утвердить решения из docs/industries/decisions.md.

  • [x] Реализовать industry dispatcher в runtime и добавить отраслевые модули через общий реестр.

  • [x] Реализован MVP backend API для melioration (scheme|list + control-mode A/B/C и деградация C -> B/A).

  • [x] Реализованы ingest endpoint-ы melioration (machine/drip/soil/weather) и runtime reconciliation осадков по D-008 policy.

  • [x] Добавлены frontend manifests и карточки melioration-* с загрузкой отраслевых данных.

  • [x] Добавлено frontend-представление долей источников воды для melioration-field.

  • [x] Реализован profile-service нормативов (D-003): YAML export/import, versioning и rollback.

  • [x] Реализован отраслевой industry alarm-bus (D-004) с bridge в status, mapping severity и correlation_id трассировкой.

  • [x] Формализованы ключи изоляции (tenant_id, industry_code, site_id) в отраслевых API.

  • [x] Добавлены отраслевые границы permission-модели по industry_code в modules/permissions.

  • [x] Добавлена policy частичной активации модулей на уровне площадки (modules/site-policy, фильтрация по site_id).

  • [x] Реализован cross-industry access audit в modules/access-audit (scheme/list) с фиксацией allow/deny решений по отраслевым границам.

  • [x] Зафиксирована и автоматизирована policy версионирования отраслевых модулей (MAJOR.MINOR.PATCH, единая major-линия в отрасли).

  • [x] Подготовлены шаблоны для запуска новой отрасли: KPI/alarms и adapter profile (docs/industries/_template/*).

  • [x] Для poultry зафиксированы нормативные диапазоны/обязательные KPI и MVP API (docs/industries/poultry/norms-kpi.md, docs/industries/poultry/mvp-api.md).

  • [x] Подготовлен план E2E сценариев poultry-кейсов (docs/industries/poultry/e2e-scenarios.md).

  • [x] Определить и подготовить следующую отрасль после melioration -> swine (инициализирован пакет docs/industries/swine).

  • [x] Реализован swine backend MVP: scheme|list|ingest/commands + contracts swinecontract/swinestatuscontract и bridge swine-biosecurity -> status.

Ближайшие 2 спринта (приоритет)#

  1. [x] Углубить appContext и policy-гварды (tenant/master, role, feature_flags) в UI/API.

  2. [x] Sidebar -> Content -> Infobar runtime + каталог модулей с backend-driven обогащением.

  3. [x] status/stream и resilient-клиенты WS/MQTT.

  4. [x] OpenAPI + contract tests.

  5. [x] JWT + базовый RBAC и тестирование smoke-пути.

Этап — Production Delivery (закрыт)#

  1. [x] Ввести readiness/live endpoints и диагностический runtime snapshot (dependencies, deployment_mode, industry, modules_state).

  2. [x] Добавить валидацию status/list (limit, offset, sort, severity, status, source) и heartbeat/keepalive метки для операционного контура.

  3. [x] Собрать локальный CI-цикл: lint + test + build + contract + smoke + release checklist.

  4. [x] Подготовить нагрузочные и интеграционные проверки tenant <-> master и описать production runbook/deployment package.

  5. [x] Усилить tenant-isolation: распространить scope-гварды на industry/melioration/poultry/swine runtime и валидировать tenant_id / target_tenant_id в query и JSON body.

  6. [x] Зафиксировать эксплуатационные критерии приемки и release gate.

  7. [x] Перевести production-critical runtime state (modules/auth/site-policy/status) на shared persistence/migration layer и убрать runtime DDL/JSON default path из production baseline.

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

  1. [x] Перевести shell preferences и shell rights на backend-driven persistence (auth/ui-preferences, auth/ui-access) с локальным fallback.

  2. [x] Начать сервисную декомпозицию shell и вынести из App.vue базовые API-клиенты (auth, runtime bootstrap, ui-preferences, permissions, modules admin).

  3. [x] Вынести feature-specific frontend API clients (status, passkey, pult, demo, отраслевые action/list`) в отдельные services/composables.

  4. [x] Сократить orchestration-слой App.vue: выделить composables для auth-flow, runtime bootstrap, fullscreen/route state и module actions.

  5. [x] Добавить переносимость shell-конфигурации между tenant/site: export/import профиля (theme, dashboard layout, quick modules, ui-access) и версионность изменений.

  6. [x] Подготовить pilot shell presets для cloud-multi и edge-single, а также acceptance smoke на shell-права, quick modules и persistence.

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

  1. [x] Подготовить bootstrap-package pilot-контура: scripts/pilot-bootstrap.py, preset-артефакты pilot-bootstrap-cloud-multi.json / pilot-bootstrap-edge-single.json, import modules_state/site-policy/shell-profile и воспроизводимый сценарий развертывания.

  2. [x] Формализовать SLA/SLO и масштабирование tenant/master: подготовлен docs/process/pilot_scale_profile.md с capacity profile, hard limits Postgres/NanoMQ-зависимостей, degraded thresholds и recovery criteria.

  3. [x] Добавить export evidence bundle для pilot handover: scripts/pilot-evidence-bundle.py и docs/process/pilot_evidence_bundle.md собирают app/context, ready, modules, module state, site-policy, shell-profile, security-log.

  4. [x] Автоматизировать rollback/restore drill для pilot-контуров: scripts/pilot-rollback-drill.py экспортирует baseline, применяет target package, собирает evidence bundle, восстанавливает baseline и включен в release gate как обязательный sign-off.

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

  1. [x] Выполнить реальный pilot sign-off на целевом контуре: добавлены scripts/pilot-signoff.py и docs/process/pilot_signoff.md, которые собирают bootstrap apply, production smoke, evidence bundle, rollback/restore drill и архив артефактов площадки.

  2. [x] Ввести хранение и ретеншн pilot-артефактов (bootstrap package, evidence bundle, rollback drill) вне локального рабочего каталога: добавлены scripts/pilot-artifact-retention.py и docs/process/pilot_artifact_retention.md с внешним archive-root, index.json, record.json и retention prune.

  3. [x] Добавить pilot observability для SLO: реализованы GET /api/v1/operability/pilot-summary, scripts/pilot-observability-check.py и process-doc docs/process/pilot_observability.md для /ready, tenant-master-sync lag, status heartbeat, optional deps Postgres/NanoMQ.

  4. [x] Подготовить promotion-path pilot -> production: добавлены scripts/pilot-promotion-check.py и docs/process/pilot_promotion_path.md с checklist различий контура, policy по версиям артефактов и критериями допуска к production rollout.

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

  1. [x] Добавить автоматическое расписание observability/retention jobs: добавлены ops/systemd/*, ops/cron/pilot-operations.example.cron и docs/process/fleet_operations_schedule.md.

  2. [x] Ввести wave-based rollout registry по площадкам: добавлены scripts/fleet-rollout-registry.py, docs/process/fleet_rollout_registry.md и sample-schema docs/process/presets/fleet-rollout-registry.sample.json.

  3. [x] Добавить operational incident handover package: добавлены scripts/incident-handover-package.py и docs/process/incident_handover_package.md.

  4. [x] Зафиксировать immutability policy для production package: добавлены scripts/package-immutability-check.py, docs/process/package_immutability_policy.md и sample-manifest docs/process/presets/production-package-manifest.sample.json.

Отложенные задачи по каталогу приборов IOOT PRO#

  • Актуальный открытый published catalog debt перенесен в корневой TASKS.md.