UAT Checklist
For the full pilot instruction sequence (what to run before you get here), see Pilot guide.
Audience: pilot users validating Rivet before production use.
When to use: at the end of a pilot, before promoting to production, or when verifying a new release.
Prerequisites: completed Getting Started and at least one successful export.
For the full internal acceptance test plan with detailed suites and smoke-test scripts, see dev/USER_TEST_PLAN.md.
Pre-flight
-
rivet doctorpasses — source and all destinations authenticated -
rivet checkpasses — all exports showEFFICIENTorACCEPTABLEverdict - No
UNSAFEexports (full table scans on very large tables)
Basic export
-
rivet run -c rivet.yaml --validatecompletes withstatus: success - Row count in summary matches expected
- Output files exist at the configured destination
Incremental / re-run
- Second run produces only new rows (cursor advanced correctly)
-
rivet state showreflects the updated cursor -
rivet metricsshows both runs in history
Mode-specific
- Full mode: complete snapshot on each run
- Incremental mode: only new/updated rows on subsequent runs
- Chunked mode: all chunks complete,
rivet state chunksshows no pending tasks - Time-window mode: only rows within the configured window
- CDC mode (if used): changes streamed to the destination as they occur; a second run resumes from the checkpoint and captures only new changes (PostgreSQL / MySQL / SQL Server / MongoDB)
Destinations
- Local: files written to correct path
- S3 (if used): files visible in bucket with correct prefix
- GCS (if used): files visible in bucket with correct prefix
- Azure (if used): files visible in container with correct prefix
Plan/Apply (if using auditable execution)
-
rivet plan -c rivet.yaml -o plan.jsonsucceeds -
rivet apply plan.jsonruns and matches the plan artifact - Re-running
rivet applywith an unchanged plan succeeds; a tampered or hand-edited plan artifact is rejected (PA10 integrity check). Note: apply never re-reads the config file — altering rivet.yaml does not affect applying an existing plan. Apply’s own gates are the PA10 integrity check (non-bypassable), plan staleness (warns at 1 h, errors at 24 h), and cursor drift; the last two are bypassable with--force
Observability
-
rivet metrics --last 10shows accurate run history -
rivet state fileslists files produced by each run - Schema change warnings appear when column structure changes
Error recovery
- Interrupted export can be safely re-run without data loss
-
rivet state reset -c <config> --export <name>correctly resets cursor for a re-export
Progression, reconcile, and repair (chunked exports with chunk_checkpoint: true)
-
rivet state progressionshowsCOMMITTEDboundary per export after a successful run -
rivet reconcile --export <name>runs cleanly (all partitionsmatch) and advances theVERIFIEDboundary - Injected mismatch:
rivet reconcilesurfaces it;rivet repair --executewrites corrective files without touchingCOMMITTED - Post-repair
rivet reconcilere-advancesVERIFIED
Next steps
- Production checklist — readiness gates before go-live
- Reference: CLI — full command reference
- Reference: Config — all YAML fields