Skip to main content

databaas-utils

Lakekeeper/Iceberg lakehouse access for Databaas: catalog, remote-signed object storage, an Airflow integration, and user access from notebooks — in JupyterHub or on a laptop.

Notebooks

from databaas_utils.user import get_catalog, get_store, get_zarr_group

catalog = get_catalog()
catalog.load_table("open_meteo.daily_summary").scan(limit=10).to_arrow()

group = get_zarr_group("harmonie_zarr", namespace="knmi", read_only=True)

databaas_utils.user authenticates as the person running the code and picks how by itself (databaas_utils.notebook, its former name, still works):

  • In a Databaas JupyterHub pod it asks the hub for the logged-in user's access token (GET /hub/api/oauth-token, using the JUPYTERHUB_API_URL/JUPYTERHUB_API_TOKEN every singleuser pod has). The catalog is CATALOG_URI (default http://lakekeeper:8181) and the warehouse LAKEKEEPER_WAREHOUSE (default databaas-lakehouse).
  • Anywhere else it uses the session saved by databaas login (below).

So the same notebook runs on the platform and on a laptop. Pass profile= to force a databaas login profile, or warehouse= to override the warehouse. DAGs must not use this module — a task authenticates through its Airflow connection (databaas_utils.airflow).

Local (analyst) quickstart

pip install "databaas-utils[local]"
databaas login https://<your-databaas-domain> --profile <name>

The URL is the portal's address; the Zitadel (auth.) and catalog (catalog.) addresses are derived from it, and the portal serves the client id. databaas login opens a browser to sign in with your own identity and saves the profile, with the session in your OS keychain. Laptop login explains every flag.

from databaas_utils import LakehouseSettings, rest_catalog

settings = LakehouseSettings.from_profile()  # picks up the login from `databaas login`
catalog = rest_catalog(settings)
catalog.list_namespaces()

resolve()/GenericTableStore/open_zarr_group() work the same way once you have settings — see their docstrings. An admin still has to grant your Lakekeeper user (databaas whoami shows its id, oidc~<sub>) access to a warehouse before any of this returns data.

Useful commands:

Command What it does
databaas login URL Log in and save a profile
databaas whoami Show the signed-in email and Lakekeeper user id
databaas token Print a fresh access token (e.g. for curl, DuckDB)
databaas logout Revoke and forget the cached login
databaas profile list / databaas profile use NAME Manage saved profiles

Several environments can be configured at once as named profiles in ~/.config/databaas/config.toml; select one with --profile NAME or DATABAAS_PROFILE.

Documentation

Guides and the full API reference live in docs/. Setting up a pipeline's Airflow connection is covered in the Databaas documentation: Creating an Airflow service account. Preview the package docs with:

uv run --group docs --all-extras mkdocs serve

Every public function and class also carries a docstring with arguments, errors and an example, so your editor shows the same content on hover and help(...) works in a notebook.

Metadata

Release files for databaas-utils 0.5.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for databaas-utils 0.5.3
File Size Uploaded
databaas_utils-0.5.3.tar.gz 58.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for databaas-utils 0.5.3
File Interpreter ABI Platform
databaas_utils-0.5.3-py3-none-any.whl Python 3 none any Details

Total release size: 131.4 kB

Release files / databaas_utils-0.5.3.tar.gz

Download URL databaas_utils-0.5.3.tar.gz
Size 58.9 kB
Tags Source
SHA-256 checksum
How to use checksums
badd8e99bdb0190cb050285af2bd640e91ad3e0abc1aae36adf52800c5212c88
BLAKE2b-256 checksum
How to use checksums
94f78714c2964980e61a243222f7caaa0f21963a10456e4d3a4553fca9c0f5cf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release files / databaas_utils-0.5.3-py3-none-any.whl

Download URL databaas_utils-0.5.3-py3-none-any.whl
Size 72.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b2869187a8d8b2155336f7385f914946298e7a7e22169dc4a89f5be2900979db
BLAKE2b-256 checksum
How to use checksums
e4802fe95201783ad7d9646705e0e4bdc6f319f9bd620df1147f336e6bc499dd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release history Release notifications | RSS feed

0.6.0

2 release files

This release

0.5.3 This release

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page