Skip to main content

PTI Conformance Tests

This document defines test categories, pass criteria, and checklists for PTI self-assessment and accredited certification. Tests reference normative RFC requirements.

Test methodology

TypeToolingWho runs
Automated contractOpenAPI-driven HTTP tests, JSON Schema validationCI + lab
Automated negativeFuzzing, entitlement bypass attemptsLab
Manual proceduralDSAR walkthrough, key rotation drillLab + operator
Soak / performanceLoad on lookup pathEnterprise+ optional

Pass criterion: 100% mandatory tests pass for declared profile. Optional capabilities tested only if claimed.

Test environment

  • Sandbox tenant with seed data kit pti-test-fixtures-v1
  • At least three subjects: pti_test_alpha, pti_test_beta, pti_test_gamma
  • Two producers with disjoint context entitlements
  • One consumer with partial context entitlement (for negative tests)

Category A — Architecture (RFC-001)

IDTestPass criteria
A-01Role separationProducer credential cannot call consumer-only endpoints
A-02Lifecycle ingest→lookupEvent accepted → outcome updates → report references event
A-03Fail-closed policyDisabled context ingest returns context_not_enabled
A-04Sandbox isolationSandbox report IDs invalid in production verify

Checklist:

  • A-01 pass
  • A-02 pass
  • A-03 pass
  • A-04 pass

Category B — Trust Contexts (RFC-002)

IDTestPass criteria
B-01Primary catalogueAll claimed primaries validate context_id format
B-02Lens rejection on ingestEvent with lens context_id rejected at ingest
B-03IsolationLending event does not alter merchant score
B-04Consumer entitlementLookup with non-entitled context returns context_not_entitled
B-05Lens derivation flagLens outcomes show derived: true in evidence

Checklist:

  • B-01 through B-05 pass

Category C — Trust Events (RFC-003)

IDTestPass criteria
C-01Required fieldsMissing event_type → 400 validation error
C-02IdempotencyDuplicate idempotency_key returns same event_id, single graph edge
C-03occurred_at boundsEvent 11 years old rejected
C-04Prohibited payloadPAN in payload rejected
C-05Channel attributionWebhook-delivered event has ingest_channel: webhook
C-06Compensating eventReversal event adjusts outcome with audit trail

Checklist:

  • C-01 through C-06 pass
  • CSV batch reports row errors without silent drop (Enterprise+)

Category D — Trust Lookup API (RFC-004)

IDTestPass criteria
D-01Search strong IDReturns pti_test_alpha at confidence ≥ 0.95
D-02Ambiguous weak IDReturns ambiguous without auto-select
D-03Generate detailedResponse includes scores, drivers, trust_evidence
D-04Consent gateMissing consent_ref returns consent_required when policy on
D-05Tier enforcementscreening_dossier without entitlement fails
D-06Report immutabilitySecond reports.get returns identical manifest hash
D-07Async handlingIf 202 returned, status_url resolves to terminal state

Checklist:

  • D-01 through D-07 pass

Category E — Trust Graph (RFC-005)

IDTestPass criteria
E-01Orphan rejectionInternal ingest cannot create event without subject link
E-02Explain outcomeexplain_outcome lists source events matching drivers
E-03Signal versioningReprocessing creates new signal_id, preserves old
E-04Point-in-timeHistorical report_id reconstructs same scores

Checklist:

  • E-01 through E-04 pass

Category F — Trust Exchange (RFC-006, Enterprise+ optional / Government mandatory)

IDTestPass criteria
F-01Package signatureValid package verifies; tampered bytes fail
F-02Foreign PTI-ID formatpti_x@op_test parsed correctly
F-03RevocationRevoked manifest_id returns verification_status: revoked
F-04Fail closedInvalid signature excludes package from consumer fields
F-05PRL pollingSimulated revocation visible within SLA

Checklist:

  • F-01 through F-05 pass (if exchange claimed)

Category G — Governance (RFC-007)

IDTestPass criteria
G-01Consent withdrawLookup blocked within 15 minutes after withdraw
G-02Audit append-onlyTamper attempt detected
G-03Deletion propagationErased subject's events removed from new reports
G-04Adverse action fieldsDetailed report drivers ordered with weights

Checklist:

  • G-01 through G-04 pass
  • DSAR export within published SLA (Enterprise+)

Category H — Security (RFC-008)

IDTestPass criteria
H-01TLS versionTLS 1.1 rejected
H-02Scoped credentialConsumer key cannot ingest events
H-03Rate limitSearch enumeration triggers throttle
H-04Webhook replayOld timestamp signature rejected
H-05Key rotationDual kid acceptance during overlap window

Checklist:

  • H-01 through H-05 pass
  • Pen test report < 12 months old (Enterprise+)

Category I — Privacy (RFC-009)

IDTestPass criteria
I-01Purpose loggingAudit contains purpose_code per lookup
I-02Minimization basicBasic tier has no raw producer payload
I-03Cross-border blockDisallowed region transfer fails closed
I-04DSAR completenessExport includes lookups and consents

Checklist:

  • I-01 through I-04 pass

Category J — Versioning (RFC-010)

IDTestPass criteria
J-01Unknown field toleranceClient ignores new optional field without error
J-02Deprecation headerSunset endpoint returns Deprecation header
J-03Schema versionReport includes schema_version

Checklist:

  • J-01 through J-03 pass

Category K — Identity Resolution (RFC-011)

IDTestPass criteria
K-01Entity binding stabilitySame entity_id always maps same pti_id
K-02Confidence threshold0.70 confidence does not auto-link
K-03Conflict blockConflicting strong IDs route to review, no merge
K-04External routeUnknown subject returns external_route when entitled

Checklist:

  • K-01 through K-04 pass

Category L — Trust Evidence (RFC-012)

IDTestPass criteria
L-01Manifest signatureValid EdDSA/RSA verify on canonical JSON
L-02Verification endpointQR token resolves valid
L-03RedactionNon-entitled context events absent from sources
L-04Lens metadataDerived contexts include feeds_from

Checklist:

  • L-01 through L-04 pass

Category M — Edge profile (Edge only)

IDTestPass criteria
M-01Offline queueEvents ingested offline sync without duplication
M-02Conflict resolutionDocumented conflict yields deterministic outcome
M-03Hub verifyEdge report_id verifiable via hub
M-04Deferred erasureErasure propagates within 72h of sync

Checklist:

  • M-01 through M-04 pass

Test reporting template

## PTI Conformance Test Report

- Operator:
- Profile:
- Spec version:
- Date:

| Category | Pass | Fail | N/A |
|----------|------|------|-----|
| A Architecture | | | |
|| | | |

Mandatory failures:
Remediation plan:
Signed by:

Continuous conformance

Implementers SHOULD run categories A, C, D, L on every release candidate in CI. Full suite SHOULD run quarterly.