v0.4.0
Distribution, reporting, and analysis surfaces. No rule IDs changed; the JSON
report gained fields (it is now reportVersion 1.1.0) without removing any.
Added:
tods-validate ruleslists the rule catalog from the tool itself
(--format jsonfor tooling, now including category, default-enabled, and
spec-interpretation metadata).- Published JSON Schema for the
--format jsonreport
(docs/report.schema.json), enforced by tests. - Dockerfile and a workflow publishing images to GHCR on each release.
- pre-commit hook definition (.pre-commit-hooks.yaml).
- New report formats:
--format sarif(GitHub code-scanning / security
dashboards) and--format html(a standalone, shareable report). - JSON report now carries
toolVersion,reportVersion, a per-rule
summary.byRulebreakdown, and a stablelocationpointer per finding. - Text and Markdown reports group findings by rule, show the shortest path to a
clean run, and add root-cause hints when one rule clusters. - New flags on
validate:--enable(opt-in rules/categories),--profile
(default/strict/lenient presets),--spec-version,--baseline(fail only
on findings new since a previous JSON report),--max-findings,--quiet,
--stamp(citable Markdown footer), and--encoding. - New subcommands:
diff(compare two feeds),batch(validate many feeds
with a roll-up table),stats(descriptive feed metrics), andanonymize
(pseudonymize person-identifying fields). mergenow writes amerge-report.jsonmanifest alongside the merged feed.- The GitHub Action exposes
error-count,warning-count, andinfo-count
outputs and accepts anenableinput. - New opt-in rules: TODS-I501 / TODS-I502 (coverage) and TODS-I601 (advisory).
- Public Python API:
from tods_validate import validate_feed. - Input-safety hardening of zip ingestion (zip-bomb and path-traversal
defenses, size limits) and aSECURITY.md. scripts/benchmark.pyfor throughput measurement on large synthetic feeds.