agnes-the-ai-analyst/src
Petr c5c24cb45b Implement OpenMetadata catalog integration (Phase 1)
Add OpenMetadata REST API connector and enricher to merge table/column metadata
from OpenMetadata catalog at sync and query time.

Changes:
- connectors/openmetadata/client.py: HTTP client for OM API
- connectors/openmetadata/enricher.py: Data enrichment with TTL cache
- tests/test_openmetadata_*: Unit tests for client and enricher
- src/config.py: Add catalog_fqn field to TableConfig
- src/data_sync.py: Use enricher in _generate_schema_yaml (catalog > BQ API > data_description.md)
- webapp/app.py: Initialize enricher, enrich catalog data with tags/tier/owners/url
- config/instance.yaml.example: Document openmetadata section

Features:
- FQN auto-derivation: bigquery.{table.id}
- TTL cache (default 1h) to avoid repeated API calls
- Graceful degradation: disabled if token missing, silent on HTTP errors
- Column description priority: catalog > BQ API > (none)
- Table description priority: catalog > data_description.md
2026-03-12 14:07:13 +01:00
..
__init__.py Extract Keboola into connectors/keboola module 2026-03-09 12:22:16 +01:00
config.py Implement OpenMetadata catalog integration (Phase 1) 2026-03-12 14:07:13 +01:00
data_sync.py Implement OpenMetadata catalog integration (Phase 1) 2026-03-12 14:07:13 +01:00
parquet_manager.py Initial commit: OSS data distribution platform 2026-03-08 23:31:28 +01:00
profiler.py Set DuckDB memory_limit=4GB in profiler to prevent OOM 2026-03-12 11:06:49 +01:00
table_registry.py Add self-service data onboarding system 2026-03-09 14:25:37 +01:00