Skip to main content

Source Systems API

Manage connections to external data platforms.

Endpoints Overview

MethodEndpointDescription
GET/spaces/{slug}/source-systemsList source systems
POST/spaces/{slug}/source-systemsCreate 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

PlatformConfig Fields
snowflakeaccount, warehouse, database, role
bigqueryproject_id, dataset, location
databrickshost, http_path, catalog
postgresqlhost, port, database
dbt_cloudaccount_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

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.