EE license model uses historical max, preventing customers who legitimately trim their user base
Right now the EE license check uses the historical maximum to determine whether an admin has enough seats for the license. Let's say a customer has a 5-seat license, and sometime during the year he had 20 users. If he trims back to 4 users, the 5-seat license won't work anymore. Right now the workaround is to issue a license for 20 users.
This has come up several times this year, so I think we need to figure this out. We could just use the current active user base as a measure of how many licenses are needed. Admins could temporarily block users who get their license count down, but I think in keeping with the True Up model we shouldn't assume this is normal behavior.
Thoughts, @sytses, @ChadMalchow, @DouweM?
Specification
-
We'll add a max_historical_users
field in the payment_app and the customer will be required to indicate this field when renewing their license.- This field indicates the max number of users the customer had in the previous year, so we can bill for them using the true-up model.
- This field should only record EE users - not CE in case of an upgrade
- https://dev.gitlab.org/gitlab/payment_app/issues/82
-
Update license validation to become max_historical_users <= historical_limit && current_max <= current_limit
-
For old licenses, we preserve the old max historical check to preserve backwards compatibility