Skip to main content

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.cs
  • microservices/src/platform-service/Api/PlatformFeatureManagementEndpoints.cs
  • microservices/src/platform-service/Domain/Entities/FeatureCatalog.cs
  • microservices/src/platform-service/Domain/Entities/FeatureCategory.cs
  • microservices/src/platform-service/Domain/Entities/Feature.cs
  • microservices/src/platform-service/Domain/Entities/PlanFeature.cs
  • microservices/src/platform-service/Domain/Entities/TenantFeature.cs
  • microservices/src/platform-service/Domain/Entities/FeatureFlag.cs
  • microservices/src/platform-service/Domain/Entities/Module.cs

See Also

Keywords

  • Product packaging
  • Tenant grant
  • Tenant deny
  • Runtime feature flag

Revision Information

  • Status: Draft
  • Last reviewed: 2026-07-14
  • Review cycle: Quarterly