Config-as-code and the CLI
Every pipeline exports as YAML (History → Export YAML, or bezisync remote export):
apiVersion: bezisync.io/v1
kind: Pipeline
metadata: {name: orders-cdc, owner: payments-oncall, labels: {team: payments}}
spec:
runtime: prod-k8s
source: {connection: orders-db, tables: {include: [public.orders]}, columns: {public.orders: {mask: [email]}}}
sink: {connection: events, naming: "cdc.{schema}.{table}", format: {type: json}}
snapshot: {mode: initial}
policies: {resources: medium}Connections and runtimes are referenced by name. Apply from Import YAML or CI:
bezisync remote login --url https://bezisync.example.com --project prod --token <API token>
bezisync remote diff -f pipelines/ # what would change (a file, a directory of *.yaml, or -)
bezisync remote apply -f pipelines.yaml --deploy # all or nothing; respects approvals
bezisync remote getThe CLI is the bezisync binary in the bezisync image: run it from the image (mount your manifests,
e.g. docker run --rm -v "$PWD:/w" -w /w -e BEZISYNC_URL -e BEZISYNC_TOKEN ghcr.io/daun-gatal/bezisync remote get) or copy it out once (docker create, then
docker cp <container>:/usr/local/bin/bezisync .); it is a single static Linux binary.
API tokens: Account → API tokens (user menu) (project-scoped, optionally read-only, expiring after 30 days to a year; "Never" is possible but flagged). A new token is shown once. In CI use
BEZISYNC_URL, BEZISYNC_TOKEN, BEZISYNC_PROJECT. Promote (History tab) copies a pipeline's
latest version into another project as a new version there, mapping its connections; when the
other project has no matching source or destination, it offers to copy this pipeline's own.