Features and Entitlements
Summary
Platform separates product packaging, tenant-specific entitlement, and runtime feature state. Effective access is resolved from tenant/subscription state, tenant overrides, plan inclusion, and core defaults in a defined order.
Audience
- Platform and customer administrators
- Implementation partners, developers, QA engineers, architects, and product owners
Purpose
Use this model to answer why a feature is available without conflating catalog configuration, commercial packaging, tenant exceptions, or runtime flags.
Architecture
Business concepts
- Feature catalog — Implemented: provides grouping, feature identity, type, module association, active state, premium marker, and default behavior.
- Product packaging — Implemented: plan features declare inclusion and optional limit/value metadata.
- Tenant entitlement — Implemented: a client-linked override can grant or deny a feature and may carry a value or effective end.
- Grant and deny — Implemented: an active tenant override takes precedence over plan inclusion when the tenant/subscription is not restricted.
- Module — Implemented / Transitional: catalog categories group features, while tenant module records materialize effective enablement.
- Runtime feature flag — Implemented / Transitional: tenant-scoped flag records are separate from the catalog entitlement calculation and can be reconciled from effective access.
- Licensing relationship — Implemented boundary: tenant/subscription restriction affects effective features; license reconciliation reflects subscription/tenant status. Final cross-service enforcement requires confirmation.
Technical implementation
The entitlement service computes current access for a linked tenant. Suspended or expired conditions are evaluated before tenant overrides and plan inclusion. Otherwise, explicit grant/deny overrides precede plan inclusion, followed by core defaults. Reconciliation materializes module and feature-flag records and aligns a client license with current subscription/tenant state.
Removing an override marks it removed from effective evaluation; it does not delete the historical record. Catalog activation, plan entitlement updates, tenant overrides, limits, and runtime resolution all have source-confirmed endpoint support.
Source References
microservices/src/platform-service/Api/PlatformEntitlementEndpoints.csmicroservices/src/platform-service/Api/PlatformFeatureManagementEndpoints.csmicroservices/src/platform-service/Domain/Entities/FeatureCatalog.csmicroservices/src/platform-service/Domain/Entities/FeatureCategory.csmicroservices/src/platform-service/Domain/Entities/Feature.csmicroservices/src/platform-service/Domain/Entities/PlanFeature.csmicroservices/src/platform-service/Domain/Entities/TenantFeature.csmicroservices/src/platform-service/Domain/Entities/FeatureFlag.csmicroservices/src/platform-service/Domain/Entities/Module.cs
Related Articles
See Also
Keywords
- Product packaging
- Tenant grant
- Tenant deny
- Runtime feature flag
Revision Information
- Status: Draft
- Last reviewed: 2026-07-14
- Review cycle: Quarterly