Conflict-of-Interest IAM Permissions Matrix
Conflict-of-Interest IAM Permissions Matrix
This document is GENERATED directly from src/schema/iam_policy.py. Do not edit manually.
Structural Invariant: Four Service Accounts & Four Conflict Boundaries
Rule: No Service Account may hold two permissions from
{artist identity, buyer terms, evidence, revocation}.
Paired Positive Enforcement: Every cell asserting
DENIEDis tested alongside its correspondingPERMITTEDoperation in CI.
| Agent Role | Service Account Email | Conflict Domain | Permitted Collections (Positive) | Denied Collections (Negative) |
|---|---|---|---|---|
| Rights Custodian | rights-custodian-sa@hodi-2026.iam.gserviceaccount.com |
identity |
worksartistscontrol_proofs |
buyer_termscrawler_accesscanariesrevocation_noticesrevocation_outbox |
| Licensing Negotiator | licensing-negotiator-sa@hodi-2026.iam.gserviceaccount.com |
buyer_terms |
buyer_terms (Requires filter: counterparty_id) receiptsgrants (Requires filter: counterparty_id) |
artistsworkscrawler_accesscanariesrevocation_noticesrevocation_outbox |
| Evidence Agent | evidence-agent-sa@hodi-2026.iam.gserviceaccount.com |
evidence |
crawler_accesscanariesevidence_recordscanary_hitsverbatim_matchesredistribution_findingsaccrual_audits |
artistsbuyer_termsgrantsrevocation_noticesrevocation_outbox |
| Revocation Propagator | revocation-propagator-sa@hodi-2026.iam.gserviceaccount.com |
revocation |
grantsrevocation_noticesrevocation_outbox |
artistsbuyer_termscrawler_accesscanaries |
| Consent Arbiter | consent-arbiter-sa@hodi-2026.iam.gserviceaccount.com |
adjudication |
incidentsincident_assertionsnegotiation_freezes |
artistsworkscontrol_proofsbuyer_termsgrantscrawler_accesscanariesevidence_recordsrevocation_noticesrevocation_outboxreceipts |
| Sandbox Agent | sandbox-agent-sa@hodi-2026.iam.gserviceaccount.com |
sandbox |
demo_grantsdemo_revocation_noticesdemo_revocation_outboxdemo_worksdemo_leases |
grantsworksartistscontrol_proofsbuyer_termscrawler_accesscanariesevidence_recordsrevocation_noticesrevocation_outboxreceiptscounterparty_credentialsleasesincidents |
Judge Verification (Under 30 Seconds)
Inspect src/schema/iam_policy.py and tests/test_*_iam.py to verify that each SA receives PERMISSION_DENIED on forbidden collections while successfully performing permitted operations.