56 lines
1.5 KiB
Bash
Executable File
56 lines
1.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
BASE_URL="${1:-http://127.0.0.1:8100}"
|
|
|
|
contracts_json="$(curl -fsS "${BASE_URL}/api/v1/ops/contracts")"
|
|
|
|
echo "[1/3] ops contracts registry"
|
|
printf '%s\n\n' "${contracts_json}"
|
|
|
|
echo "[2/3] condensed summary"
|
|
python3 - <<'PY' "${contracts_json}"
|
|
import json
|
|
import sys
|
|
|
|
payload = json.loads(sys.argv[1])
|
|
data = payload.get("data") or {}
|
|
contracts = list(data.get("contracts") or [])
|
|
|
|
summary = {
|
|
"registry_version": str(data.get("registry_version") or ""),
|
|
"schema_version": str(data.get("schema_version") or ""),
|
|
"contracts_total": len(contracts),
|
|
"contract_keys": [str(item.get("key") or "") for item in contracts if str(item.get("key") or "")],
|
|
"docs_root": str(data.get("docs_root") or ""),
|
|
"discovery_entrypoints": list(data.get("discovery_entrypoints") or []),
|
|
}
|
|
|
|
print(json.dumps(summary, ensure_ascii=False, indent=2))
|
|
PY
|
|
echo
|
|
|
|
echo "[3/3] contract rows"
|
|
python3 - <<'PY' "${contracts_json}"
|
|
import json
|
|
import sys
|
|
|
|
payload = json.loads(sys.argv[1])
|
|
data = payload.get("data") or {}
|
|
contracts = list(data.get("contracts") or [])
|
|
|
|
rows = [
|
|
{
|
|
"key": str(item.get("key") or ""),
|
|
"version": str(item.get("version") or ""),
|
|
"status": str(item.get("status") or ""),
|
|
"primary_endpoint": str(item.get("primary_endpoint") or ""),
|
|
"schema_doc_path": str(item.get("schema_doc_path") or ""),
|
|
"consumers": list(item.get("consumers") or []),
|
|
}
|
|
for item in contracts
|
|
]
|
|
|
|
print(json.dumps(rows, ensure_ascii=False, indent=2))
|
|
PY
|