Hackathon-Blueprint: Data Contracts & Data Products als Code für die Landeshauptstadt München (Data Mesh). Zeigt den kompletten Lebenszyklus eines Datenprodukts — von der Quelle über automatisch abgeleitete ODCS-v3-Contracts, Ingestion (dlt) + Transformation (dbt), Quality Gate und Freigabe bis CKAN-Katalog — portierbar auf GitLab + ServiceNow.
Status: lauffähig end-to-end. Profiler, Contract-Generierung, dlt→dbt-Pipeline, Quality-Gate, Validierung und CKAN-Publish laufen vollständig in GitHub Actions; Demo via
streamlit run demo/sn_mock.py.
- 📋 Hackathon-Plan — Scope, Architektur, Team-Aufteilung, Timeline
- 🔄 Intake-, Profiling- & Freigabe-Workflow — ServiceNow ↔ GitLab
- 🔐 Output Port & Zugriffskontrolle
- 🏛 Architektur · Governance · Contributing
- 🔑 CI-Berechtigungen — Auto-PR aus der Pipeline (PAT-Setup, GitHub-App-Zielbild)
- 🤝 Claude Code Working Agreement — Branches, Modellwahl, Stunde-0-Sync
domains/<referat>/data-products/<produkt>/ # Datendomänen = Referate
data-product.yaml # Quelle + Port-Topologie
contracts/input|output/*.odcs.yaml # ODCS-v3-Contracts pro Port
schemas/ odcs-v3.schema.json · intake.schema.json · lhm-rules.md
scripts/ profile_source · intake_to_odcs · validate_odcs · run_quality · ckan_publish · render_catalog · apply_access
pipeline/ ingest/ (dlt) · dbt/ (dbt-duckdb)
intake/ servicenow-catalog-item.md · intake.example.json
ckan/ docker-compose.yml (lokale CKAN)
data/ CSV-Sample (Demo-Quelle)
.github/ ISSUE_TEMPLATE/ · workflows/
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
# Schema aus den Daten ableiten (Workstream A)
python scripts/profile_source.py --source data/sample_radverkehr_tageswerte_2025_01.csv
# Contract gegen ODCS + LHM-Regeln validieren (Workstream B/C)
python scripts/validate_odcs.py "domains/**/contracts/**/*.odcs.yaml"
# Pipeline + Quality (Workstream C)
python pipeline/ingest/load_csv.py
cd pipeline/dbt && dbt build # dbt-duckdbMobilitätsreferat / radverkehr auf Basis der offenen Raddauerzählstellen München (Lizenz dl-by-de/2.0). Sample unter data/.
- A — Domänen, Contracts & Profiler · B — Intake, Freigabe, Validierung & Katalog · C — Data Pipeline & Quality + Output Port. Siehe Issues.