Hi,
I already know that, unfortunately, I cannot configure any features on the tenant other than those in the assigned edition. This has already been communicated in the following post: #6579
Now I will describe our situation and I am interested to hear how you would resolve it.
We have various subscriptions (PayPlans, which are assigned to the editions). Depending on the subscription, the tenant gets a different number of maximum users. Identity.MaxUserCount is therefore set on the edition. Now, as an exception, we need to allow a higher number of users for one tenant.
What can we do? Unfortunately, the features cannot be overridden on the tenant. We don't really want to allow a higher number of users for the edition in general.
Could we create a new edition and assign it to the tenant? That would be a good solution. But since a subscription already exists, I cannot change the edition on the tenant (disabled in the UI). What would happen if I changed this in the database? And what effect would this have on subscription renewals, etc.?
Thanks, Adrian
15 Answer(s)
-
0
In ABP, when a feature (such as
Identity.MaxUserCount
) is set at the edition level, it cannot be overridden at the tenant level for tenants assigned to that edition. This is by design and confirmed in the referenced post.To allow a higher user count for a specific tenant, the recommended and supported approach is to create a new edition with the desired feature value and assign this edition to the tenant. This way, you can customize the feature for that tenant without affecting others.
If the edition selection is disabled in the UI due to an active subscription, directly changing the edition in the database is not recommended. Doing so can lead to inconsistencies, especially with the SaaS module's subscription and renewal logic, which expects the edition and subscription data to be in sync. Manual changes may break renewal, billing, or feature assignment processes.
The best practice is to use the official APIs or UI to manage editions and subscriptions. If you need to change the edition for a tenant with an active subscription, consider:
- Cancelling or updating the current subscription through the SaaS module's UI or API.
- Assigning the new edition via the supported workflow.
- Ensuring that billing and renewal logic is correctly updated for the new edition.
Direct database manipulation is not supported and may cause unexpected issues with the SaaS module.
Sources:
- Feature value is disabled at tenant level when it's assigned to an edition
- ABP SaaS Module Documentation
This response was generated by AI. If it didn’t solve your problem, feel free to post a new answer — our support team will jump in to help you soon.
-
0
-
0
Hmm... but I tried to achieve this on a experimental way by creating a corresponding database entry in the AbpFeatureValues table for this tenant. That didn't work, and the old value was still displayed in the UI.
-
0
Oh, I guess it has something to do with synchronization in the cache. When I checked again after a while, the value I had entered in the DB was there.
What is the default frequency for DB and cache synchronization? Can this be forced?
-
0
hi.
You should set the value via Code(
FeatureManager
).Or you can clear the redis.
-
0
Are there any other ways to force synchronization (e.g., restarting the app)? Or does this happen regularly in the background as a job?
-
0
hi
Unless the cache expires, you can only force clear Redis.
You should use code to change the feature.
-
0
So you don't know how long the entries in the cache are valid by default?
I don't want to implement a special function for this individual case. If I did, I would have to override the standard behavior so that the field is not deactivated in the features on the tenant.
-
0
hi
The cache default
SlidingExpiration
is 20 minutes. If you call the code to change the feature, ABP framework will invalidate the cache automatically. -
0
Ok, thank you.
I now have the following problem:
- Tenant does not yet have a subscription; I have set the maximum number of users there (as discussed above).
- Customer has purchased a subscription, and the corresponding edition has been set.
- Features of this edition were not activated.
Are no feature values of the edition applied as soon as a value is “overwritten” on the tenant? I assumed that only this value (
Identity.MaxUserCount
) differs from the values of the edition? -
0
I have also identified a second problem. When I change the features of the assigned edition, the individual value of the tenant is deleted from the database and the value of the edition is applied.
It is very dangerous that settings are lost... is this the desired behavior? -
0
hi
The cache default
SlidingExpiration
is 20 minutes. If you call the code to change the feature, ABP framework will invalidate the cache automatically. -
0
However, my last two questions have nothing to do with the cache.
What can you say about that?
-
0
hi
We enhanced the feature management in >= 9.3.
Here is latest behavior: https://github.com/abpframework/abp/pull/22628#issuecomment-2804752384
-
0
Unfortunately, we are unable to update at this time. Therefore, I would appreciate a response regarding how the framework behaves (in version 8.3.4). You may also simply confirm whether my following statements are correct or not.
- If the tenant has not assigned an edition and feature settings have been made on the tenant, these will persist when an edition is assigned (but the tenant will not receive the feature settings of the edition).
- When changing an edition on the tenant, all feature settings previously made on the tenant will be deleted.