3.0 KiB
work_item, stage, author_agent, status, created_at, model_used
| work_item | stage | author_agent | status | created_at | model_used |
|---|---|---|---|---|---|
| ORCH-098 | architecture | architect | proposed | 2026-06-10 | claude-opus-4-8 |
07 — Инфра-требования: ORCH-098 — машинный журнал уроков lessons
Work Item: ORCH-098 · Repo: orchestrator · Стадия: architecture
When-applicable. Топология не меняется; файл создан для аудитопригодности (новая env-переменная).
I-1. Топология / окружения
N/A. Новых контейнеров/портов/сети/томов нет. Таблица lessons живёт в существующей общей
SQLite-БД (тот же том ./data), эндпоинты обслуживаются текущим процессом orchestrator (8500) /
orchestrator-staging (8501). Принцип «всё в Docker на одном сервере mva154» — соблюдён.
I-2. Переменные окружения / секреты
Новые env (pydantic BaseSettings, авто-биндинг ORCH_*), все с безопасными дефолтами:
| Env | Дефолт | Назначение |
|---|---|---|
ORCH_LESSONS_ENABLED |
true |
kill-switch журнала (NFR-2); false → полная инертность |
ORCH_LESSONS_DEDUP_WINDOW_S |
3600 |
окно дедупа автозаписи (ADR-001 D4) |
ORCH_LESSONS_QUERY_LIMIT_DEFAULT |
100 |
дефолтный limit для GET /lessons |
lessons_repos СОЗНАТЕЛЬНО не вводится — журнал observer-only и не скоупится по репо
(ADR-001 D2). Секретов нет. .env.example дополнить тремя ключами для документируемости (значения —
дефолтные, не секреты).
I-3. Деплой / рестарт
- Изменение применяется штатным конвейером: обязательный staging-гейт (8501) перед прод-деплоем
орка (self-hosting инвариант). Прод-контейнер не рестартить вне процедуры деплоя стадии
deploy/Confirm Deploy(ORCH-059) — конвейер всех проектов встанет. - Таблица
lessonsсоздаётся идемпотентно при старте (init_db()) — на первом штатном запуске нового образа, без отдельной ручной миграции (restart-safe, NFR-4). На живой БД enduro не затронут. - Откат —
ORCH_LESSONS_ENABLED=false(мгновенная инертность) либо revert образа.
I-4. CI/CD
Без изменений в .gitea/workflows/. Новые тесты tests/test_lessons.py исполняются штатным
шагом pytest tests/ -q. Новых системных/pip-зависимостей нет (raw SQL на stdlib sqlite3).