import os
import requests
import json
AUDIT_TOKEN = os.environ["QCOS_AUDIT_TOKEN"]
BASE_URL = "https://api.softquantus.com"
HEADERS = {"Authorization": f"Bearer {AUDIT_TOKEN}", "Content-Type": "application/json"}
ORG = "org_client_xyz"
PERIOD = {"from": "2025-01-01", "to": "2025-03-31"}
# 1. Collect all jobs
jobs = requests.get(
f"{BASE_URL}/api/v1/audit/jobs",
headers=HEADERS,
params={**PERIOD, "organisation_id": ORG, "include": "evidence,billing"}
).json()
print(f"Total jobs in scope: {jobs['total']}")
# 2. Verify all evidence bundles
pass_count = fail_count = 0
for job in jobs["items"]:
verify = requests.post(
f"{BASE_URL}/api/v1/verify/evidence",
headers={"Authorization": f"Bearer {AUDIT_TOKEN}"},
json={"job_id": job["job_id"]}
).json()
if verify["valid"]:
pass_count += 1
else:
fail_count += 1
print(f" ⚠️ INVALID evidence for job {job['job_id']}")
print(f"Evidence verification: {pass_count} PASS / {fail_count} FAIL")
# 3. Generate final audit PDF
pdf_resp = requests.post(
f"{BASE_URL}/api/v1/audit/report",
headers=HEADERS,
json={
"organisation_id": ORG,
**PERIOD,
"sections": ["jobs_summary", "evidence_verification", "acos_status", "dri_history", "billing", "compliance"],
"format": "pdf",
"compliance_frameworks": ["NIST_CSF", "ISO_27001", "DORA"]
}
)
pdf_resp.raise_for_status()
with open("quantum_audit_report_q1_2025.pdf", "wb") as f:
f.write(pdf_resp.content)
print("\n📄 Audit report saved: quantum_audit_report_q1_2025.pdf")