Backend of Tabularia (self hosted data preparation / data analysis tool) written in Python FastAPI
1.8K

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, 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 engine: where the data is read, transformed and written. One image, four roles, chosen by the command:
| Role | Command | Replicas |
|---|---|---|
| Engine API — previews, the viewer, imports, exports | image default (uvicorn on port 8000) | any |
| Run worker — flows, imports, exports, reports and dashboards rendered | celery -A app.tasks.celery_app worker -E -Q celery --loglevel=info | any |
| Preview worker — the editor's previews and the dashboards' tiles | celery -A app.tasks.celery_app worker -E -Q preview --loglevel=info | any |
| Scheduler of the upkeep (cache sweep, metrics) | celery -A app.tasks.celery_app beat --schedule /tmp/celerybeat-schedule --loglevel=info | exactly 1 |
The engine answers only the gateway: every request carries a token derived from the key the two share, and on Kubernetes a network policy closes it to everything else. A working installation runs the three images together, with PostgreSQL, Valkey (or Redis) and an S3-compatible object storage.
| Image | What it is |
|---|---|
jumpasaservice/tabularia-gateway | the control plane: API, sign-in, permissions, orchestration |
jumpasaservice/tabularia-backend | the engine API and its workers (this image) |
jumpasaservice/tabularia-frontend | the web app |
--build-arg WITH_CHDB=true.--build-arg WITH_MSSQL=true
(SQL Server).Python and R code in flows does not run here: it runs in images of its own, built by Tabularia on Kubernetes from the environments an administrator defines.
| Tag | Meaning |
|---|---|
1.3.0 | one release, for linux/amd64 and linux/arm64 |
1.3 | the latest 1.3.x |
latest | the latest stable release |
1.3.0-amd64, 1.3.0-arm64 | one 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.
Settings are environment variables; the ones the engine needs first:
| Variable | What it is |
|---|---|
SECURITY__FERNET_KEY | the same key as the gateway's: it decrypts the connections' credentials and signs the gateway's requests |
STORAGE__ENDPOINT, STORAGE__ACCESS_KEY, STORAGE__SECRET_KEY, STORAGE__BUCKET | the S3-compatible object storage, as the workers reach it |
REDIS__HOST (and REDIS__PASSWORD) | Valkey or Redis: the task queues and the cache index |
CELERY__TASK_TIME_LIMIT | the longest a task may run |
CLICKHOUSE_EXTERNAL__HOST and the rest | an external ClickHouse engine (also settable from Administration → Settings) |
BIGQUERY__PROJECT and its credentials | the BigQuery engine |
All of them, with defaults and the Helm values that set them: configuration reference. Many limits and caps can also be changed while it runs, from Administration → Settings.
GET /healthcheck/ answers while it is serving./tmp, and works with a
read-only root filesystem; size /tmp for the spills of the large joins and sorts.httpfs extension installed in the
image (nothing is downloaded at run time).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.
Content type
Image
Digest
sha256:ebd139259…
Size
298.3 MB
Last updated
about 14 hours ago
docker pull jumpasaservice/tabularia-backend