Operating modes: Lite ยท Pro ยท Demo¶
Leoflow has three runtime modes. The two user-facing ones are Lite (your local dev loop) and Pro (Helm-installed Kubernetes); Demo is a contributor-facing reference environment used to validate UI compatibility against the production-shaped control plane. Lite ships today (pre-alpha, trusted networks only); Pro is in active validation โ the Helm chart is installable + chart-test gated and is being tested against GKE today, but not blessed for official use until the v0.1.0-alpha cut.
See also Editions for the Lite/Pro distribution split. This page is the runtime details view โ exact ports, database names, cluster names, and CLI surface per mode. Editions is the packaging + posture view.
๐ฅ Lite (leoflow lite) |
๐ฅ Pro (in validation) | Demo (contributor) | |
|---|---|---|---|
| Purpose | Author + iterate on DAGs locally | Real workloads at scale | production-shaped reference for UI-compatibility work |
| Auth | Real admin login (single admin generated by leoflow setup; password recoverable via leoflow lite reset-password) |
JWT + RBAC, TLS (#58), workload identity (#56) | JWT login (real) |
| UI marker | Leoflow Lite navbar (silver edition badge) |
Leoflow navbar (gold edition badge) |
none (instance_name: Leoflow) |
| HTTP / gRPC / metrics | 8088 / 9099 / 9098 (distinct, coexists with Demo) | 8080 / 9091 / 9090 (per helm/leoflow/values.yaml; shares Demo's ports โ not co-located on the same host) |
8080 / 9091 / 9090 |
| Database | leoflow_dev (isolated; legacy schema name preserved for upgrade-in-place safety after the Dev โ Lite rename) |
external Postgres | leoflow |
| Cluster | k3d leoflow-dev (isolated; legacy cluster name preserved) |
real K8s (GKE/EKS) | k3d leoflow-demo |
| DAG source | live files, hot-reload | immutable artifact via CI | frozen artifact (compile + push) |
| Executor | k3d pods (default) or subprocess (--executor) |
KubernetesExecutor | KubernetesExecutor |
๐ฅ Lite โ leoflow lite¶
The authoring loop, fully isolated from Demo (own DB, own cluster, own
ports) so there is no split brain. Edit dags/<project>/dag.py or
leoflow.yaml, save, and it hot-reloads at http://localhost:8088 (marked
Leoflow Lite in the navbar, login enabled).

leoflow lite provisionโ check + provision host deps (Docker/k3d/kubectl/python3), the base image, and theleoflow_devdatabase.leoflow lite dags/helloโ run a project (cluster-mode: real pods).leoflow lite --executor=subprocess dags/helloโ fast host loop (no image build).leoflow db migrate|resetโ manage the Lite database (Airflow-style).
Lite runs user code unsandboxed (subprocess) or in throwaway pods (k3d); it is for local development only.
The Dev โ Lite rename is a product/branding change โ the internal storage
names (leoflow_dev database, leoflow-dev k3d cluster) are preserved so
existing installs upgrade in place. New documentation uses "Lite" everywhere;
old leoflow_dev references in the database name itself are deliberately
left alone.
๐ฅ Pro (in validation)¶
Real cluster install via the Helm chart (chart-test gated, multi-arch images published per release, signed with cosign). Hardening templates ship as opt-in toggles: HPA + PDB + NetworkPolicy + ServiceMonitor. Still in validation before the v0.1.0-alpha cut clears it for official use โ but the chart is installable and tested against GKE today, and runs on any K8s cluster with external Postgres + Redis.
Pending Pro work (tracked separately): TLS on the agent channel (#58), keyless cloud auth via workload identity (#56), least-privilege secret scoping (#59).
Demo (contributor reference)¶
The familiar, production-like environment for contributors to validate
the Airflow-UI compatibility and showcase the product. It serves frozen
artifacts โ to change a DAG you leoflow compile + leoflow push. Auth is
on; log in normally. Demo is not part of the end-user surface; it is the
target for UI compatibility work and is referenced
from the contributing guide.
See Editions for the Lite/Pro split (same engine, different distribution + posture).