Skip to main content
A Connector Instance collects from one source into one Corpus and Source Namespace, on a schedule. Collected items take the same path as articles you submit, so corrections, Receipts, search and alerts behave the same. This page covers what every kind has in common, with an RSS feed as the example. Each kind has its own page for its configuration: RSS and Atom, Microsoft 365 mail, X lists.

Prerequisites

  • QUIVR_API_URL, QUIVR_API_KEY with connectors:read and connectors:write on the target Corpus, and a Corpus in CORPUS_ID (Add content).
  • The plugin that provides the kind, pinned. The local stack pins rss, m365_mail and x_list.
  • For kinds that need a secret, a credential_key in Quivr’s configuration. Without it, Quivr refuses any credential with 503 credentials_unavailable; kinds without a secret, such as public feeds, still work.

See what you can create

Each kind comes with the JSON Schema of its configuration and credential, so an application can build its form from them. credential says whether the kind takes one: none, optional or required.

Create an instance

Replace the URL with a feed you may read. Collection starts right away, then follows interval_seconds, which must be at least the deployment’s floor (30 seconds by default) and at most 24 hours. The Source Namespace partitions Record Keys: one enabled instance owns a Corpus and Source Namespace pair. To replace an instance, disable it and create the new one on the same namespace, so existing Records keep their identity. A configuration the kind’s schema refuses is 422 invalid_config, with a JSON Pointer to the field at fault in field, such as /config/url.

Watch its health

Timeouts and server errors do not change the state: they show in last_error and are retried at the next run. Kinds that pay per item read also report health.usage, and a kind’s own details appear in health.diagnostics. Rather than polling instances, follow connector.health_changed and the other connector.* events on the change feed (GET /v0/changes).

Change the schedule or check now

A shorter interval brings the next run forward; a longer one applies after the run already scheduled. A run requested now still respects the deployment’s floor and any Retry-After from the source.

Deposit or replace a credential

Send the secret when you create the instance, in credential, or replace it later:
Secrets are encrypted at rest and never returned or logged: reads show only the credential’s version, deposit date and expiry. The new version applies from the next run. Set expires_at whenever the provider’s secret expires, so health warns you in time.

Disable an instance

Scheduling stops at once, and Records already collected stay searchable. A disabled instance cannot be enabled again: create a new one on the same Source Namespace.

What to expect

  • An item fetched again, for example after a restart, returns its original Receipt; it never creates a duplicate. A changed item becomes a new Version of its Record.
  • An item that disappears from the source is not withdrawn, unless the kind’s page says otherwise.
  • Idempotency keys that start with connector: are reserved for connectors; your own submissions may not use them.