TabulariaDocs

DocumentationIntegrations

Integrations

Tabularia fits into the rest of a data stack in two directions: other systems drive it and read from it (the API, tokens and webhooks, single sign-on, metrics), and it reports to them (lineage events, the audit log, a dbt project, the data itself in your object storage and databases). This page is the map: one line per integration, and the page that explains it.

Administration, Service accounts: the account Airflow production with one read-and-write token, nightly runs, expiring in 90 days

A service account for an external scheduler and its token, as in the example below.

The map

IntegrationWhat it doesSet up inPage
AI modelsThe chat over the catalog, the assistants of the flow and script editors, the descriptions and SQL translations of the dbt export. Anthropic, and any OpenAI-compatible endpoint.Providers and models in Administration → AI models; also AI__BASE_URL, AI__SECRET_KEYAI
API, tokens and webhooksRun flows, refresh datasources, read runs and lineage, download data from scripts and schedulers; be called when a run ends, with an HMAC signature.Settings → API tokens, Administration → Service accounts, Administration → WebhooksAPI, tokens and webhooks
dbtExport a flow as a dbt project: one model per output, sources.yml, schema.yml, the data contract as tests.The Flows page, «Export flow» (administrators)Export to dbt
OpenLineageTell an external catalog (Marquez, DataHub, OpenMetadata…) what every run read and wrote: flows, refreshes, SQL and saved scripts, flow groups and their cells, containers, notebook sessions.OPENLINEAGE__URL or OPENLINEAGE__FILEOpenLineage
Single sign-onSign in through an OIDC provider (Keycloak, Microsoft Entra ID…), with its groups or roles mapped onto Tabularia's groups.OIDC__* variables, oidc.* in the Helm chartSingle sign-on with Keycloak, SSO and group mapping
SIEMForward every audit log entry to Splunk through the HTTP Event Collector, within seconds.Administration → SIEMAudit log to Splunk
MonitoringPrometheus metrics, health checks, a Grafana dashboard, the Performance, Queue and Cluster pages.Included in Docker Compose; your own stack on KubernetesMonitoring
Data connectionsRead from and write to databases, SFTP servers, S3 buckets, HTTP APIs, SharePoint and SMTP servers.Connections, in a folderConnections
Container registriesRun images from Harbor, GitHub, GitLab, Docker Hub or a cloud registry as steps of a flow (Kubernetes).Administration → Container registriesContainer registries

External orchestrators such as Airflow drive Tabularia through the API: a service account token starts a flow (POST /flows/{id}/run-now) and a webhook, or polling GET /runs/{id}, tells them when it ended. There is no plugin to install.

How integrations reach Tabularia

  • Inbound calls authenticate with an API token in the Authorization header. A personal token acts with its owner's permissions; a service account is an integration rather than a person, with its own permissions on folders, and is the right choice for a scheduler or a CI job. Tokens are read-only or read-write, always expire, and every action they take is in the audit log under the token's name.
  • Outbound calls (webhooks, the SIEM, OpenLineage, the AI endpoint) are configured by an administrator or by the environment, never by a flow. Webhooks are signed, and retried when the receiver fails.
  • What leaves the installation is decided per integration: OpenLineage sends only metadata (names, schemas, query texts, counts and times, never rows); the SIEM sends audit entries; webhooks send the run's outcome. What the assistants send to the model is described in AI.

Example: an external scheduler runs a flow

An administrator creates a service account airflow in Administration → Service accounts, grants it RUN on the folder Sample / Flows and EDIT on Sample / Private tables, where the flow publishes its datasource, and creates a read-write token for it. The scheduler then starts the flow «Top 20 Products by Revenue» (id 42 here) and waits for it:

curl -X POST -H "Authorization: Bearer tab_…" \
  "https://tabularia.example.com/api/flows/42/run-now?mode=production"
# 202 {"run_id": 2212, …}

curl -H "Authorization: Bearer tab_…" https://tabularia.example.com/api/runs/2212
# {"id": 2212, "status": "SUCCESS", …}

Instead of polling, a webhook on flow.run.succeeded and flow.run.failed, limited to the same folder, calls the scheduler's endpoint when the run ends. The details, the stable endpoints and the signature check are in the API guide.

No lock-in

These facts keep your work yours:

  • Open source and self-hosted. Tabularia is licensed under the AGPL-3.0 and runs on your infrastructure, with Docker Compose or the Helm chart.
  • Your data stays in an open format on your storage. Every datasource and run result is a parquet file in your S3-compatible bucket or Google Cloud Storage, and Output nodes write to your own databases.
  • Open interfaces. Everything the interface does goes through the same REST API, described by the OpenAPI page the gateway serves at /docs.
  • Open lineage. Runs are reported in the OpenLineage standard to the catalog you choose.
  • Portable flows. A flow exports as a dbt project you can run without Tabularia.

Edit this page on GitHub