ValidX: deterministic JSON Schema 2020-12 validator with governed repair/explain hooks.
Project description
ValidX v0.4.2
Deterministic JSON Schema 2020-12 validation + governed repair loop with evidence artifacts (verify_report.json, payload.canon.json, errors.json).
Architecture Note
- Structural Integrity Membrane model:
DOCS/VALIDX_MEMBRANE.md
Installed Modes
validate: deterministic validation onlyexplain: deterministic validation + explanation object, no AIrepair: deterministic repair in v0.3 with bounded subprocess fixer attempts (v0.4 adds report validation CLI hardening and packaging artifacts)extract: deterministic extraction scaffold (permit-gated, not implemented)
CLI
validx validate --registry examples/CONTRACTS/schemas/_registry.json --schema-key example.person --input examples/person_bad.yaml --out-dir out --approved-root examples
validx explain --registry examples/CONTRACTS/schemas/_registry.json --schema-key example.person --input examples/person_bad.yaml --out-dir out --approved-root examples
validx repair --registry examples/CONTRACTS/schemas/_registry.json --schema-key example.person --input examples/person_bad.yaml --out-dir out --approved-root examples --permit-path examples/permit.json --ai-driver subprocess --ai-model-id fake-fixer-v1 --ai-cmd "python -m tests.fake_fixer_runner"
validx extract --registry examples/CONTRACTS/schemas/_registry.json --schema-key example.person --input examples/person_bad.yaml --out-dir out --approved-root examples --permit-path examples/permit.json
validx verify-report-validate \
--verify-report out/verify_report.json \
--report-schema CONTRACTS/schemas/validx/verify_report_v1.schema.json \
--out out/verify_report_validation.json
validx permit-validate \
--permit examples/permits/structural_only.json \
--permit-schema CONTRACTS/schemas/validx/permit_v1.schema.json \
--out out/permit_validation.json
validx tool-manifest-validate \
--tool-manifest path/to/validx_tool_manifest.json \
--manifest-schema CONTRACTS/schemas/validx/tool_manifest_v1.schema.json \
--out out/tool_manifest_validation.json
validx doctor
validx doctor --text
validx doctor --run-pip-check
validx doctor --run-pip-audit
validx sbom --format validx
validx sbom --format cyclonedx
validx sbom --format cyclonedx --cyclonedx-require-pin --cyclonedx-manifest CONTRACTS/tools/cyclonedx/cyclonedx_py.pin.json
validx sbom-tool-receipt
validx contract-snapshot
validx secrets-scan
validx latency-trend-refresh --metrics /tmp/validx_sweep_gate_metrics.json
validx promote-precheck
validx artifact-integrity-check
validx graph-ir-gate --graph-ir CONTRACTS/tools/provenance/graph_ir_v1.json
validx intake-check --rights-lineage CONTRACTS/tools/provenance/rights_lineage_v1.json --graph-ir CONTRACTS/tools/provenance/graph_ir_v1.json
validx provenance-check --token CONTRACTS/tools/provenance/provenance_token_v1.json --rights-lineage CONTRACTS/tools/provenance/rights_lineage_v1.json --graph-ir CONTRACTS/tools/provenance/graph_ir_v1.json --action mirror_export
validx provenance-sign --token CONTRACTS/tools/provenance/provenance_token_v1.json --key-env VALIDX_PROVENANCE_HMAC_KEY
Permit
Permit files are JSON objects with only these boolean fields:
semantic_repairextractionallow_defaultsallow_drop_fields
Unknown fields are rejected. Boolean coercion is not performed.
Packaging assets
validx_v1_scaffold_bundle_v0_4_1.zipvalidx_v1_scaffold_bundle_v0_4_1.zip.sha256
Build locally with:
python3 scripts/package_bundle.py --out validx_v1_scaffold_bundle_v0_4_1.zip
sha256sum validx_v1_scaffold_bundle_v0_4_1.zip > validx_v1_scaffold_bundle_v0_4_1.zip.sha256
Sweep Gate (one command)
bash scripts/sweep_gate.sh
This runs install/tests/build plus a small validator-cache performance smoke. It also emits:
- metrics JSON:
${VALIDX_GATE_METRICS_PATH:-/tmp/validx_sweep_gate_metrics.json} - gate receipt JSON:
${VALIDX_GATE_RECEIPT_PATH:-artifacts/gate_receipt.json} - deterministic SBOM JSON:
${VALIDX_GATE_SBOM_PATH:-artifacts/sbom_validx_v1.json} - deterministic SBOM hash receipt:
${VALIDX_GATE_SBOM_PATH:-artifacts/sbom_validx_v1.json}.sha256 - CycloneDX tool pin receipt:
${VALIDX_GATE_SBOM_TOOL_RECEIPT_PATH:-artifacts/sbom_tool_receipt.json} - deterministic contract snapshot JSON:
${VALIDX_GATE_CONTRACT_SNAPSHOT_PATH:-artifacts/contract_snapshot_v1.json} - deterministic contract snapshot hash receipt:
${VALIDX_GATE_CONTRACT_SNAPSHOT_PATH:-artifacts/contract_snapshot_v1.json}.sha256 - secrets scan JSON:
${VALIDX_GATE_SECRETS_SCAN_PATH:-artifacts/secrets_scan_v1.json} - secrets scan hash receipt:
${VALIDX_GATE_SECRETS_SCAN_PATH:-artifacts/secrets_scan_v1.json}.sha256 - promotion precheck JSON (promotion profile or
VALIDX_GATE_REQUIRE_PROMOTE_PRECHECK=1):${VALIDX_GATE_PROMOTE_PRECHECK_PATH:-artifacts/promote_precheck_v1.json} - artifact integrity JSON (promotion profile or
VALIDX_GATE_REQUIRE_ARTIFACT_INTEGRITY=1):${VALIDX_GATE_ARTIFACT_INTEGRITY_PATH:-artifacts/artifact_integrity_v1.json} - optional strict CycloneDX JSON (when
VALIDX_GATE_REQUIRE_CYCLONEDX=1):${VALIDX_GATE_CYCLONEDX_PATH:-artifacts/sbom_cyclonedx.json}- receipt also publishes
cyclonedx.manifest_readyandcyclonedx.manifest_reasonfor strict-pin readiness
- receipt also publishes
Two-Tier Mirror Export
ValidX runs as:
- private authoritative core (trade-secret governance membrane)
- generated public mirror (interoperability surface only)
Mirror policy and controls:
- policy:
MIRROR_POLICY.yaml - exporter:
scripts/mirror_export.sh - leak checker:
scripts/check_mirror_leak.sh - guardrail docs:
DOCS/MIRROR_POLICY.md
Defensive limits
- JSON config/schema/report documents are capped at
8 MiB. - Input payload files/bytes are capped at
16 MiB. - Subprocess fixer request payload is capped at
16 MiB. - Subprocess fixer output payload is capped at
16 MiB.
Policy overrides are supported via env vars (or optional JSON policy file via VALIDX_POLICY_FILE, or CLI --policy):
VALIDX_MAX_JSON_DOC_BYTESVALIDX_MAX_REQUEST_BYTESVALIDX_MAX_SUBPROCESS_IO_BYTESVALIDX_MAX_SCHEMA_CACHE_SIZEVALIDX_SUBPROCESS_TIMEOUT_MSVALIDX_SUBPROCESS_MAX_RETRIESVALIDX_SUBPROCESS_BACKOFF_MS
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file valid8x-0.4.2.tar.gz.
File metadata
- Download URL: valid8x-0.4.2.tar.gz
- Upload date:
- Size: 53.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
41e17a0c5fde6b96633eba266a661a537aa47266b77c70e6c5a35245125b8bde
|
|
| MD5 |
90e2ac815b33dc017f7ef22c477603e7
|
|
| BLAKE2b-256 |
7b077ab9fb604360d352f222f3705623e6127537952997741702ca01a6e27955
|
File details
Details for the file valid8x-0.4.2-py3-none-any.whl.
File metadata
- Download URL: valid8x-0.4.2-py3-none-any.whl
- Upload date:
- Size: 47.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
201d0ed2fd6f011fa7e9a05a6892c823dd30e7b7c66b98c85dcc2b02d2ddd6e4
|
|
| MD5 |
e41df36725009e35ed26d866aa4aa038
|
|
| BLAKE2b-256 |
f3cb3005848ba103208cddf7e2a229b1b7d1cda9c32039950afad914c300e143
|