Skip to content

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 โ€” home dashboard

  • leoflow lite provision โ€” check + provision host deps (Docker/k3d/kubectl/python3), the base image, and the leoflow_dev database.
  • 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).