Connectors and ingestion¶
Rig's ingestion service loads data from SaaS tools, databases and files into a warehouse, on a schedule or on demand. The sources it supports are in the connector list.
Where the data goes¶
Ingestion loads into one destination warehouse per workspace.
| Mode | Destination |
|---|---|
| Rig-hosted | A MotherDuck database provisioned for the workspace |
| Your own warehouse | BigQuery, Snowflake, Amazon Redshift, Databricks, Microsoft Fabric or PostgreSQL |
With your own warehouse, loading and reading can use separate credentials, so the credentials Rig queries with do not need write access.
Rig can also sit on top of a warehouse it does not load: connecting an existing warehouse for querying and context does not require using ingestion at all.
Connecting a source¶
Sources are connected on the Connections page of the application. Depending on the source you either paste credentials (an API key, database login or service account key), grant access to a service account, or authorise through OAuth. The connector list shows which applies to each source.
Most sources can be connected more than once, for example for two accounts of the same tool. Each connection has its own name, credentials, selected streams and schedule.
Sync schedules¶
| Setting | Behaviour |
|---|---|
| Nightly (default for most connectors) | Runs once a night. Start times are spread across 00:00 to 06:00 UTC. |
| Hourly | Runs once an hour. Start times are spread across the hour. |
| Manual | Runs only when triggered. |
| Custom | A five-field cron expression evaluated in a time zone you choose. |
A connector whose API has a tight usage quota declares its own default instead of nightly: Circle, for example, syncs monthly. You can change the schedule after connecting.
A sync is incremental where the source supports it: after the first load, a run fetches what changed since the previous one. A full resync is available for some connectors and requires the owner role.
A sync can also be triggered on demand, from the Connections page, through the API, or by an
agent through the MCP tool manage_ingest.
Monitoring¶
The application shows each source's last sync time, status and error. The same information is available through:
GET /{client_id}/pipeline-healthandGET /{client_id}/pipeline-health/runs(API reference, Preview)- the MCP tools
get_pipeline_health,get_pipeline_runsandmanage_ingest
Ingestion API (Preview)¶
The application manages connections through the operations below. They authenticate with a user session and require permission to manage connections. They are live but are not yet a stability commitment, and they are not described in the OpenAPI schema, so they are listed here instead of in the generated reference.
| Method and path | Purpose |
|---|---|
GET /{client_id}/rig-ingest/connectors |
List the connectors and the credentials each needs |
GET /{client_id}/rig-ingest/sources |
List connected sources with their schedule and last sync |
POST /{client_id}/rig-ingest/sources |
Connect a source. Body: source_id, credentials, and optionally name, display_label, streams, schedule_cron |
PATCH /{client_id}/rig-ingest/sources/{source_name} |
Change a source: enabled, schedule_cron, schedule_timezone, streams, credentials, options, dataset_name |
POST /{client_id}/rig-ingest/sources/{source_name}/sync |
Trigger a sync. Returns 202 |
POST /{client_id}/rig-ingest/sources/{source_name}/cancel |
Cancel a running sync |
GET /{client_id}/rig-ingest/sources/{source_name}/runs |
Sync history for a source |
DELETE /{client_id}/rig-ingest/sources/{source_name} |
Disconnect a source |
schedule_cron set to null means manual. Omitting it when connecting a source gives the
connector's default schedule: nightly, or the connector's own default where it declares one.
For such a connector an explicit schedule_cron of 0 0 * * * at connect time is also replaced by
its own default; set nightly afterwards with PATCH.
Not available today¶
- A connector for Azure Blob Storage.
- Self-service building of new connectors. A connector builder exists in limited release and is enabled per workspace on request.