Per-Tenant Overrides
Customize feature values for individual tenants regardless of their subscribed plan, with full audit trails and optional expiration.
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.
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.
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.
| Event | Tracked Data | Purpose |
|---|---|---|
| Override Created | Feature, tenant, value, reason, actor, timestamp | Compliance and accountability |
| Override Updated | Previous value, new value, reason, actor | Change history tracking |
| Override Expired/Removed | Feature, tenant, final value, actor | Reversion verification |
API Endpoints
| Method | Endpoint | Description | Auth |
|---|---|---|---|
| GET | /api/tenant-features/{tenantId}/resolved | Get resolved features for tenant | 🔒 Required |
| POST | /api/tenant-features/{tenantId}/override | Set feature override | 🔒 Required |
| DELETE | /api/tenant-features/{tenantId}/override/{featureId} | Remove override | 🔒 Required |
| GET | /api/tenant-features/{tenantId}/overrides | List all overrides for tenant | 🔒 Required |