Documentation
¶
Overview ¶
Package dexaflow embeds the Python parser and runtime package sources so a binary-only install (no source checkout) can provision them. The dev source trees under parser/ and runtime/python/ remain the canonical copies; this embed reads them directly at build time, so there is no duplicated source.
The all: prefix is required on the package directories: Python packages contain __init__.py, and go:embed's default rules drop names beginning with "_" or ".". The patterns are scoped to the package dir plus pyproject.toml / README.md (what pip needs) so the dev-only test fixtures and dot-caches (.pytest_cache, .ruff_cache, .coverage) are not embedded. Build from a clean tree (no __pycache__) so stale bytecode is not embedded.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DevCompose ¶
func DevCompose() []byte
DevCompose returns the embedded docker-compose for Dexaflow Lite's local Postgres + Redis, so a binary-only install (no source checkout) can bring the datastores up with `dexaflow lite` alone — it is materialized under ~/.dexaflow on first run.
func ExampleDAGs ¶
ExampleDAGs returns the embedded DAG examples (one subdirectory per DAG, each with dag.py + dexaflow.yaml). The Lite IDE's "Download examples" button materializes them into the user's workspace under examples/, so a fresh install can try every operator without a separate git checkout. Root is "examples/" — the same layout as the source tree.
func PythonSources ¶
PythonSources returns the embedded parser and runtime package sources, rooted so that "parser/..." and "runtime/python/..." resolve.
Types ¶
This section is empty.
Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
dexaflow
command
Command leoflow is the developer CLI for authoring and compiling DAGs.
|
Command leoflow is the developer CLI for authoring and compiling DAGs. |
|
dexaflow-agent
command
Command leoflow-agent runs as PID 1 inside every task pod.
|
Command leoflow-agent runs as PID 1 inside every task pod. |
|
dexaflow-mcp
command
Command leoflow-mcp runs the Dexaflow Model Context Protocol server (ADR 0050).
|
Command leoflow-mcp runs the Dexaflow Model Context Protocol server (ADR 0050). |
|
dexaflow-server
command
Command leoflow-server runs the Dexaflow control plane: the HTTP API, auth, metrics, and (when enabled) the scheduler.
|
Command leoflow-server runs the Dexaflow control plane: the HTTP API, auth, metrics, and (when enabled) the scheduler. |
|
internal
|
|
|
agent
Package agent contains the worker-side logic that runs inside the task container: building the user process command, injecting XCom inputs, reading the return value, and retry backoff.
|
Package agent contains the worker-side logic that runs inside the task container: building the user process command, injecting XCom inputs, reading the return value, and retry backoff. |
|
agent/secretsource
Package secretsource resolves a leoflow-declared Connection/Variable name from an external secret store (e.g.
|
Package secretsource resolves a leoflow-declared Connection/Variable name from an external secret store (e.g. |
|
agentrpc
Package agentrpc implements the control-plane side of the agent gRPC protocol: it authenticates each in-pod agent by its per-task-instance token, serves the task specification, and records the state transitions the agent reports.
|
Package agentrpc implements the control-plane side of the agent gRPC protocol: it authenticates each in-pod agent by its per-task-instance token, serves the task specification, and records the state transitions the agent reports. |
|
alerts
Package alerts sends native on-failure notifications (#424).
|
Package alerts sends native on-failure notifications (#424). |
|
api
Package api implements the Airflow-compatible HTTP control plane (ADR 0007).
|
Package api implements the Airflow-compatible HTTP control plane (ADR 0007). |
|
auth
Package auth provides JWT authentication, password hashing, the RBAC permission model, and login rate limiting for the control plane (ADR 0008).
|
Package auth provides JWT authentication, password hashing, the RBAC permission model, and login rate limiting for the control plane (ADR 0008). |
|
build
Package build produces the container image of a DAG project and reports what it pushed.
|
Package build produces the container image of a DAG project and reports what it pushed. |
|
cli
Package cli implements the dexaflow command-line interface.
|
Package cli implements the dexaflow command-line interface. |
|
config
Package config loads Dexaflow configuration from defaults, an optional config file, and LEOFLOW_* environment variables, with flags taking precedence.
|
Package config loads Dexaflow configuration from defaults, an optional config file, and LEOFLOW_* environment variables, with flags taking precedence. |
|
connectors
Package connectors is the single source of truth for the Airflow connector types Dexaflow knows about.
|
Package connectors is the single source of truth for the Airflow connector types Dexaflow knows about. |
|
dbt
Package dbt renders a dbt project's manifest.json into Dexaflow tasks (ADR 0042).
|
Package dbt renders a dbt project's manifest.json into Dexaflow tasks (ADR 0042). |
|
dispatch
Package dispatch launches pod-path task instances: it resolves a task's execution context, mints the agent's identity token, and routes the request to the executor.
|
Package dispatch launches pod-path task instances: it resolves a task's execution context, mints the agent's identity token, and routes the request to the executor. |
|
domain
Package domain defines the core Dexaflow types (DAG, Task, project config) and validates them against the canonical JSON Schemas in docs/api.
|
Package domain defines the core Dexaflow types (DAG, Task, project config) and validates them against the canonical JSON Schemas in docs/api. |
|
egress
Package egress guards outbound HTTP requests whose destination comes from tenant-controlled data, such as an alert connection's webhook URL.
|
Package egress guards outbound HTTP requests whose destination comes from tenant-controlled data, such as an alert connection's webhook URL. |
|
envcompat
Package envcompat keeps the pre-rename LEOFLOW_* environment variables and their DEXAFLOW_* names interchangeable.
|
Package envcompat keeps the pre-rename LEOFLOW_* environment variables and their DEXAFLOW_* names interchangeable. |
|
executor
Package executor runs task instances via Kubernetes, Docker, or a subprocess.
|
Package executor runs task instances via Kubernetes, Docker, or a subprocess. |
|
failurealert
Package failurealert adapts a DAG's on-failure alert rules (#424) to the scheduler's Alerter seam: it resolves each rule's managed connection to an endpoint URL, renders the message, and sends it via the alerts notifier — best-effort, so a delivery failure is logged and never fails the run.
|
Package failurealert adapts a DAG's on-failure alert rules (#424) to the scheduler's Alerter seam: it resolves each rule's managed connection to an endpoint URL, renders the message, and sends it via the alerts notifier — best-effort, so a delivery failure is logged and never fails the run. |
|
issuer
Package issuer verifies tokens from a trusted external issuer, so a platform that already authenticates its users can open a Dexaflow UI session for them without holding Dexaflow's own signing secret (#1284).
|
Package issuer verifies tokens from a trusted external issuer, so a platform that already authenticates its users can open a Dexaflow UI session for them without holding Dexaflow's own signing secret (#1284). |
|
kubeexchange
Package kubeexchange implements the Kubernetes-backed half of the agent token-exchange transport (ADR 0055 Fix #3): validating a pod's projected ServiceAccount token via the apiserver TokenReview API, and resolving the reviewed pod to the task-instance identity the control plane stamped on it.
|
Package kubeexchange implements the Kubernetes-backed half of the agent token-exchange transport (ADR 0055 Fix #3): validating a pod's projected ServiceAccount token via the apiserver TokenReview API, and resolving the reviewed pod to the task-instance identity the control plane stamped on it. |
|
logs
Package logs ships task logs from the agent to durable storage and serves them back via the API, so logs remain available after the task pod is gone.
|
Package logs ships task logs from the agent to durable storage and serves them back via the API, so logs remain available after the task pod is gone. |
|
mcp
Package mcp is the Dexaflow Model Context Protocol server (ADR 0050).
|
Package mcp is the Dexaflow Model Context Protocol server (ADR 0050). |
|
observability
Package observability wires structured logging, Prometheus metrics, and OpenTelemetry tracing for the Dexaflow control plane (ADR 0010).
|
Package observability wires structured logging, Prometheus metrics, and OpenTelemetry tracing for the Dexaflow control plane (ADR 0010). |
|
oidc
Package oidc implements the OIDC/SSO login flow: the Authorization Code + PKCE redirect, keyless ID-token verification against the issuer's public JWKS, fail-closed tenant pinning, and group→role mapping.
|
Package oidc implements the OIDC/SSO login flow: the Authorization Code + PKCE redirect, keyless ID-token verification against the issuer's public JWKS, fail-closed tenant pinning, and group→role mapping. |
|
procgroup
Package procgroup records and probes the process group a Lite agent runs its user task in.
|
Package procgroup records and probes the process group a Lite agent runs its user task in. |
|
retention
Package retention deletes metadata rows past an operator-configured age.
|
Package retention deletes metadata rows past an operator-configured age. |
|
scheduler
Package scheduler implements the Dexaflow scheduling state machine and loop.
|
Package scheduler implements the Dexaflow scheduling state machine and loop. |
|
secrets
Package secrets encrypts sensitive values (e.g.
|
Package secrets encrypts sensitive values (e.g. |
|
setup
Package setup implements host detection and bootstrap for `dexaflow setup` and `dexaflow doctor`: it determines the platform, which dependencies are present, and which operating tier is achievable, preferring relocatable downloads into ~/.dexaflow over system package managers.
|
Package setup implements host detection and bootstrap for `dexaflow setup` and `dexaflow doctor`: it determines the platform, which dependencies are present, and which operating tier is achievable, preferring relocatable downloads into ~/.dexaflow over system package managers. |
|
storage
Package storage wraps the Postgres and Redis connections used by the control plane, exposing the sqlc-generated query set and health checks.
|
Package storage wraps the Postgres and Redis connections used by the control plane, exposing the sqlc-generated query set and health checks. |
|
storeerr
Package storeerr classifies the errors the control plane's stores (Postgres and Redis) return, so a caller can tell an outage that a retry outlasts from a failure that repeats on every attempt.
|
Package storeerr classifies the errors the control plane's stores (Postgres and Redis) return, so a caller can tell an outage that a retry outlasts from a failure that repeats on every attempt. |
|
taskoutcome
Package taskoutcome defines the durable task-outcome record the agent writes to its container termination message before delivering the report, and the reconciler reads back as the source of truth over pod phase (ADR 0052).
|
Package taskoutcome defines the durable task-outcome record the agent writes to its container termination message before delivering the report, and the reconciler reads back as the source of truth over pod phase (ADR 0052). |
|
ui
Package ui embeds and serves the pinned Apache Airflow React SPA bundle (AIRFLOW_UI_VERSION in the Makefile, recorded in assets/VERSION).
|
Package ui embeds and serves the pinned Apache Airflow React SPA bundle (AIRFLOW_UI_VERSION in the Makefile, recorded in assets/VERSION). |
|
version
Package version exposes build metadata embedded into the binary at link time.
|
Package version exposes build metadata embedded into the binary at link time. |
|
workspace
Package workspace provides a filesystem confined to a single root directory.
|
Package workspace provides a filesystem confined to a single root directory. |
|
xcom
Package xcom implements the Dexaflow XCom subsystem: small typed payloads passed between tasks, stored in Redis with a hard size limit and a TTL, with metadata indexed in Postgres for retrieval (ADR 0006).
|
Package xcom implements the Dexaflow XCom subsystem: small typed payloads passed between tasks, stored in Redis with a hard size limit and a TTL, with metadata indexed in Postgres for retrieval (ADR 0006). |
|
Package migrations embeds the SQL migration files so the control plane can apply them without the source tree present — a step toward a binaries-only `dexaflow lite` (no checked-out repo required).
|
Package migrations embeds the SQL migration files so the control plane can apply them without the source tree present — a step toward a binaries-only `dexaflow lite` (no checked-out repo required). |
|
pkg
|
|
|
client
Package client provides primitives to interact with the openapi HTTP API.
|
Package client provides primitives to interact with the openapi HTTP API. |
|
proto
|
|
|
test
|
|
|
load/query_plans
command
Command query_plans is Load Experiment 6: query plans at scale.
|
Command query_plans is Load Experiment 6: query plans at scale. |
|
load/scheduler_ceiling
command
Command scheduler_ceiling is Load Experiment 1: the scheduler ceiling.
|
Command scheduler_ceiling is Load Experiment 1: the scheduler ceiling. |
|
soak/fixture
command
Command fixture is the soak battery's local HTTP endpoint.
|
Command fixture is the soak battery's local HTTP endpoint. |
|
soak/monitor
command
Command monitor is the soak battery's continuous invariant checker.
|
Command monitor is the soak battery's continuous invariant checker. |