version to
prevent conflicting edits, and are soft-deleted. The messages are defined in
protos/ingestion/v1/connections.proto.
Config scoping
Every field in a connector’sConfigSchema carries a FieldScope that
decides where its value lives:
- Connection-scoped fields (
FIELD_SCOPE_CONNECTION), such as host, port, and credentials, are stored on the connection. They are what these RPCs manage. - Pipeline-scoped fields (
FIELD_SCOPE_PIPELINE), such as target table and path prefix, are stored on the pipeline node that references the connection, and shallow-merged over the connection’s config at run time, with the node winning on key conflicts.
secret in the schema get special handling. On create and
update the server extracts their values from config, stores them through the
configured secrets provider, and keeps only a reference in secret_refs.
Reads return those fields masked, and the API never echoes a secret back. A
client can also supply secret_refs directly to point at pre-existing
secrets.
RPCs
CreateConnection
Takeskind, name, connector, config, and optional secret_refs. The
server resolves referenced secrets, validates the resulting values against the
connector’s schema, and runs the connector’s configuration checks. These are
local checks: saving a connection does not prove that the external system is
reachable or that its credentials work. A secret reference that cannot be
resolved returns failed_precondition.
UpdateConnection
Takes the fullConnection object, including id and the version you last
read. Semantics:
- A
versionthat no longer matches the stored row returnsaborted. Re-read the connection and retry with the fresh version. connectorandkindare immutable, and so is the replication mode a source’s config implies (standard vs CDC). Changing any of them returnsinvalid_argument, so create a new connection instead.- Updating a deleted connection returns
failed_precondition.
GetConnection
Returns the connection with secret fields masked. Sources additionally reportreplication, the effective replication mode derived from the stored config.
Sinks report REPLICATION_MODE_UNSPECIFIED.
ListConnections
Filters bykind (unspecified returns both sources and sinks) and supports
pagination. Deleted
connections are excluded unless include_deleted is set.
DeleteConnection
This is a soft delete. The row is stampeddeleted_at and its stored secret
references are removed, but history referring to it stays readable. The call
refuses with failed_precondition while any pipeline’s current version
references the connection — remove it from those pipelines (by creating new
versions without it) first. Only the current version counts. Older versions
that reference it do not block deletion.