72 lines
2.7 KiB
Python
72 lines
2.7 KiB
Python
#!/usr/bin/env python3
|
|
"""Validate the Svrnty Vision BTE provider-gateway refresh proof."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import json
|
|
from pathlib import Path
|
|
|
|
|
|
ROOT = Path(__file__).resolve().parents[1]
|
|
PROOF = ROOT / "docs/goal-runs/bte-product-ready-provider-gateway-refresh/svrnty-vision-work-007-provider-gateway-refresh.json"
|
|
MD = ROOT / "docs/goal-runs/bte-product-ready-provider-gateway-refresh/svrnty-vision-work-007-provider-gateway-refresh.md"
|
|
|
|
|
|
def require(condition: bool, errors: list[str], message: str) -> None:
|
|
if not condition:
|
|
errors.append(message)
|
|
|
|
|
|
def main() -> int:
|
|
errors: list[str] = []
|
|
proof = json.loads(PROOF.read_text(encoding="utf-8"))
|
|
md = MD.read_text(encoding="utf-8")
|
|
|
|
require(proof.get("schema") == "svrnty-vision.bte-product-ready-provider-gateway-refresh-proof.v1", errors, "schema")
|
|
require(proof.get("work_item_id") == "SVRNTY-VISION-WORK-007", errors, "work_item_id")
|
|
require(proof.get("route") == "svrnty-vision", errors, "route")
|
|
require(proof.get("approval", {}).get("expired") is True, errors, "approval_expired")
|
|
|
|
refresh = proof.get("gateway_refresh", {})
|
|
host = refresh.get("host_port_container", {}).get("healthz", {})
|
|
bte_ns = refresh.get("bte_network_namespace_container", {}).get("healthz_from_bte_runtime_namespace", {})
|
|
require(host.get("http_status") == 200 and host.get("body_status") == "ok", errors, "host_healthz")
|
|
require(bte_ns.get("http_status") == 200 and bte_ns.get("body_status") == "ok", errors, "bte_namespace_healthz")
|
|
|
|
readyz = proof.get("downstream_bte_recheck", {}).get("readyz", {})
|
|
require(readyz.get("http_status") == 200 and readyz.get("body_status") == "Healthy", errors, "bte_readyz")
|
|
|
|
effects = proof.get("tool_effects", {})
|
|
require(effects.get("gateway_runtime_started") is True, errors, "gateway_runtime_started")
|
|
for key in (
|
|
"provider_call_from_this_route",
|
|
"profile_exposure_changed",
|
|
"mcp_registered",
|
|
"archive_delete_performed",
|
|
"raw_payload_storage_created",
|
|
"product_ready_claim_made",
|
|
):
|
|
require(effects.get(key) is False, errors, f"forbidden_effect:{key}")
|
|
|
|
for snippet in (
|
|
"No credentials or secrets",
|
|
"No Profile Exposure",
|
|
"raw payload storage",
|
|
"Product Ready claim",
|
|
"bte-work-019",
|
|
):
|
|
require(snippet in md, errors, f"md_missing:{snippet}")
|
|
|
|
result = {
|
|
"ok": not errors,
|
|
"validator": "svrnty-vision-bte-provider-gateway-refresh-v1",
|
|
"checked": [str(PROOF.relative_to(ROOT)), str(MD.relative_to(ROOT))],
|
|
"errors": errors,
|
|
}
|
|
print(json.dumps(result, indent=2))
|
|
return 0 if not errors else 1
|
|
|
|
|
|
if __name__ == "__main__":
|
|
raise SystemExit(main())
|