From pain to proof: five classic failure modes of “glue code.” AIGQLUnify collapses them into a single governed, observable runtime. Below are runnable cURL playbooks and two example drifts that cost teams real money.
# Replace host/ids/roles as needed
curl -sS -X POST https://<cp-host>/pdp/decision.v2 \
-H "content-type: application/json" \
-d '{
"tenant":"t_demo",
"workspace":"ws_primary",
"action":"read",
"resource":{"type":"GraphQuery","name":"orders"},
"context":{"role":"analyst","selection":["orders.id","orders.total","orders.userEmail"]}
}' | jqai:false).curl -sS https://<dp-host>/graphql \
-H "content-type: application/json" \
-H "x-tenant-id: t_demo" \
-H "x-workspace-id: ws_primary" \
-H "authorization: Bearer <jwt>" \
-d '{"query":"query { orders { id total userEmail } }"}' | jq# Create export
curl -sS -X POST https://<cp-host>/compliance/t_demo/ws_primary/dsar \
-H "content-type: application/json" \
-d '{"type":"export","subjectId":"user:123"}' | jq
# List requests
curl -sS https://<cp-host>/compliance/t_demo/ws_primary/dsar | jq
# Download artifact (when ready)
curl -L https://<cp-host>/compliance/t_demo/ws_primary/dsar/<id>/artifact -o dsar.zip“Policy lives in a wiki” is how drift starts. AIGQLUnify evaluates policy at resolve time, stamps decisions into spans, and gates AI features behind obligations. Same query, different answers by role/attrs/risk—recorded.
# Analyst vs Admin
curl -sS -X POST https://<cp-host>/pdp/decision.v2 \
-H "content-type: application/json" \
-d '{
"tenant":"t_demo","workspace":"ws_primary",
"action":"read","resource":{"type":"GraphQuery","name":"orders"},
"context":{"role":"analyst","selection":["orders.id","orders.userEmail","orders.total"]}
}' | jq
curl -sS -X POST https://<cp-host>/pdp/decision.v2 \
-H "content-type: application/json" \
-d '{
"tenant":"t_demo","workspace":"ws_primary",
"action":"read","resource":{"type":"GraphQuery","name":"orders"},
"context":{"role":"admin","selection":["orders.id","orders.userEmail","orders.total"]}
}' | jqCompare allowFields, mask, and features.ai. Then hit /graphql to see the runtime effect.
Hand-rolled glue quietly diverges from specs. AIGQLUnify ingests OpenAPI, generates SDL, and publishes a versioned plan—so clients, policy, and telemetry speak the same shape. Diffs are explicit; roll forward/back safely.
# List published plans
curl -sS https://<cp-host>/plans | jq
# Get specific plan + SDL etag
curl -sS https://<cp-host>/plans/plan_2025_11_15T02_12Z | jq
# Optional: compare SDLs client-side to flag breaking changesSurface diffs before they break consumers; keep PDP bound to the same versioned shape.
The “glue” around your APIs tends to fail in the same ways. AIGQLUnify doesn’t just add another gateway — it replaces four recurring patterns with a single, governed runtime.
Every new client meant another hand-rolled adapter: different auth headers, pagination quirks, partial responses. Over time, teams ended up debugging glue instead of shipping features.
One service spoke OAuth scopes, another SAML groups, a third IP allow-lists. “Who can see this field?” depended on the hop you hit first, not a single, auditable policy.
WAF rules, sidecars, and custom middlewares tried to “wrap” existing APIs, but new paths and params kept sneaking around them. Telemetry never showed what had actually been redacted.
LLMs were wired “off to the side,” past the gateway and past the PDP. They saw raw payloads and sometimes cached them, making it impossible to prove what data fed which prompt.