Sign inSign up

jumpasaservice/tabularia-gateway

By jumpasaservice

•Updated 3 days ago

Gateway of Tabularia (self hosted data preparation/data analysis tool) in Python FastAPI

Image
Security
Integration & delivery
API management
1

2.0K

jumpasaservice/tabularia-gateway repository overview

Tabularia — Messy in. Trusted out.

⁠Tabularia gateway

Tabularia is an open-source, self-hosted data preparation platform: people build data flows visually — joins, filters, pivots, SQL, Python and R — on data from databases, files, SFTP, S3, APIs and SharePoint, run them on the engine that fits (Polars, DuckDB, chDB, an external ClickHouse, BigQuery), and publish trusted datasets, pixel-perfect reports and live dashboards. Permissions, data contracts, lineage and an audit trail come with it from the first day.

This image is the gateway, Tabularia's control plane: the API every client talks to.

  • Sign-in and access: passwords, single sign-on over OpenID Connect, API tokens and service accounts; folders with view, run, edit and manage rights; an audit log that can be sent to a SIEM.
  • What people build: flows and their versions, datasources, saved views, SQL scripts, reports, dashboards, notebooks — and the checks of who may read what.
  • Orchestration: schedules, flow groups, Pushmail, webhooks and the runs' history (APP__ROLE=orchestrator runs only this background work, api only the requests, all both).
  • The AI assistant and the MCP server, with spending caps and a metadata-only mode.
  • Administration: settings changed live from the panel, database backups, and on Kubernetes the worker autoscaling, Python and R environments, container registries.

The gateway processes no data itself: the engine does, and the browser app is the frontend. A working installation runs the three images together, with PostgreSQL, Valkey (or Redis) and an S3-compatible object storage.

ImageWhat it is
jumpasaservice/tabularia-gateway⁠the control plane: API, sign-in, permissions, orchestration (this image)
jumpasaservice/tabularia-backend⁠the engine API and its workers: where the data is read, transformed and written
jumpasaservice/tabularia-frontend⁠the web app

⁠Tags

TagMeaning
1.3.0one release, for linux/amd64 and linux/arm64
1.3the latest 1.3.x
latestthe latest stable release
1.3.0-amd64, 1.3.0-arm64one architecture only

Pin an exact version in production and upgrade the three images together, following the upgrade guide⁠. Every release is described in the changelog⁠.

⁠Getting started

  • Production on Kubernetes: the Helm chart in the repository installs the three images, with the gateway and the orchestrator as separate workloads, network policies and a read-only root filesystem — Kubernetes and Helm⁠.
  • Try it on your computer: three commands with Docker Compose — getting started⁠ — or a local Kubernetes with minikube⁠.

⁠Configuration

Settings are environment variables; the ones the gateway needs first:

VariableWhat it is
APP__ENV_NAME=productionturns on the production guard: the gateway refuses to start with development secrets
APP__ROLEapi, orchestrator or all (the default)
DB__HOST, DB__PORT, DB__USER, DB__PASSWORD, DB__NAME (or DB__URL)the PostgreSQL metadata database
JWT__SECRETsigns the sessions: at least 32 characters
SECURITY__FERNET_KEYencrypts the saved credentials; the same key in the gateway and the engine, kept with the backups
ENGINE__BASE_URLthe engine API's internal address, for example http://backend:8000
AUTH__ADMIN_EMAIL, AUTH__ADMIN_PASSWORDthe administrator created at the first start
DB__AUTO_MIGRATEtrue migrates the schema at start; otherwise run python -m app.db.migra first (the Helm chart does, in an init container)

All of them, with defaults and the Helm values that set them: configuration reference⁠. Many limits, waits and caps can also be changed while it runs, from Administration → Settings.

⁠The container

  • Listens on port 8000; GET /health answers while the app is serving (a liveness check).
  • Runs as an unprivileged user (uid 10001), writes only to /tmp, and works with a read-only root filesystem.
  • Holds pg_dump and pg_restore for PostgreSQL 14 to 18, for the database backups.
  • Python 3.12 on Debian bookworm slim.

Before a release is pushed, its images are built for both architectures, started for a smoke test, checked for the licences of the packages they hold, and scanned for secrets (the maintainers' fingerprints and TruffleHog's verified credentials). The process is described in the repository: release process⁠.

Tag summary

Content type

Image

Digest

sha256:00ae50137…

Size

101.4 MB

Last updated

3 days ago

docker pull jumpasaservice/tabularia-gateway