Files
orchestrator/docs/work-items/ORCH-019/07-infra-requirements.md

4.2 KiB
Raw Blame History

work_item, stage, author_agent, status, created_at, model_used
work_item stage author_agent status created_at model_used
ORCH-019 architecture architect proposed 2026-06-10 claude-opus-4-8

07 — Инфраструктурные требования (Infra Requirements): ORCH-019 — Багфикс-трек

Work Item: ORCH-019 · Repo: orchestrator · Стадия: architecture

Топология не меняется. Один прод-контейнер orchestrator (8500) + staging (8501) на mva154, общая SQLite-БД. ORCH-019 — чисто прикладное изменение под флагом. Этот документ фиксирует предусловия включения (Plane-метка + env-флаги), не новую инфраструктуру.


1. Предусловие: метка Bug в Plane-проекте (блокирующее для активации)

Багфикс-трек активируется по метке Plane с именем bug_fast_track_label (дефолт Bug), читаемой аппаратом ORCH-089 (fetch_issue_labels/get_project_labels). Метка должна существовать в Plane-проекте orchestrator (и в любом проекте, добавленном в bug_fast_track_repos).

  • Её отсутствие = fail-safe полный цикл (has_label → False), не сбой. Включение флага без заведённой метки безопасно, но эффекта не даёт.
  • Создаётся оператором в Plane вручную (как autoApprove/autoDeploy для ORCH-089).

2. Конфигурация (env-флаги, src/config.py)

Флаг Env Дефолт Назначение
bug_fast_track_enabled ORCH_BUG_FAST_TRACK_ENABLED False kill-switch; False → путь старта/маршрут строго прежние (нулевая регрессия)
bug_fast_track_label ORCH_BUG_FAST_TRACK_LABEL Bug имя метки Plane для распознавания бага
bug_fast_track_repos ORCH_BUG_FAST_TRACK_REPOS "" (пусто) CSV-область; пусто → self-hosting only (orchestrator)

Рекомендация выката: enabled=False до момента, когда метка Bug заведена в Plane и проведён staging-прогон. Дефолт области (пустой CSV) = self-hosting only → enduro не затронут даже при включённом флаге.

3. Зависимости / образ

  • Новых pip-зависимостей нет. Переиспользуются существующие httpx/plane_sync (label-чтение) и sqlite3 (колонка tasks.track). Пересборка образа из-за зависимостей не требуется.
  • Миграция БД (tasks.track) применяется идемпотентно при старте приложения (_ensure_column) — без ручного шага, без даунтайма (ALTER ADD COLUMN на SQLite — мгновенный).

4. Self-hosting безопасность (NFR-6)

  • Механизм не рестартит/не роняет прод-контейнер, не пушит/force-push в main. Это routing-решение планировщика + аддитивная колонка + read-only наблюдаемость.
  • Выкат самого ORCH-019 на прод орка идёт штатным конвейером через обязательный deploy-staging (8501) → Confirm Deploy (ORCH-059). Топология/процедура — docs/operations/INFRA.md.

5. Новый эндпоинт (эскалация)

POST /bug-fast-track/escalate?work_item=<id> — админ-ручка возврата задачи в полный цикл (track → 'full'), по образцу POST /serial-gate/unfreeze. Без новой инфраструктуры (тот же FastAPI-приложение/порт). Read-only блок bug_fast_track добавляется в существующий GET /queue.