Skip to content

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-health and GET /{client_id}/pipeline-health/runs (API reference, Preview)
  • the MCP tools get_pipeline_health, get_pipeline_runs and manage_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.