agnes-the-ai-analyst/src/repositories
ZdenekSrotyr 126d151413 fix: address code review — path injection, multi-table search, metrics import API, error handling
- Validate view names with _SAFE_IDENTIFIER regex and check path traversal in _initialize_duckdb()
- find_by_table() and get_table_map() now also search the tables[] array field
- Add POST /api/admin/metrics/import endpoint for YAML file upload
- Replace generic except in _connect_to_instance() with specific HTTPStatusError/TimeoutException handlers
- Generate .claude/settings.json in _generate_claude_md() bootstrap
- Update test_find_by_table and test_get_table_map to cover tables[] array lookups
- Add test_import_metrics_yaml in TestMetricsAPI
2026-04-10 19:56:00 +02:00
..
__init__.py feat: add DuckDB state layer with all repository classes 2026-03-27 15:06:55 +01:00
access_requests.py feat: access request UI — catalog badges, request modal, admin approval page 2026-03-31 12:45:29 +02:00
audit.py feat: add DuckDB state layer with all repository classes 2026-03-27 15:06:55 +01:00
column_metadata.py feat: add ColumnMetadataRepository with CRUD and proposal import 2026-04-10 19:41:53 +02:00
knowledge.py fix: route admin_edit through KnowledgeRepository.update instead of raw SQL 2026-04-09 18:42:52 +02:00
metrics.py fix: address code review — path injection, multi-table search, metrics import API, error handling 2026-04-10 19:56:00 +02:00
notifications.py feat: add DuckDB state layer with all repository classes 2026-03-27 15:06:55 +01:00
profiles.py feat: add DuckDB state layer with all repository classes 2026-03-27 15:06:55 +01:00
sync_settings.py feat: add dataset permissions, script execution, Kamal config, CI/CD 2026-03-27 15:40:11 +01:00
sync_state.py feat: add DuckDB state layer with all repository classes 2026-03-27 15:06:55 +01:00
table_registry.py feat: implement data access control — table-level permissions 2026-03-31 12:33:31 +02:00
users.py feat: add DuckDB state layer with all repository classes 2026-03-27 15:06:55 +01:00