BeziSync

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 get

The 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.

Edit this page on GitHub