Skip to content
Getting started

Getting started

What is Valet?

A command-line validation gate for CSV, Parquet, NDJSON or JSON files (local or S3-compatible) before a lakehouse, warehouse or next job. Checks live in YAML or JSON; by default you get one aggregate JSON report on stdout and an exit code, with no rewritten data or output files.

Why Valet?

  • Readable ≠ correct: checks schemas, missing values, ranges, duplicate keys, references and column relationships before problems propagate. Same versioned rules wherever the file enters.
  • Caller owns the next step: continue on exit 0, block on failed checks (1), handle execution failures separately (2). Warnings do not block by default; set mandatory rules to level: error.
  • Self-contained CLI, not a service: no scheduling or lakehouse upload. Keep your uploader; validate the same immutable input before invoking it.

Start here

Choose the right command

You want to…CommandResult
Check Parquet columns and types without reading valuesvalet schema -p pipeline.yml -i input.parquetSchema-only JSON report; no data outputs
Check values without publishing filesvalet validate -p pipeline.yml -i input.parquetOne aggregate JSON summary on stdout; no manifest
Check row values, conversions, references and dataset rulesvalet validate -p pipeline.yml -i input.parquet -o results/Checked rows, issues and a terminal manifest
Preview configuration, schemas, passes and required statevalet plan -p pipeline.yml -i input.parquetExecution-plan JSON; not a validation result

Only schema is Parquet-only; full validation supports all four formats. schema and plan may succeed even when a row value would fail full validation — see schema-only checks.

Full validation lifecycle

  1. Optional: valet plan to see the work and managed state.
  2. valet validate reads, converts and checks the data.
  3. Read results:
    • no output URI → aggregate stdout JSON; no files or manifest.
    • -o/output.uri → published manifest.json and its artifact references; partial artifacts without it are incomplete.

valet schema is separate: JSON report on stdout only; never publishes row buckets or a manifest.

Exit codes

Exitvalet schemavalet validate
0Schema compatible; row checks were not evaluatedCompleted without error-level violations; warnings allowed
1Error-level schema mismatch; inspect the JSON reportCompleted with row, dataset or schema violations; inspect the summary
2Configuration, format, metadata, storage or resource failureOperational or presentation failure without a committed manifest
3Not used: schema inspection commits no terminal manifestManifest committed, but stdout presentation failed
128+NInterrupted by signal NInterrupted by signal N before commit