Resolve Customer Account question; add commercial subscription research

Record B2B SaaS subscriber tenancy and Stripe billing source notes. Resolve
the Customer Account open question: reject it as canonical, add Commercial
Record and Commercial Relationship to the Record and relationship layers, and
document Subscriber as a convenience term only.
This commit is contained in:
2026-06-21 20:35:36 +02:00
parent 1c1b5c9bc6
commit 3ccf841095
11 changed files with 345 additions and 26 deletions

View File

@@ -15,9 +15,14 @@ later explicit package is extracted.
- Separate Natural Person, Account, Profile, Credential, and Principal in
user-management schemas. Corpus confirms SCIM/LDAP use "user" for records,
Keycloak/ZITADEL for accounts.
- Model Tenant as Scope; relate explicitly to Organization, Customer, Vendor,
and Realm. ZITADEL org-as-tenant and Keycloak realm-as-namespace are common
mapping patterns.
- Model Tenant as Scope; relate explicitly to Organization, Customer role, Vendor
role, Commercial Relationship, and Realm. ZITADEL org-as-tenant and Keycloak
realm-as-namespace are common mapping patterns.
- Store Stripe Customer / CRM Account as Commercial Record; link to Tenant and
Organization via Identifier binding. Do not create a `customer_account` table
that merges billing and login semantics.
- Map Auth0/Stytch "subscriber" to Organization + Customer role + Tenant; treat
Subscriber as convenience label only.
- Store Synonymity Assertions with relation type, strength, scope, evidence,
source system, lifecycle state, and privacy classification. Never default to
destructive merge for duplicate detection.
@@ -86,6 +91,8 @@ later explicit package is extracted.
- Do not use MDM golden-record merge as default linking behavior.
- Do not collapse Realm, Tenant, and Organization into one table without
relationship modeling.
- Do not introduce `CustomerAccount` as a canonical type; use Commercial Record
for billing and Organization + Customer role for subscribing parties.
## Suggested Adapter Inventory
@@ -98,4 +105,6 @@ later explicit package is extracted.
| Cedar / Cerbos | Principal, Resource, Action, Context | Role, derived ownership |
| ActivityPub / FOAF | Actor, Profile, Following | — |
| DID / VC | Identifier, Credential, Claim | Trust relationship |
| Entity resolution | Synonymity Assertion | — |
| Entity resolution | Synonymity Assertion | — |
| Stripe / CRM billing | Commercial Record, Commercial Relationship | Subscription state |
| Auth0 / Stytch B2B | Organization, Customer role, Tenant, Membership | Account, Subscriber label |