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

Статус v0.1.13

Последний релиз: v0.1.13 (7 июля 2026)

Фаза Статус Примечания
MVP-0 Foundation Compose, auto-migrate БД, health, Prometheus/Grafana/Loki, CI
MVP-1 Script CRUD + Run CRUD, run/stop, logs WS, import/export, шаблоны
MVP-2 Scheduler + Dashboard Cron/interval, KPI dashboard, webhooks
MVP-3 Editor + RBAC Monaco editor, JWT auth, 4 роли, группы
Production-1 Vault секретов, уведомления, бэкапы
Production-2 OTA updates, UpdateProvider, multi-runtime compose prod, метрики
Production-3 🔜 MQTT, HA Postgres, продвинутая изоляция — backlog

Обзор фаз

Фаза Цель Срок (оценка) Результат
MVP-0 Foundation 2 недели Compose up, health checks, пустая UI-оболочка
MVP-1 Script CRUD + Run 3 недели Создание/редактирование/запуск скриптов, базовые логи
MVP-2 Scheduler + Dashboard 3 недели Cron, KPI-карточки, история runs
MVP-3 Editor + Groups 2 недели Monaco multi-file, группы, базовый RBAC
Production-1 Hardening 4 недели Секреты, уведомления, бэкапы
Production-2 Scale + OTA 4 недели Multi-runtime, OTA, полный RBAC
Production-3 Enterprise ongoing MQTT, продвинутая изоляция, HA Postgres

MVP-0 — Foundation (недели 1–2)

Цели

  • Стек Docker Compose стартует одной командой
  • Backend подключается к Postgres + Redis + MinIO
  • Frontend отдаёт страницу входа
  • Runtime и Scheduler стартуют и отчитываются по health

Результаты

  • [x] Структура проекта и документация по архитектуре
  • [ ] docker compose up — все сервисы healthy
  • [ ] Alembic initial migration (users, scripts, runs)
  • [ ] GET /health, GET /api/v1/system/info
  • [ ] Prometheus скрейпит backend + runtime /metrics
  • [ ] Grafana с заготовкой system dashboard
  • [ ] CI: lint + сборка образов

Критерий выхода

Все контейнеры проходят healthcheck; API возвращает 200 на /health.


MVP-1 — Управление скриптами и выполнение (недели 3–5)

Цели

  • Полный жизненный цикл скрипта без рестарта системы
  • Однофайловые скрипты в sandbox с timeout и лимитом памяти

Функции

Функция Приоритет
Создание / редактирование / удаление скрипта P0
Включение / отключение скрипта P0
Ручной run / stop P0
Стрим логов (WebSocket) P0
Список истории runs P0
Копирование скрипта P1
Import / export (zip) P1
Базовые шаблоны (3 системных) P1

Runtime (scope MVP)

  • Subprocess + выделенный workspace
  • RLIMIT_CPU, RLIMIT_AS, wall-clock timeout
  • venv на скрипт из requirements.txt
  • Захват stdout/stderr → Redis stream → WS

API endpoints

POST   /api/v1/scripts
GET    /api/v1/scripts
GET    /api/v1/scripts/{id}
PUT    /api/v1/scripts/{id}
DELETE /api/v1/scripts/{id}
POST   /api/v1/scripts/{id}/run
POST   /api/v1/scripts/{id}/stop
GET    /api/v1/scripts/{id}/runs
GET    /api/v1/runs/{id}/logs
WS     /ws/runs/{id}

Критерий выхода

Пользователь создаёт скрипт в UI, запускает, видит логи и статус success/fail.


MVP-2 — Планировщик и мониторинг (недели 6–8)

Цели

  • Cron и interval-расписания
  • Dashboard с KPI-карточками и базовыми графиками

Функции

Функция Приоритет
Cron-расписания P0
Interval-расписания P0
Max concurrent runs на скрипт P0
Окно start/end date P1
Webhook-триггер (статический token) P1
KPI-карточки dashboard P0
Графики CPU / memory (Grafana embed) P0
Runs per day chart P1
Ошибки за 24 ч P0
Панель статуса по скриптам P0

Сервис scheduler

  • APScheduler с Redis job store (общее состояние)
  • Публикация в runtime:jobs при срабатывании
  • Reload по pub/sub scheduler:reload

Критерий выхода

Скрипт запускается по cron без ручного действия; dashboard показывает live-метрики.


MVP-3 — Редактор, группы и RBAC (недели 9–10)

Цели

  • Редактор кода production-уровня
  • Организация скриптов в группы
  • Четыре роли с правами в scope группы

Функции

Функция Приоритет
Monaco editor, Python syntax P0
Multi-file дерево проекта P0
Редактор requirements.txt P0
Проверка синтаксиса (ast.parse) P1
Форматирование (black, опционально) P2
Поиск по проекту P1
CRUD групп с color/icon P0
Роли: Admin, Developer, Operator, Viewer P0
JWT auth + страница входа P0

Критерий выхода

Developer редактирует multi-file бота в группе «bots», Operator может запускать, но не редактировать.


Production-1 — Безопасность, секреты и уведомления (недели 11–14)

Цели

  • Vault секретов, каналы уведомлений, backup/restore

Функции

Функция Приоритет
Секреты на скрипт (шифрование) P0
SDK platform.secrets.get() P0
Email-уведомления P1
Telegram-уведомления P1
Webhook-уведомления P0
In-app уведомления P0
Ручной бэкап P0
Бэкап по расписанию P1
Restore из бэкапа P0
Export/import полной конфигурации P1
Audit log P1
Run по событию script-complete P1
API-триггер с auth P0

Критерий выхода

Секреты не видны в коде; бэкап восстанавливает скрипты + БД на чистой установке.


Production-2 — Масштаб, OTA и продвинутый runtime (недели 15–18)

Цели

  • Горизонтальное масштабирование runtime
  • Фреймворк OTA-обновлений
  • Детальные метрики на run

Функции

Функция Приоритет
Несколько реплик runtime (Redis queue) P0
Интерфейс UpdateProvider P0
Заглушка GitHubUpdateProvider P0
OTA UI: check, apply, rollback P0
Автобэкап перед обновлением P0
Сэмплирование CPU/memory/threads на run P0
Лимиты cgroup v2 (Linux) P1
Квоты хранилища на скрипт P1
API temp vs persistent storage P1
MQTT client в SDK P2
Дерево зависимостей в UI P2

Критерий выхода

2 контейнера runtime обрабатывают общую очередь; OTA apply + rollback проверены на staging.


Production-3 — Enterprise и HA (ongoing)

Backlog

  • Репликация Postgres / managed DB
  • Network namespace isolation на sandbox
  • SSO (OIDC/SAML)
  • Multi-tenancy
  • Кастомные Grafana dashboard на группу
  • Marketplace скриптов / общие шаблоны
  • Git sync исходников скриптов
  • Canary runs / dry-run mode
  • SLA alerting

Реестр рисков

Риск Митигация
Медленная сборка venv для многих скриптов Lazy build, кэш venv, общие базовые пакеты
Утечка памяти в user script Subprocess на run + жёсткий memory cap + kill
Drift scheduler Redis distributed lock; один leader scheduler в MVP
Объём логов Retention Loki; пагинированный API; опционально S3 cold storage
Утечка секретов Не возвращать расшифрованные секреты через API; аудит доступа

Матрица MVP vs Production

Возможность MVP Production
Script CRUD
Multi-file проекты ✅ (MVP-3)
Изоляция sandbox Базовые rlimits + cgroups, опционально netns
Cron / interval
Event / chain triggers
Webhook trigger Базовый ✅ + rate limits
RBAC ✅ (MVP-3) ✅ + audit
Vault секретов
Уведомления
Бэкапы
OTA updates
Multi-runtime
Prometheus/Grafana Базовый Полные дашборды
MQTT

Рекомендуемый порядок спринтов (первые 10 недель)

Sprint 1: Compose, миграции БД, health, каркас auth
Sprint 2: Script CRUD API + хранение файлов MinIO
Sprint 3: Runtime sandbox v1 + ручной run + logs WS
Sprint 4: Frontend список скриптов + панель run
Sprint 5: Scheduler cron + interval
Sprint 6: Dashboard KPI + панели Grafana
Sprint 7: Monaco editor + file tree
Sprint 8: Группы + enforcement RBAC
Sprint 9: Import/export + шаблоны
Sprint 10: Hardening, docs, релиз MVP v0.1.0