agnes-the-ai-analyst/cli/skills/connectors.md
ZdenekSrotyr e0ce91ddb9 feat: add dataset permissions, script execution, Kamal config, CI/CD
- 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
2026-03-27 15:40:11 +01:00

30 lines
1 KiB
Markdown

# 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
1. Create `connectors/<name>/adapter.py` implementing the `DataSource` ABC:
```python
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): ...
```
2. The factory in `src/data_sync.py:create_data_source()` auto-discovers connectors.
Set `DATA_SOURCE=<name>` in instance.yaml or .env.
3. Add required env vars to `.env` and `config/.env.template`.
4. 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).