Reference

Every knob, one page.

The complete configuration reference - the pipeline spec, each connector's options, profiles, mapping, and the runtime and console settings. For the beginner walkthrough, start with the Guide.

Pipeline spec

Zipline has three places you set configuration: the pipeline spec (the YAML you zipline pipeline apply - what streams where), the runtime config (the node's own YAML file - how the runtime runs), and the console flags (how the optional web console starts). This page covers all three, in that order.

Top level

FieldTypeDefaultReqDescription
namestring-reqPipeline id; unique, immutable, must not contain #.
commit_modeon_delivery|on_bufferon_buffer if any external sink, else on_deliveryoptSource resume policy - when the source may advance. See Handbook → Delivery guarantees.
buffer_max_mbint4096optLocal backlog cap for the pipeline (MiB).
free_disk_reserve_mbint10240optNode free-disk floor (MiB).
sourceobject-reqThe source connector slot.
routeslist-req ≥1One or more delivery routes.

Each source and each route's sink share the same slot shape:

FieldTypeDefaultReqDescription
typestring-reqmssql|postgres|kafka|file. A source's type is immutable per pipeline.
configmap-req*Connector config (§Connectors). With profile set, this is just the override delta.
secret_refs[{field, ref}]-optPoint a config field-path at a named secret; values are never inlined.
placementruntime|externalresolvedoptWhere the connector runs. Required when the connector supports both. See Handbook → Placement.
profilestring-optInherit a reusable Profile (§Profiles).

* not required when profile is set - the profile supplies the base config.

Each entry in routes:

FieldTypeDefaultReqDescription
namestring-reqRoute/cursor id; unique in the pipeline, immutable, no #.
sinkobject-reqDestination slot - same shape as source, above.
dlqobject-optDead-letter sink. A DLQ may not declare its own dlq.
dlq_failurehalt_route|drop_and_continuehalt_routeoptWhat happens if the DLQ itself fails. See Handbook → DLQ vs Skip.
retry.maxint-optMax delivery retries before the DLQ.
retry.backoff_msint-optBackoff between retries (ms).
Honest caveat: per-route mapping: is not a pipeline-spec field. It's authored through the console or the API, never parsed from this YAML - see §Mapping below for its shape.

Connectors

Four connectors ship today. Each has a fixed direction: source, sink, or both. Each connector's full configuration reference, prerequisites, and examples now live on its own page. Browse them at /connectors, or jump straight to Postgres, SQL Server, Kafka, or File.

Profiles & secrets

A Profile is a reusable, named connector configuration. A slot references it via profile: and supplies its override delta as the slot's own config:.

FieldTypeDefaultReqDescription
namestring-reqProfile id; referenced by a slot's profile: field.
typemssql|postgres|kafka|file-reqConnector type this profile is for.
configmap-reqBase connector config every referencing slot inherits.
overridable[]string-optField-paths a slot is allowed to override in its own config: delta. Everything else is fixed by the profile.
secret_refs[{field, ref}]-optSame shape as a slot's secret_refs - attach secrets to the profile's base config.
Two gotchas: a source profile can't be shared across more than one pipeline, and a profile still referenced by a pipeline can't be deleted.

Secrets. secret_refs points a field-path - e.g. password, or sql_server.primary.password - at a named secret. The value itself is never written inline, in a profile or in a pipeline spec.

Mapping & transforms

mapping: is not a pipeline-spec field. It's authored per route through the console or the API - never in the YAML you apply. This section documents its shape so you know what you're setting, wherever you set it.
FieldTypeDefaultReqDescription
unmatchedPolicypassthrough|droppassthroughoptStreams with no matching rule: pass through unchanged, or drop.
rules[].sourceStreamstring-reqStream name to match from the source.
rules[].targetStreamstring-optRename the stream, or fan multiple source streams into one target stream.
rules[].unlistedPolicypassthrough|drop|error-optColumns not explicitly listed in this rule: pass through, drop, or fail with an error.
columns[].sourcestring-reqSource column name.
columns[].targetstring-optRename the column on delivery. The primary key column may not be renamed.
columns[].targetKindbool|int|float|decimal|string|bytes|uuid|json|date|time|timestamp|timestamptz-optRetype the column on delivery. The primary key column may not be retyped.
columns[].targetSourceTypestring-optAdvisory hint for the sink's native column type. Informational only - doesn't change delivery behavior.
State plainly: drop is permanent. A dropped stream or column's data is not buffered, not queued, and not recoverable - it never leaves the source.

Runtime config

The runtime's own YAML file - how ziplined itself runs on this node. Separate from any pipeline spec.

FieldTypeDefaultReqDescription
config_versionint-req ≥2Runtime config schema version this file was written for.
log_leveldebug|info|warn|errorinfooptRuntime log verbosity.
state_dirpath./data/stateoptWhere the runtime persists its local state.
connectorstring--This node's connector identity.
control_listenhost:port--Address this node's control API listens on.
data_listenhost:port--Address this node's data plane listens on.
enroll_listenhost:portcontrol port +2optEnrollment listen address, derived from control_listen's port.
advertise_hostbare host-optExternally-reachable hostname this node advertises to peers - no port, no scheme.
wal.dirpath./data/waloptThe durable data location - where the runtime keeps its durable local queue. (setup default - the setup wizard writes this value; not defaulted if you hand-write the config)
pipeline.commit_modeon_delivery|on_bufferon_deliveryoptNode-wide default commit_mode for pipelines that don't set their own.
pipeline.buffer_max_mbint4096optNode-wide default for buffer_max_mb.
pipeline.free_disk_reserve_mbint10240optNode-wide default for free_disk_reserve_mb.
runtime.max_pipelinesint256optCap on concurrently bound pipelines this node will run; 0 = unlimited.
runtime.secret_dirpath<wal.dir>/secretsoptWhere the runtime reads locally-stored secret material referenced by secret_refs.
runtime.save_intervalduration1soptHow often the runtime checkpoints its local state to disk.
runtime.unbound_idle_ttlduration0 (disabled)optHow long an unbound pipeline's state may sit idle before the runtime reclaims it.
runtime.in_flight_budgetauto|512MB|20%|offautooptIn-flight memory cap for node protection.
transport.insecureboolfalseoptDisable transport security. Loopback-only - development use only.

Fields with no default and no req/opt badge above (connector, control_listen, data_listen) are operator-set - there is no default to fall back to.

Console config

The optional web console is its own binary, started with its own flags - separate from both the pipeline spec and the runtime config.

FlagEnvDefaultDescription
--listen-:8080Console HTTP listen address.
--runtime-localhost:9090Address of the Zipline runtime this console connects to.
--enroll-control port +2Enrollment endpoint, derived from --runtime's port.
--gateway-cert-dir-./data/gateway/gw-certsWhere the gateway's TLS certificates live.
--gateway-token--Shared token gating access between the gateway and the runtime.
--assets--Path to the console's static asset bundle.
--user-store-dir-./data/gateway/usersWhere console user accounts are stored.
--admin-userZIPLINE_CONSOLE_ADMIN_USER-Bootstrap admin username.
--admin-passZIPLINE_CONSOLE_ADMIN_PASS-Bootstrap admin password.
--seed-usersZIPLINE_CONSOLE_SEED_USERS-Seed additional accounts at boot. Format: user:pass:role;….
--jwt-secretZIPLINE_CONSOLE_JWT_SECRETauto-generated if emptySigns console session tokens. If set, must be at least 32 bytes.
--metrics-dbZIPLINE_CONSOLE_METRICS_DB<user-store-dir>/metrics.dbPath to the console's metrics database.
--metrics-retentionZIPLINE_CONSOLE_METRICS_RETENTION720hHow long metrics history is kept.
--metrics-histogram-intervalZIPLINE_CONSOLE_METRICS_HISTOGRAM_INTERVAL10sBucket interval for histogram metrics.

Next steps