Port opal validation/inspection commands from the Go fork
Source: beengud/observe PR #4 (OPAL lint and reference). Files: cmd_opal.go, cmd_opal_validate.go, ot_opal.go.
New CLI status: Absent. The new CLI has query (OPAL execution) but no lint/validation or language reference.
Old command surface
observe opal check <pipeline> # validate OPAL via checkQueries API
observe opal check --file <path> # -> ERROR line:col: msg (exit 1) | WARN kind: msg (exit 0) | OK + result schema fields
observe opal verbs # list all OPAL verbs (category, description), TSV, sorted
observe opal functions # list all OPAL functions (category, return type, description), TSV, sorted
observe opal validate-ingest --dataset <id> <pipeline> # validate ingest filter expr via validateIngestFilterExpression API
Flags: -f/--file, --dataset.
Behavior / API
check → checkQueries; validate-ingest → validateIngestFilterExpression; verbs/functions → tenant OPAL metadata queries.
- Exit codes matter for scripting/CI: non-zero on validation errors.
Acceptance
- All four subcommands ported preserving the
ERROR line:col / WARN / OK output contract and exit codes; tests ported.
Port
opalvalidation/inspection commands from the Go forkSource:
beengud/observePR #4 (OPAL lint and reference). Files:cmd_opal.go,cmd_opal_validate.go,ot_opal.go.New CLI status: Absent. The new CLI has
query(OPAL execution) but no lint/validation or language reference.Old command surface
Flags:
-f/--file,--dataset.Behavior / API
check→checkQueries;validate-ingest→validateIngestFilterExpression;verbs/functions→ tenant OPAL metadata queries.Acceptance
ERROR line:col/WARN/OKoutput contract and exit codes; tests ported.