Implementation status
Every row cites the code, test or decision it rests on. "Implemented" means
the behaviour exists in services/* with tests; it does not mean it has run in
production or against real partner traffic. Demo-only means it exists only as
simulated or in-browser code. See Contributing to the docs
for how labels are assigned.
Capabilities
| Capability | Status | Evidence |
|---|---|---|
| Player sign-in (passkey, password, social) through Nest and the IAM | Implemented | ADR 0024, oidc.service.ts |
| No player email, name or phone held by PlayerPal | Implemented in code and tests; live social sign-in hop not yet captured | ADR 0012, oidc.claims.spec.ts, Personal data |
| Linking and pairwise aliases | Implemented | ADR 0027, linking.controller.ts, link-intent.service.spec.ts |
| Unlink and Delete Account | Implemented | ADR 0030, identity-delete.spec.ts |
| Activity batches and uploads | Implemented, behind the shared machine key (no per-partner credentials yet) | activity.controller.ts, activity.controller.spec.ts |
Partner fact ingest (/v1/ingest, HMAC or partner OAuth) | Implemented | ingest.controller.ts, Partner quickstart |
| Points earning (ledger credits) | Implemented, credit only | points-ledger.entity.ts |
| Points redemption, debit and reversal in the API | Proposed | Reward redemption lifecycle |
| Player shop, reward vault, store back office | In progress (demo only), unmerged branch feat/player-shop | Reward redemption lifecycle |
| Partner KPIs through Cube | Implemented, over seeded and simulated data | ADR 0033, kpi.catalogue.ts, Metric definitions |
| Network comparison and benchmarks with anonymity floors | Implemented | comparison.math.ts |
| AI insights and Ask | Implemented as deterministic rules; no language model | detectors.ts, ask.service.ts |
| Operator, provider, affiliate and staff portal sign-in | In progress (demo only): simulated sign-in | portals.md |
| Workforce SSO for staff and partner staff | Proposed | authentication.md |
| Embeddable PlayerPal widget | In development: versioned releases are served by the API; the game-side integration exists only in demo code | ADR 0025, playerpal-widget |
| Casino play continues when PlayerPal is unavailable | Decided; reference outbox implemented in the demo provider; no end-to-end test | ADR 0015, Availability |
| Reward-partner role and portal | Proposed (docs only) | ADR 0001 |
| Go data-plane workers | Proposed | services/worker |
| Public documentation site | Proposed | ADR 0034 |
Pages by status
Generated from each page's status front matter.
Implemented (16)
- Insights and Ask Available · verified at
d96759d - Metric dictionary Available · verified at
d96759d - Partner analytics Available · verified at
d96759d - Privacy thresholds Available · verified at
d96759d - Contributing to the docs Available · verified at
53fd444 - Writing style and page kit Available · verified at
4c229d7 - Authenticate API calls Available · verified at
76c1f85 - Design for availability Available · verified at
76c1f85 - Send daily facts Available · verified at
76c1f85 - Idempotency, retries and errors Available · verified at
76c1f85 - Read KPIs Available · verified at
76c1f85 - Link players Available · verified at
76c1f85 - Quickstart Available · verified at
d96759d - Send player activity Available · verified at
76c1f85 - Privacy Available · verified at
d96759d - Security Available · verified at
d96759d
In progress (4)
- Player link notices In development · demo · verified at
76c1f85 - Embed the PlayerPal widget In development · demo · verified at
76c1f85 - Points and rewards In development · verified at
d96759d - Reward redemption lifecycle In development · demo · verified at
53fd444
Proposed (1)
- For reward partners Planned · verified at
d96759d
No page-level status (72)
- ADR NNNN: Title
- Partner API authentication
- Partner fact ingestion (`POST /v1/ingest`)
- Partner KPI API
- Architecture
- Authentication
- Authorization
- Semantic / conventional commits
- Data model
- ADR 0001. Generic Party Model
- ADR 0002. Random Pairwise External IDs (not derived from internal UUID)
- ADR 0003. Authenticate at a Boundary Point, Not Per-Action
- ADR 0004. Async-First Ingestion (Control Plane vs. Data Plane)
- ADR 0005. Phased Event-Log Infrastructure
- ADR 0006. Large Batches via Object Storage + Manifest, Not One Giant HTTP Payload
- ADR 0007. Versioned/Snapshotted Campaign Configuration
- ADR 0008. At-Least-Once Delivery + Idempotent Processing (Not Exactly-Once)
- ADR 0009. Mandatory One-Time Link Before Any Data Reaches PlayerPal
- ADR 0010. Linking to an Existing PlayerPal Account Unifies Relationships
- ADR 0011. IAM Authenticates; PlayerPal Owns the Identity Graph
- ADR 0012. Never Receive or Store Player Email, Name or Telephone
- ADR 0013. Typed Pairwise Aliases (`pp_plr_`, `pp_plr_opr_`, `pp_plr_prv_`, …)
- ADR 0014. Provider Aliases Are Provider-Operator Scoped
- ADR 0015. PlayerPal Is an Async Loyalty Sidecar
- ADR 0016. BFF Cookie Sessions and Machine OAuth
- ADR 0017. Operator Linking via Signed Assertion and PlayerPal Popup
- ADR 0018. URL-Isolated Portals, No In-Product Role Picker
- ADR 0019. Scoped Bootstrap Proofs and Controlled Merge
- ADR 0020. Assurance Levels A0-A3; Password-Only Is Provisional
- ADR 0021. NestJS Control Plane + ZITADEL Local POC (Google IdP)
- ADR 0022. Official ZITADEL Login App Fork for Portal Sign-In
- ADR 0023. TypeORM Owns Nest Data Access and DDL
- ADR 0024. Nest-Owned Portal Auth (Session API + Social IdP Intents)
- ADR 0025. Provider Launch Sessions and PlayerPal Widget Distribution
- ADR 0026. Random Analytics Subject and Provider-Global Cohort (not alias)
- ADR 0027. Mint aliases at link complete for listed integrations
- ADR 0028. v1 recovery is codes, passkeys, and linked factors
- ADR 0029. Application-native authorization until a second service needs shared policy
- ADR 0030. Unlink and Delete Account live on the PlayerPal Account
- ADR 0031. Group Connected partners; confirm names the cascade
- ADR 0032. Demo Bucks unlink notice and alias reconcile
- ADR 0033. Partner KPI Platform: Visibility Tiers, Anonymous Comparison, Cube Behind Nest
- ADR 0034. Documentation site: Docusaurus, OpenAPI, Scalar; internal first
- Architecture Decision Records
- Changelog · verified at
76c1f85 - Developers · verified at
76c1f85 - Onboard as a partner · verified at
76c1f85 - Identity
- Ingestion and availability
- KPIs
- Linking and bootstrap
- Loyalty
- Neon Nexus integration
- Neon Nexus play-money mathematics
- Neon Nexus presentation (provider-game-demo)
- Neon Nexus crash recovery
- Neon Nexus three-mode verification
- Open questions
- Portals
- Business value · verified at
d96759d - Capabilities · verified at
d96759d - Frequently asked questions · verified at
d96759d - For affiliates · verified at
d96759d - For game providers · verified at
d96759d - For operators · verified at
d96759d - Glossary · verified at
d96759d - How PlayerPal works · verified at
d96759d - What is PlayerPal · verified at
d96759d - Player experience · verified at
d96759d - PlayerPal documentation
- Personal data · verified at
53fd444 - Implementation status · verified at
53fd444