Skip to main content

Overview

The compliance client provides tools for regulatory compliance reporting. Generate org-wide summaries, export grants and audit entries, and produce evidence packs with built-in chain integrity verification for SOC 2 and GDPR audits. Access the compliance client via client.compliance.

Get Summary

Generate an org-wide compliance summary with counts of agents, grants, audit entries, and policies:
from grantex import Grantex

with Grantex(api_key="gx_live_...") as client:
    summary = client.compliance.get_summary(
        since="2026-01-01T00:00:00Z",
        until="2026-02-01T00:00:00Z",
    )

    print(f"Generated at: {summary.generated_at}")
    print(f"Plan: {summary.plan}")
    print(f"Agents: {summary.agents}")
    print(f"Grants: {summary.grants}")
    print(f"Audit entries: {summary.audit_entries}")
    print(f"Policies: {summary.policies}")

Parameters

ParameterTypeRequiredDescription
sincestr | NoneNoISO 8601 start timestamp for the report.
untilstr | NoneNoISO 8601 end timestamp for the report.
Both parameters are keyword-only.

ComplianceSummary

FieldTypeDescription
generated_atstrISO 8601 timestamp when the report was generated.
agentsdict[str, int]Agent counts (e.g. {"total": 5, "active": 4}).
grantsdict[str, int]Grant counts by status.
audit_entriesdict[str, int]Audit entry counts.
policiesdict[str, int]Policy counts.
planstrCurrent billing plan.
sincestr | NoneReport start timestamp (if filtered).
untilstr | NoneReport end timestamp (if filtered).

Export Grants

Export all grants with optional filters for compliance reporting:
from grantex import Grantex, ComplianceExportGrantsParams

with Grantex(api_key="gx_live_...") as client:
    export = client.compliance.export_grants(
        ComplianceExportGrantsParams(
            since="2026-01-01T00:00:00Z",
            status="active",
        )
    )

    print(f"Generated at: {export.generated_at}")
    print(f"Total grants: {export.total}")
    for grant in export.grants:
        print(f"  {grant.id}: {grant.scopes} ({grant.status})")

ComplianceExportGrantsParams

FieldTypeRequiredDescription
sincestr | NoneNoISO 8601 start timestamp.
untilstr | NoneNoISO 8601 end timestamp.
statusstr | NoneNoFilter by status ("active", "revoked", "expired").

ComplianceGrantsExport

FieldTypeDescription
generated_atstrISO 8601 generation timestamp.
totalintTotal number of exported grants.
grantstuple[Grant, ...]The exported grant records.

Export Audit

Export all audit entries with optional filters:
from grantex import Grantex, ComplianceExportAuditParams

with Grantex(api_key="gx_live_...") as client:
    export = client.compliance.export_audit(
        ComplianceExportAuditParams(
            since="2026-01-01T00:00:00Z",
            agent_id="agt_abc123",
            status="success",
        )
    )

    print(f"Generated at: {export.generated_at}")
    print(f"Total entries: {export.total}")
    for entry in export.entries:
        print(f"  [{entry.timestamp}] {entry.action} - {entry.status}")

ComplianceExportAuditParams

FieldTypeRequiredDescription
sincestr | NoneNoISO 8601 start timestamp.
untilstr | NoneNoISO 8601 end timestamp.
agent_idstr | NoneNoFilter by agent ID.
statusstr | NoneNoFilter by status ("success", "failure", "blocked").

ComplianceAuditExport

FieldTypeDescription
generated_atstrISO 8601 generation timestamp.
totalintTotal number of exported entries.
entriestuple[AuditEntry, ...]The exported audit entries.

Evidence Pack

Generate a full compliance evidence pack with chain integrity verification. Evidence packs are designed for SOC 2 and GDPR audits:
from grantex import Grantex, EvidencePackParams

with Grantex(api_key="gx_live_...") as client:
    pack = client.compliance.evidence_pack(
        EvidencePackParams(
            since="2026-01-01T00:00:00Z",
            until="2026-02-01T00:00:00Z",
            framework="soc2",
        )
    )

    print(f"Framework: {pack.meta.framework}")
    print(f"Schema version: {pack.meta.schema_version}")
    print(f"Generated at: {pack.meta.generated_at}")
    print(f"Summary: {pack.summary}")
    print(f"Grants: {len(pack.grants)}")
    print(f"Audit entries: {len(pack.audit_entries)}")
    print(f"Policies: {len(pack.policies)}")
    print(f"Chain integrity valid: {pack.chain_integrity.valid}")
    print(f"Entries checked: {pack.chain_integrity.checked_entries}")

EvidencePackParams

FieldTypeRequiredDescription
sincestr | NoneNoISO 8601 start timestamp.
untilstr | NoneNoISO 8601 end timestamp.
frameworkstr | NoneNoCompliance framework ("soc2", "gdpr", "all").

EvidencePack

FieldTypeDescription
metaEvidencePackMetaPack metadata (schema, framework, timestamps).
summarydict[str, Any]Aggregate statistics.
grantstuple[Grant, ...]All grants in the time window.
audit_entriestuple[AuditEntry, ...]All audit entries in the time window.
policiestuple[Policy, ...]All active policies.
chain_integrityChainIntegrityResult of chain integrity verification.

EvidencePackMeta

FieldTypeDescription
schema_versionstrEvidence pack schema version.
generated_atstrISO 8601 generation timestamp.
frameworkstrCompliance framework used.
sincestr | NoneReport start timestamp (if filtered).
untilstr | NoneReport end timestamp (if filtered).

ChainIntegrity

FieldTypeDescription
validboolWhether the audit chain is intact.
checked_entriesintNumber of entries verified.
first_broken_atstr | NoneISO 8601 timestamp of the first broken link (if any).