- Shipped
- September 28, 2026 at 5:57 AM UTC
- Author
- Kamo
- Commit
- 8f5bc92
KamoUniverse sells Business, Family, Community and Personal plan ladders from the platform org. SecurityService decides which ladder an organization is on, and every place that assumed "the Free plan" or "Enterprise" now asks per universe. - POST /api/security/org takes an optional "universe" (business | family | community | personal, case-insensitive; unknown is a 400). Absent, a branch inherits its parent's unless the parent is the platform or a platform product; otherwise BUSINESS (stored null, like every existing org). - Org payloads (/org/current, /org/{id}, /org/domain/{host}, /org/ref/{ref}) carry "universe" through the entity; the /network rows (my-networks, all-networks) carry it too. "BUSINESS" for every org that predates universes. - /pos/subscription-catalog and /pos/subscription-promotions take ?universe=. Absent is BUSINESS, so kamocrm.com and the public proxy see exactly today's catalog. List prices are withheld from every plan_type CUSTOM plan, not only the one coded ENTERPRISE. - EntitlementService: the Free floor is the member org universe's Free plan (a family's floor no longer carries the CRM); a trial grants the whole catalog for BUSINESS as before and the universe's top tier elsewhere. - BillingSetupService seeds a new org onto its universe's Free plan, in that universe's market (KamoFamily, ...), instead of FREE in KamoCRM. Needs kamo-shared-library's UniverseType / UniversePlans (pushed first).
