Independent commit evidence

Your migration said success.
Prove what stayed.

Run the migration you already have against a disposable database. Snapshot the facts on both sides of commit. Exercise the rollback you actually supplied. Keep the signed record.

  • Local-onlyNo telemetry
  • 2 dialectsNamed behavior
  • 2 formatsJSON + Markdown
Concrete database core split by a black transaction seam, with moss on verified edges and a rust fracture stopping at commit.
A green tool status is a claim. The state across the seam is the evidence.

01 / failure boundary

Exit zero can still leave a partial state.

Deferred constraints can fail at commit. DDL may ignore the transaction you thought contained it. Migration status and database truth can diverge at exactly the moment a release needs certainty.

exit0proof

02 / method

Four observations. One portable record.

  1. 01

    Baseline

    Query scalar schema and data invariants before anything moves.

  2. 02

    Run yours

    Execute the existing Flyway, Liquibase, ORM, or shell command unchanged.

  3. 03

    Witness commit

    Query again even after a failed command, so partial outcomes cannot hide.

  4. 04

    Exercise rollback

    Only on explicit request, using only the rollback command in policy.

03 / recorded fixture

Replay a partial commit.

This seeded run returns exit code 0 after creating only one of two required objects. Move through the same observations the CLI records.

witness.json Not checked

BASELINE / captured

$ mcw witness --confirm-test-database
snapshot.before.schema_objects = 0
snapshot.before.account_rows = 12
sqlite.quick_check = "ok"

04 / install

Boring inputs. Durable evidence.

One Rust binary. No agent, hosted database, migration DSL, or telemetry.

Build 0.1.0

cargo install --git https://github.com/B-Divyesh/sf-migration-commit-witness --bin mcw

Witness in CI

export MCW_DATABASE_URL='sqlite:///tmp/mcw-ci.db' export MCW_SIGNING_KEY="$CI_WITNESS_KEY" mcw witness --config mcw.toml \ --output witness \ --confirm-test-database \ --exercise-rollback --json

Hard guardrail

Production is not a mode.

The run needs both an allowed environment label and --confirm-test-database. Production-like URLs are rejected. Rollback needs a configured command and a separate flag.

Read the policy reference

05 / dialect truth

Specific by dialect. Never hand-waved.

DialectConnectionBuilt-in checkYour proof
SQLiteEmbeddedquick_check + foreign keysScalar invariants
PostgreSQLpsql on PATHServer reachabilityScalar invariants

06 / adoption

The witness stays free. Scale the ritual once.

Safety behavior, signatures, rollback exercise, and both evidence formats are MIT licensed. The optional kit packages team rollout policy.

Core CLI

$0 MIT

  • SQLite + PostgreSQL witnesses
  • Signed JSON + Markdown
  • Explicit rollback exercise
  • CI-ready exit codes
Install the CLI

Rollout kit

$49 one time

  • Review-owner matrix template
  • Dialect policy preset pack
  • Adoption and exception checklist
  • Future kit updates for this major version
Buy the rollout kit

Secure checkout. Sociobot/Dodo is merchant of record.

Already purchased?

Restore the kit on this device.

Your token stays in this browser. Verification runs at most once per day.

Paste the full token from your receipt.

No license stored on this device.

07 / release gate

Keep the claim.
Keep the proof.

Add the witness to CI