- SyncSettingsRepository + DatasetPermissionRepository with RBAC - Script deploy/run/undeploy API with import sandboxing - User sync settings API with permission checks - 4 CLI skills (connectors, security, notifications, corporate-memory) - Kamal production + staging configs - GitHub Actions CI + deploy workflows - 91 total tests passing
1 KiB
1 KiB
Connectors — How to add a new data source
Existing Connectors
- Keboola (
connectors/keboola/) — Keboola Storage API - BigQuery (
connectors/bigquery/) — Google BigQuery - Jira (
connectors/jira/) — Jira webhook + API
Adding a New Connector
-
Create
connectors/<name>/adapter.pyimplementing theDataSourceABC:from src.data_sync import DataSource class MyDataSource(DataSource): def sync_table(self, table_config, sync_state): ... def discover_tables(self): ... def get_column_metadata(self, table_id): ... def get_source_name(self): ... -
The factory in
src/data_sync.py:create_data_source()auto-discovers connectors. SetDATA_SOURCE=<name>in instance.yaml or .env. -
Add required env vars to
.envandconfig/.env.template. -
Add tests to
tests/test_<name>_adapter.py.
Configuration
Each connector reads credentials from environment variables.
Table definitions are in docs/data_description.md (YAML blocks).