Sinks
Deliver Pulsar records to external systems with sink connectors in Orca Agent Engine on StreamNative Cloud.
A sink connector reads records from Pulsar topics and writes them to an external system. Use the connector catalog to discover built-in sink types, or deploy a sink from an uploaded NAR package.
This resource is a StreamNative Cloud capability served under /apis/cloud.sn.io/v1. A
self-hosted engine does not advertise the cloud.sn.io extension group. The ork CLI and
TypeScript SDK check GET /apis and report that the capability is unavailable before sending the
resource request.
Get your registry endpoint
Registry endpoint
Examples on this page target your registry endpoint - the deployment host root, with no path
suffix. For CLI, set ORCA_REGISTRY_URL and exactly one of ORCA_ACCESS_TOKEN (Bearer) or
ORCA_API_KEY (x-api-key). For TypeScript SDK, set ORCA_BASE_URL / ORCA_API_KEY (Bearer).
To find the endpoint, see Connect to the registry.
Sink configuration fields
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Sink name. The route also carries this name. |
tenant, namespace | string | No | Pulsar tenant and namespace. The CLI defaults to public/default. |
archive | string | One package source | builtin://<type>, an uploaded sink:// package, or another package URL. |
className | string | For custom packages | Sink implementation class. |
inputs or topicsPattern | array or string | Yes | Source Pulsar topics or topic regex. |
connection | string | Required by the CLI on create | Workspace connection. Immutable after create. |
configs | object | Connector-specific | Fields described by the sink catalog. |
inputSpecs | object | No | Per-topic consumer configuration. |
parallelism | integer | No | Sink instances. Defaults to 1 in the CLI. |
processingGuarantees | enum | No | Delivery guarantee. |
resources | object | No | CPU, RAM, and disk per instance. |
secrets | object | No | Secret mappings consumed by the connector. |
snServiceAccount | string | No | StreamNative Cloud service account used by the sink. |
Discover sink types
ork sinks available-sinks -o json
ork sinks config-definition data-generator -o jsonCreate a sink
This example uses the data-generator sink and its defaults. It is the same built-in connector used
by the Cloud CLI end-to-end lifecycle test; other sink types require the fields returned by their
catalog definition.
ork sinks create \
--name generated-output \
--sink-type data-generator \
--inputs persistent://public/default/events \
--connection pulsar-main \
--parallelism 1Operate sinks
| Operation | CLI | TypeScript | REST |
|---|---|---|---|
| List | ork sinks list | orca.cloud.connectors.sinks.list() | GET /apis/cloud.sn.io/v1/connectors/sinks |
| Retrieve config | ork sinks get <name> | .retrieve(name) | GET .../sinks/{name} |
| Update | ork sinks update <name> | .update(name, params) | PUT .../sinks/{name} |
| Delete | ork sinks delete <name> | .delete(name) | DELETE .../sinks/{name} |
| Start/stop/restart | ork sinks <action> <name> [instance] | .start, .stop, .restart and instance variants | POST .../{name}:<action> |
| Status | ork sinks status <name> [instance] | .retrieveStatus / .retrieveInstanceStatus | GET .../{name}/status |
Create and update are multipart requests. Connection assignment is immutable during updates. The CLI
also preserves the existing autoAck, processingGuarantees, and retainOrdering values because
the current runtime treats them as immutable.
Permissions
Treat every credential that can call the Workspace's cloud.sn.io routes as full access to its
sinks, and separate access with Workspaces. See
Control registry access.