ModulesDecision memoUpdated 2026-03-02

Per-Tenant Overrides

Customize feature values for individual tenants regardless of their subscribed plan, with full audit trails and optional expiration.

Buyer-readyFounder-grade detailModules

Overrides are the escape hatch that makes your entitlements system flexible enough for the real world. Enterprise deals, promotional offers, beta testing, and regulatory exceptions all require the ability to customize features per-tenant without changing the underlying plan.

Resolution Priority Chain

Overrides sit at the top of the resolution priority chain. When the system resolves a feature value for a tenant, an override always wins — regardless of what the edition or default value says.

Feature Resolution Priority
1. Tenant Override (Highest)
Not set? →
2. Active Subscription → Edition Features
Not set? →
3. Add-on Subscriptions
Not set? →
4. Feature Default Value (Lowest)

Real-World Use Cases

  • Enterprise Custom Deals

    A Fortune 500 client needs 10,000 users on a Pro plan that normally caps at 500. Set an override — no code changes, no custom builds.

  • Promotional Upgrades

    Give a tenant Premium features for 30 days as a promotional offer. Set an expiring override that automatically reverts after the promotion period.

  • Beta Feature Access

    Enable an experimental feature for select tenants before rolling it out to all plans. Override the feature for specific tenants during the beta.

  • Time-Limited Exceptions

    Regulatory requirements may demand temporary feature access. Set an override with an expiration date — the system automatically reverts when it expires.

Setting an Override

Overrides are set via a simple API call. Each override includes the feature, the custom value, an optional expiration date, and a reason for audit purposes.

Override Request ExampleJSON
POST /api/tenant-features/{tenantId}/override
{
  "featureId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "value": "500",
  "expiresAt": "2026-12-31T23:59:59Z",
  "reason": "Enterprise deal: Extended storage"
}

Audit Trail

Every override action is fully audited. The system tracks who set the override, when it was set, the previous value, and the reason provided.

EventTracked DataPurpose
Override CreatedFeature, tenant, value, reason, actor, timestampCompliance and accountability
Override UpdatedPrevious value, new value, reason, actorChange history tracking
Override Expired/RemovedFeature, tenant, final value, actorReversion verification

API Endpoints

MethodEndpointDescriptionAuth
GET/api/tenant-features/{tenantId}/resolvedGet resolved features for tenant🔒 Required
POST/api/tenant-features/{tenantId}/overrideSet feature override🔒 Required
DELETE/api/tenant-features/{tenantId}/override/{featureId}Remove override🔒 Required
GET/api/tenant-features/{tenantId}/overridesList all overrides for tenant🔒 Required