Source Systems API
Manage connections to external data platforms.
Endpoints Overview
| Method | Endpoint | Description |
|---|---|---|
| GET | /spaces/{slug}/source-systems | List source systems |
| POST | /spaces/{slug}/source-systems | Create source system |
| GET | /spaces/{slug}/source-systems/{id} | Get details |
| PATCH | /spaces/{slug}/source-systems/{id} | Update |
| DELETE | /spaces/{slug}/source-systems/{id} | Delete |
List Source Systems
GET /spaces/{slug}/source-systems
Response
{
"items": [
{
"id": "...",
"name": "Production Snowflake",
"platform": "snowflake",
"status": "connected",
"last_sync": "2026-01-15T06:00:00Z",
"products_count": 45,
"created_at": "2025-06-01T00:00:00Z"
}
]
}
Create Source System
POST /spaces/{slug}/source-systems
Request Body
{
"name": "Analytics Warehouse",
"platform": "snowflake",
"config": {
"account": "xy12345.us-east-1",
"warehouse": "COMPUTE_WH",
"database": "ANALYTICS",
"role": "QARION_ROLE"
}
}
Supported Platforms
| Platform | Config Fields |
|---|---|
snowflake | account, warehouse, database, role |
bigquery | project_id, dataset, location |
databricks | host, http_path, catalog |
postgresql | host, port, database |
dbt_cloud | account_id, project_id, environment |
Credentials
Credentials are managed separately for security.
Set Credentials
PUT /spaces/{slug}/source-systems/{id}/credentials
Snowflake (Username/Password)
{
"auth_type": "password",
"username": "qarion_service",
"password": "secure-password"
}
Snowflake (Key Pair)
{
"auth_type": "key_pair",
"username": "qarion_service",
"private_key": "-----BEGIN PRIVATE KEY-----\n..."
}
BigQuery (Service Account)
{
"auth_type": "service_account",
"service_account_json": "{...}"
}
dbt Cloud (API Token)
{
"auth_type": "api_token",
"token": "dbt_token_..."
}
Test Connection
POST /spaces/{slug}/source-systems/{id}/test
{
"success": true,
"message": "Connected successfully",
"latency_ms": 250
}
Metadata Sync
Trigger Sync
POST /spaces/{slug}/source-systems/{id}/sync
Sync Options
{
"schemas": ["analytics", "marts"],
"full_refresh": false
}
Sync Status
GET /spaces/{slug}/source-systems/{id}/sync-status
{
"status": "running",
"started_at": "2026-01-15T10:00:00Z",
"progress": {
"tables_discovered": 45,
"tables_synced": 30
}
}
Sync History
GET /spaces/{slug}/source-systems/{id}/sync-history
{
"items": [
{
"id": "...",
"status": "completed",
"started_at": "2026-01-15T06:00:00Z",
"completed_at": "2026-01-15T06:05:00Z",
"tables_synced": 45,
"errors": 0
}
]
}
Source System Roles
Manage access roles tied to source system permissions.
List Roles
GET /spaces/{slug}/source-systems/{id}/roles
Create Role
POST /spaces/{slug}/source-systems/{id}/roles
{
"name": "Analytics Reader",
"description": "Read access to analytics schemas",
"external_role": "ANALYTICS_READER",
"workflow_id": "workflow-uuid"
}
Get Role Details
GET /spaces/{slug}/source-systems/{id}/roles/{role_id}
Includes list of users with active access.
Product Mapping
Link Product to Source
PUT /catalog/spaces/{slug}/products/{id}/source
{
"source_system_id": "source-uuid",
"location": "database.schema.table"
}
Auto-Create Products
POST /spaces/{slug}/source-systems/{id}/auto-register
{
"schemas": ["analytics.marts"],
"create_products": true,
"tag_ids": ["tag-uuid"]
}
Creates data products for all discovered tables.