Version v0.5.4 of the documentation is no longer actively maintained. The site that you are currently viewing is an archived snapshot. For up-to-date documentation, see the latest version.
Add a connector
The connector catalog (internal/connectors/catalog.json) is generated from a
real Apache Airflow install, never written by hand
(ADR 0039). It feeds the
connection form in the UI, the connectors: shorthand in dexaflow.yaml, and
the dependency check at compile.
Add the provider to
scripts/connectors-providers.txt, in the section it belongs to. The file pins the Airflow line the catalog is generated from.Refresh the lock.
scripts/connectors-providers.lock.txtholds the exact versions the committed catalog came from. Install the providers list into a fresh virtual environment and replace the lock’s package lines with itspip freeze | grep '^apache-airflow'output, keeping the header, as the header says.Regenerate and check for drift:
make gen-connectors # rewrites internal/connectors/catalog.json make gen-connectors-check # regenerates to a temp file and diffsCI does not run the drift check, so run it before you push.
Add only what Airflow does not emit to
internal/connectors/catalog.overlay.json, the hand-curated overlay merged over the generated catalog (dbt authentication fields today). Its field names followruntime/python/leoflow_runtime/dbt.py.Test it:
go test ./internal/connectors/checks the catalog’s shape, package names, aliases and overlay targets; add the new type where a test pins a list.- When the type needs its own connection URI shape, add a case to the
delivery tests in
internal/storage/connection_*_e2e_test.go(//go:build integration, run bymake test-integration), which follow a connection from the API to the environment the task sees. test/e2e/ui-smoke.jsdrives the connection form in a browser; the catalog has broken that page before.
Document it on Variables and connections when authors need to know about the type, and record a changelog fragment of kind
Added(record a change).