Skip to main content
A connector is a source, a sink, or both. Sources implement Source (described in Writing a source); sinks implement Sink (described in Writing a sink). Some connectors — PostgreSQL and MySQL today — ship both, as separate packages (connectors/postgres/source, connectors/postgres/sink).

Self-description

Every connector describes itself through its spec — ConnectorSpec for sources, SinkSpec for sinks — covering identity, config schema, and capabilities. This is what powers the catalog: the API server’s ListConnectors RPC (see API Reference) surfaces exactly this metadata to the UI, so a new connector shows up automatically once it’s registered, with no separate catalog to update by hand.

Self-registration

Connectors self-register via a blank import (see Embedding as a library):

Browse by direction

Sources

Connectors that read data: PostgreSQL, MySQL, five manifest-driven SaaS apps (Attio, GitHub, Linear, Notion, Slack), and Sample.

Sinks

Connectors that write data: PostgreSQL, MySQL, Iceberg, AWS S3, and Stdout.
Want to add one? Start at Writing a source or Writing a sink. Adding a new SaaS API specifically is usually just a new HTTP manifest — see that page before reaching for a full custom connector.