mix threadline.health.coverage (Threadline v0.5.0)

Copy Markdown View Source

Shows trigger coverage as reported by Threadline.Health.trigger_coverage/1, with a three-section table (default) or JSON output (--json).

Unlike mix threadline.verify_coverage, this task is a viewer — it ALWAYS exits 0, even when uncovered tables exist. Use mix threadline.verify_coverage for the positive-list CI gate.

Usage

mix threadline.health.coverage
mix threadline.health.coverage --json
mix threadline.health.coverage --schema=NAME

Default output: a three-section TABLE / STATUS / SOURCE table followed by a Coverage: N covered, M uncovered, K expected uncovered summary line.

--json emits a JSON object with keys covered, expected_uncovered, schema, uncovered. The expected_uncovered value is a list of {"table": ..., "source": "baseline" | "config"} objects so adopters can filter via jq '.expected_uncovered[] | select(.source == "config")'.

--schema=NAME validates NAME at the edge (regex + pg_namespace lookup) and raises with Mix.raise/1 on bad input. NAME must match ~r/\A[a-z_][a-z0-9_]{0,62}\z/ (PostgreSQL identifier, conservative subset) AND exist in pg_namespace. Default "public".