Stateless Python ETL tool for streaming FHIR Bulk Data Export ($export) payloads into BigQuery.
Implementation details live in DESIGN.md. Current repo stage: CI and packaging scaffold only.
Requires Python from .python-version and uv.
uv sync --all-groups
uv run ruff format .
uv run ruff check .
uv run ty check .
uv run pytestThe image uses a multi-stage build. uv and build tooling stay in the builder stage;
the runtime image contains the virtual environment and runs the installed console script
from /app/.venv/bin.
Build locally:
docker build -t fhir-to-bigquery .
docker run --rm fhir-to-bigqueryGitHub Actions workflows live in .github/workflows.
Workflows:
Checks: installs deps withuv, checks formatting withruff, lints withruff, type-checks withty, runs unit tests withpytest.Docker: on pushes andv*tags, builds image and publishes to GitHub Container Registry (ghcr.io/<owner>/<repo>).
Workflow actions use the latest tagged versions and are pinned to full commit hashes with source tag comments.
Image tags:
- Branch/commit pushes: long commit SHA tag.
- Git tag pushes matching
v*: Git tag name.
Image labels include:
org.opencontainers.image.revision: commit SHA.org.opencontainers.image.version: Git tag when present, else commit SHA.