Skip to main content

Production Conformance Status

The Grantex hosted service at grantex-auth-dd4mtrt2gq-uc.a.run.app is continuously validated against the full conformance suite. Below are the latest results.
45 passed, 0 failed — 42 core + 3 optional principal-sessions tests in ~80s
Last run: March 1, 2026 | Conformance suite version: 0.1.3

Core Suites (42 tests)

health — Health check and JWKS endpoints

TestStatusSpec
GET /health returns 200 with status okPass§3.3
JWKS endpoint has RS256 keysPass§10

agents — Agent registration and management (CRUD)

TestStatusSpec
POST /v1/agents creates agent with agentId and didPass§10
GET /v1/agents lists agentsPass§10
GET /v1/agents/:id returns agent detailsPass§10
PATCH /v1/agents/:id updates agentPass§10
DELETE /v1/agents/:id returns 204Pass§10
TestStatusSpec
POST /v1/authorize returns authRequestId, consentUrl, expiresAt (201)Pass§5.1
POST /v1/authorize rejects missing required fields (400)Pass§5.1
POST /v1/authorize rejects non-existent agent (404)Pass§5.1
Consent approval produces authorization codePass§5.2

token — Token exchange and refresh

TestStatusSpec
POST /v1/token exchanges code for grantToken, refreshToken, grantId, scopes, expiresAtPass§5.3
POST /v1/token rejects invalid code (400)Pass§5.3
POST /v1/token rejects reused code (400)Pass§5.3
POST /v1/token/refresh exchanges refresh token for new grant tokenPass§7.4
POST /v1/token/refresh rejects used refresh token (400)Pass§7.4

tokens — Token verification and revocation

TestStatusSpec
POST /v1/tokens/verify returns valid=true for active tokenPass§7.2
POST /v1/tokens/revoke returns 204Pass§7.3
POST /v1/tokens/verify returns valid=false after revocationPass§7.3
POST /v1/tokens/verify returns valid=false for garbage tokenPass§7.2

grants — Grant listing, retrieval, and revocation

TestStatusSpec
GET /v1/grants lists grantsPass§7.1
GET /v1/grants/:id returns grant detailsPass§7.1
DELETE /v1/grants/:id returns 204Pass§7.1
Grant status is revoked after DELETEPass§7.1

delegation — Grant delegation and scope enforcement

TestStatusSpec
POST /v1/grants/delegate returns 201 with grantTokenPass§9
Delegated JWT contains parentAgt, parentGrnt, delegationDepthPass§9
Delegation rejects scope superset (400)Pass§9
Delegation depth limit is enforcedPass§9
Revoking parent cascades to delegated grantsPass§9

audit — Audit logging with hash chain integrity

TestStatusSpec
POST /v1/audit/log creates entry with entryId, hash, prevHash (201)Pass§8
Hash chain integrity: entry2.prevHash === entry1.hashPass§8
GET /v1/audit/entries returns entries listPass§8
GET /v1/audit/:id returns single entryPass§8
Audit hash is a valid SHA-256 hex stringPass§8

security — Authentication, authorization, and security enforcement

TestStatusSpec
Request without auth returns 401Pass§14
Request with bad auth returns 401Pass§14
JWKS only contains RS256 keysPass§14
Delegation scope enforcement prevents escalationPass§14
Audit log is append-only (PUT/DELETE return 404 or 405)Pass§14

rate-limit-headers — Rate limit headers presence and format

TestStatusSpec
Rate limit headers on authenticated endpointPass§14
Rate limit headers on token verify endpointPass§14
JWKS endpoint exempt from rate limitsPass§14

Optional Extension Suites (28 tests)

policies — Policy CRUD and enforcement

TestStatusSpec
POST /v1/policies creates policy (201)Pass§12
GET /v1/policies lists policiesPass§12
GET /v1/policies/:id returns policy detailsPass§12
PATCH /v1/policies/:id updates policyPass§12
DELETE /v1/policies/:id returns 204Pass§12

webhooks — Webhook registration and management

TestStatusSpec
POST /v1/webhooks creates webhook (201)Pass§11
GET /v1/webhooks lists webhooksPass§11
DELETE /v1/webhooks/:id returns 204Pass§11

scim — SCIM 2.0 provisioning endpoints

TestStatusSpec
POST /v1/scim/tokens creates SCIM token (201)Pass§13
GET /v1/scim/tokens lists SCIM tokensPass§13
GET /scim/v2/ServiceProviderConfig returns configPass§13
POST /scim/v2/Users creates user (201)Pass§13
GET /scim/v2/Users lists usersPass§13
DELETE /scim/v2/Users/:id returns 204Pass§13

sso — SSO configuration and flow

TestStatusSpec
POST /v1/sso/config creates SSO config (201)Pass§13
GET /v1/sso/config returns SSO configPass§13
GET /sso/login requires org parameterPass§13
DELETE /v1/sso/config returns 204Pass§13

anomalies — Anomaly detection and acknowledgement

TestStatusSpec
POST /v1/anomalies/detect runs detection (200)Pass§12
GET /v1/anomalies lists anomaliesPass§12
PATCH /v1/anomalies/:id/acknowledge returns 404 for invalid IDPass§12

compliance — Compliance reporting and evidence export

TestStatusSpec
GET /v1/compliance/summary returns summaryPass§12
GET /v1/compliance/export/grants returns grants exportPass§12
GET /v1/compliance/export/audit returns audit exportPass§12
GET /v1/compliance/evidence-pack returns evidence packPass§12

principal-sessions — Principal session tokens and end-user permissions

TestStatusSpec
POST /v1/principal-sessions returns 201 with sessionToken and dashboardUrlPass§12
POST /v1/principal-sessions returns 400 without principalIdPass§12
Session token can be used to GET /v1/principal/grantsPass§12

Run It Yourself

Validate your own Grantex server:
npx @grantex/conformance \
  --base-url YOUR_SERVER_URL \
  --api-key YOUR_API_KEY \
  --include policies,webhooks,scim,sso,anomalies,compliance,principal-sessions
See the Conformance Suite guide for full documentation.