What it does: Central decisions (PDP) + per-field obligations at resolve time (PEP).
Unifies: Identity + data policy—same query, different answers by role/attrs/risk.
Analyst AI is disabled by policy; Admin can see AI-enabled responses when permitted.
Field-level masking & actions in the APIGQL control plane UI. The same PDP decision that hides email for an analyst also denies the destructive Delete Order action.
DSAR export call traced via OpenTelemetry in Jaeger. A /compliance/.../dsar POST
completes in ~1.5 ms with all HTTP and network tags attached for audit and SRE debugging.
APIGQL keeps zero-trust and DSAR readiness in the path, but it’s designed so that PDP calls, masking, and OpenTelemetry add predictable, bounded overhead rather than surprise tax.
The control plane acts as your Policy Decision Point via a decidePdp function that evaluates:
subject (who is calling), action (read, create, delete, invoke for AI),
resource (GraphQuery, DSAR, orders, etc.), and rich context such as the
exact GraphQL selections requested.
allow: false — a zero-trust baseline.create, delete,
and introspection; DSAR actions are limited to admin / privacy roles.isAnalyst && isAI can be refused up front.read, the PDP returns
obligations.mask = ["userEmail", …] instead of just allow: true.The same decision is enforced at two layers so you don’t have to re-implement security in every microservice:
enforcePdp first.
If the decision is not allowed, the request ends with 403 Forbidden before any
backend is touched. A global onRequest hook verifies JWTs when enabled.obligations.mask to redact or drop fields
as it resolves data — field-level PEP at the gateway / subgraph layer.Security is in the hot path, but the design keeps latency under control:
Observability is wired to the same decisions, without putting the collector on your critical path:
tagPdpDecision and tagDsarSpan
attach the decision (allow flag, reason, resource, obligations) as attributes on every OpenTelemetry span.Net effect: you get zero-trust by default, field-level masking, and DSAR-ready traces with a security cost that is designed to be small, predictable, and explainable to both your SREs and your auditors.