Roadmap

Status v0.1.13

Latest release: v0.1.13 (July 7, 2026)

Phase Status Notes
MVP-0 Foundation Compose, auto-migrate database, health, Prometheus/Grafana/Loki, CI
MVP-1 Script CRUD + Run CRUD, run/stop, logs WS, import/export, templates
MVP-2 Scheduler + Dashboard Cron/interval, KPI dashboard, webhooks
MVP-3 Editor + RBAC Monaco editor, JWT auth, 4 roles, groups
Production-1 Vault of secrets, notifications, backups
Production-2 OTA updates, UpdateProvider, multi-runtime compose prod, metrics
Production-3 🔜 MQTT, HA Postgres, advanced isolation - backlog

Phase overview

Phase Goal Deadline (estimate) Result
MVP-0 Foundation 2 weeks Compose up, health checks, empty UI shell
MVP-1 Script CRUD + Run 3 weeks Creating/editing/running scripts, basic logs
MVP-2 Scheduler + Dashboard 3 weeks Cron, KPI cards, history runs
MVP-3 Editor + Groups 2 weeks Monaco multi-file, groups, basic RBAC
Production-1 Hardening 4 weeks Secrets, notifications, backups
Production-2 Scale + OTA 4 weeks Multi-runtime, OTA, full RBAC
Production-3 Enterprise ongoing MQTT, advanced isolation, HA Postgres

MVP-0 – Foundation (weeks 1–2)

Goals

  • Docker Compose stack starts with one command
  • Backend connects to Postgres + Redis + MinIO
  • Frontend renders the login page
  • Runtime and Scheduler start and report on health

Results

  • [x] Project structure and architecture documentation
  • [ ] docker compose up — all services healthy
  • [ ] Alembic initial migration (users, scripts, runs)
  • [ ] GET /health, GET /api/v1/system/info
  • [ ] Prometheus scrapes backend + runtime /metrics
  • [ ] Grafana with system dashboard template
  • [ ] CI: lint + image build

Exit criteria

All containers undergo health check; The API returns 200 on /health.


MVP-1 - Script Management and Execution (Weeks 3-5)

Goals

  • Full script life cycle without system restart
  • Single-file scripts in sandbox with timeout and memory limit

Features

Function Priority
Creating / editing / deleting a script P0
Enable/disable script P0
Manual run/stop P0
Stream logs (WebSocket) P0
History list runs P0
Copying the script P1
Import / export (zip) P1
Basic templates (3 system) P1

Runtime (scope MVP)

  • Subprocess + dedicated workspace
  • RLIMIT_CPU, RLIMIT_AS, wall-clock timeout
  • venv to the script from requirements.txt
  • Capture 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}

Exit criteria

The user creates a script in the UI, runs it, sees logs and success/fail status.


MVP-2 - Scheduler and Monitoring (weeks 6–8)

Goals

  • Cron and interval schedules
  • Dashboard with KPI cards and basic graphs

Features

Function Priority
Cron schedules P0
Interval-schedules P0
Max concurrent runs per script P0
Window start/end date P1
Webhook trigger (static token) P1
KPI dashboard cards P0
CPU/memory graphs (Grafana embed) P0
Runs per day chart P1
Errors in 24 hours P0
Script status panel P0

Service scheduler

  • APScheduler with Redis job store (shared state)
  • Publishing to runtime:jobs when triggered
  • Reload by pub/sub scheduler:reload

Exit criteria

The script is run via cron without manual action; dashboard shows live metrics.


MVP-3 - Editor, Groups and RBAC (Weeks 9–10)

Goals

  • Production-level code editor
  • Organizing scripts into groups
  • Four roles with rights in the scope group

Features

Function Priority
Monaco editor, Python syntax P0
Multi-file project tree P0
Editor requirements.txt P0
Syntax checking (ast.parse) P1
Formatting (black, optional) P2
Search by project P1
CRUD groups with color/icon P0
Roles: Admin, Developer, Operator, Viewer P0
JWT auth + login page P0

Exit criteria

Developer edits a multi-file bot in the “bots” group; Operator can launch it, but not edit it.


Production-1 - Security, Secrets and Notices (Weeks 11–14)

Goals

  • Vault of secrets, notification channels, backup/restore

Features

Function Priority
Secrets for the script (encryption) P0
SDK platform.secrets.get() P0
Email Notifications P1
Telegram notifications P1
Webhook notifications P0
In-app notifications P0
Manual backup P0
Scheduled backup P1
Restore from backup P0
Export/import full configuration P1
Audit log P1
Run on script-complete event P1
API trigger with auth P0

Exit criteria

Secrets are not visible in the code; backup restores scripts + database on a clean installation.


Production-2 - Scale, OTA and advanced runtime (weeks 15–18)

Goals

  • Horizontal scaling runtime
  • OTA update framework
  • Detailed metrics on run

Features

Function Priority
Multiple runtime replicas (Redis queue) P0
Interface UpdateProvider P0
Plug GitHubUpdateProvider P0
OTA UI: check, apply, rollback P0
Auto backup before update P0
Sampling CPU/memory/threads on run P0
cgroup v2 limits (Linux) P1
Storage quotas per script P1
API temp vs persistent storage P1
MQTT client in SDK P2
UI dependency tree P2

Exit criteria

2 runtime containers process a common queue; OTA apply + rollback checked for staging.


Production-3 - Enterprise and HA (ongoing)

Backlog

  • Postgres / managed DB replication
  • Network namespace isolation on sandbox
  • SSO (OIDC/SAML)
  • Multi-tenancy
  • Custom Grafana dashboard per group
  • Marketplace scripts/general templates
  • Git sync script sources
  • Canary runs / dry-run mode
  • SLA alerting

Risk register

Risk Mitigation
Slow venv build for many scripts Lazy build, venv cache, common core packages
Memory leak in user script Subprocess on run + hard memory cap + kill
Drift scheduler Redis distributed lock; one leader scheduler in MVP
Log volume Retention Loki; paginated API; optional S3 cold storage
Leaked secrets Do not return decrypted secrets via the API; access audit

Matrix MVP vs Production

Opportunity MVP Production
Script CRUD
Multi-file projects ✅ (MVP-3)
Sandbox insulation Basic rlimits + cgroups, optional netns
Cron / interval
Event / chain triggers
Webhook trigger Basic ✅ + rate limits
RBAC ✅ (MVP-3) ✅ + audit
Vault of secrets
Notifications
Backups
OTA updates
Multi-runtime
Prometheus/Grafana Basic Complete Dashboards
MQTT

Sprint 1: Compose, database migrations, health, auth foundation
Sprint 2: Script CRUD API + MinIO file storage
Sprint 3: Runtime sandbox v1 + manual run + WebSocket logs
Sprint 4: Frontend script list + run panel
Sprint 5: Scheduler cron + interval
Sprint 6: Dashboard KPIs + Grafana panels
Sprint 7: Monaco editor + file tree
Sprint 8: Groups + RBAC enforcement
Sprint 9: Import/export + templates
Sprint 10: Hardening, docs, MVP v0.1.0 release