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 theJUPYTERHUB_API_URL/JUPYTERHUB_API_TOKENevery singleuser pod has). The catalog isCATALOG_URI(defaulthttp://lakekeeper:8181) and the warehouseLAKEKEEPER_WAREHOUSE(defaultdatabaas-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.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| databaas_utils-0.5.2.tar.gz | 57.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| databaas_utils-0.5.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 128.1 kB
Release files / databaas_utils-0.5.2.tar.gz
| Download URL | databaas_utils-0.5.2.tar.gz |
|---|---|
| Size | 57.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a239aaeffe762337c1e2913472ded4be2a9991658cf783bd8396daf7ce99d661
|
|
BLAKE2b-256 checksum How to use checksums |
6bb82d22225844d6e1cb45debd47a2037e84281cc47d6c5b4e25433ae2b883ca
|
| 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 logRelease files / databaas_utils-0.5.2-py3-none-any.whl
| Download URL | databaas_utils-0.5.2-py3-none-any.whl |
|---|---|
| Size | 70.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
74adff30be54f7c1b90183b90534d15002740a6c12cc03bd9df7e5e11c146101
|
|
BLAKE2b-256 checksum How to use checksums |
811196dc216a26a452348a5a4800e7c649adf4124fe6b3345304b87449418fa2
|
| 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