- Shipped
- 23 Aprili 2026, 20:22 UTC
- Author
- Kamo
- Commit
- b95bafe
- EntitlementService computes per-member feature grants by unioning active BillingGroupLicense plan features + KamoCRM Free-tier baseline. Caches 15-minute projections in Redis keyed on memberId. - EntitlementInvalidationListener subscribes to the kamo.entitlements.invalidate Redis channel (MEMBER:/GROUP:/ORG: payloads) so BillingService mutations propagate immediately. - EntitlementController at /api/security/entitlements exposes /me, **************** and a cache-invalidation POST. - SecurityModelMarketController at **************** attaches/detaches CommerceMarkets to a ChildOrgSecurityModel and flips the Public / Member / Team-Member scope booleans.