Skip to Content
We are live but in Staging 🎉
PipelinesAPI ReferenceOverview

Pipelines — API Reference

The Pipelines domain spans three gRPC services across three proto packages:

ServicePackageOwns
SourceServicedodil.k3.source.v1Sources (external data sources + the auto-created internal S3 source) and Credentials (OAuth / API keys / PATs / access keys)
PipelineServicedodil.k3.pipeline.v1Pipelines (Scriptum template + destination bindings) and Template catalog browsing
IngestServicedodil.k3.ingest.v1Ingest rules (triggers), source sync (Discovery / Ingestion / SyncStatus), and ingest jobs (per-object runs)

For the typed domain model (Source, Credential, Pipeline, Template, IngestRule, IngestJob) see Core Concepts. For headers and error envelope see Conventions.

Sections

  • SourcesCreateSource · GetSource · ListSources · UpdateSource · DeleteSource
  • CredentialsStoreCredential · GetCredential · ListCredentials · DeleteCredential · ValidateCredential · OAuth flow (GetOAuthUrl · ExchangeOAuthCode · RefreshOAuthToken)
  • PipelinesCreatePipeline · GetPipeline · ListPipelines · UpdatePipeline · DeletePipeline
  • TemplatesListTemplates · GetTemplate
  • RulesCreateRule · GetRule · ListRules · UpdateRule · DeleteRule
  • SyncTriggerDiscovery · TriggerIngestion · GetSyncStatus
  • JobsTriggerIngest · GetIngestStatus · ListIngestJobs

Wire conventions

HTTP request bodyHTTP query / pathgRPC
Field namescamelCase (pbjson)snake_case (e.g. page_size, full_sync)as in .proto
Enumswire-name strings ("SOURCE_STATUS_ACTIVE")enum
int64JSON stringsstringsint64
All fieldsalways emitted (no defaults dropped)

Endpoint roots

EndpointWhen to use
https://k3.dev.dodil.io (staging) · https://k3.dodil.io (prod)HTTP
k3-grpc.dev.dodil.io:443 (staging) · k3-grpc.dodil.io:443 (prod)gRPC

Auth: bearer JWT in Authorization. See Conventions.

A note on routing authority

Rules carry both pipeline_id (the authoritative pointer) and binding (server-derived display info — pipeline name, kind, destination). Always route on pipeline_id. The binding is for rendering only and is empty when a rule outlives its pipeline.


See also