← Files Aivana Dataverse App ArchitectARCHIVED FILE
scripts/validate_execution_manifest.py
1.04 KB · Sep 30, 2026 · 23:15 UTC
#!/usr/bin/env python3
"""Fail closed on a metadata-execution manifest before any connector is invoked."""
import argparse
import hashlib
import json
from pathlib import Path
from execution_manifest import load_manifest
def main():
parser = argparse.ArgumentParser(description="Validate a confirmed Dataverse execution manifest")
parser.add_argument("manifest", type=Path)
parser.add_argument("--json", action="store_true", dest="as_json")
args = parser.parse_args()
try:
data, issues, digest = load_manifest(args.manifest)
except (OSError, ValueError) as exc:
data, issues, digest = {}, [str(exc)], None
result = {"safeToInvokeConnector": not issues, "issues": issues, "manifestHash": digest,
"writeApproved": data.get("writeApproved") is True}
print(json.dumps(result, ensure_ascii=False, indent=2) if args.as_json else ("PASS " if not issues else "BLOCKED ") + "; ".join(issues or [result["manifestHash"]]))
raise SystemExit(0 if not issues else 1)
if __name__ == "__main__":
main()
SHA-256: 5e1a959ea65e3f6f1c129df15a4fa5bfd303416b6de115185973ac16af9c099f