Real time · docs/streams/cli.md

Streams validation and provisioning CLI

BlueTusk.Streams.Tool provides the bluetusk-streams .NET tool. It validates the PostgreSQL version, wallevel, publications, table selection, logical slot, source/control isolation, relay-schema exclusion, and canonica…

1 min read189 wordsSource synchronized
View source on GitHub
ON THIS PAGE

Streams validation and provisioning CLI

BlueTusk.Streams.Tool provides the bluetusk-streams .NET tool. It validates the PostgreSQL version, wal_level, publications, table selection, logical slot, source/control isolation, relay-schema exclusion, and canonical publication fingerprint before a worker starts.

dotnet tool install --global BlueTusk.Streams.Tool --version 1.0.0
$env:BLUETUSK_STREAMS_SOURCE = "Host=source;Database=app;Username=streams;Password=..."
$env:BLUETUSK_STREAMS_CONTROL = "Host=control;Database=streams;Username=streams;Password=..."

bluetusk-streams provision --publication app_changes --slot app_streams `
  --table app.orders --table app.order_items
bluetusk-streams validate --publication app_changes --slot app_streams

The control connection is required during provisioning unless --direct-only explicitly selects slot-per-group operation. Provisioning is idempotent: an existing compatible publication or pgoutput slot is retained, and relay storage runs its versioned CREATE IF NOT EXISTS migration path.

Using one database for the source and relay is not the default. It requires --allow-shared-control; --all-tables is then rejected, and validation fails if any configured publication includes the relay control schema. This prevents the relay from consuming its own writes.

Use --skip-slot only when another deployment step owns slot creation. A missing slot remains visible in the validation report. Connection strings may be supplied as arguments for automation, but environment variables keep them out of interactive shell history. Errors redact both source and control values.