Check in monthly for any installed license, regardless of seat usage #89

Closed
opened 2026-07-31 09:40:43 +00:00 by Cordy · 0 comments
Owner

checkinRequiredLocked currently gates the monthly check-in on len(SeenUsers) > FreeSeats. Consequence: an instance holding a paid 60-seat license but with ≤50 distinct users seen never checks in — so renewals and seat changes never propagate automatically, and the key silently lapses at expiry. Below the threshold that's harmless enforcement-wise (free tier covers it), but it breaks the customer's reasonable expectation: they paid, their license should keep itself current.

Decision (Nikola): any installed, unrevoked, unexpired license with a check-in URL phones in monthly, regardless of seat usage. The seat count still rides along in the request as telemetry (seatsUsed).

Free-tier posture is unchanged: an instance with no license installed still never phones home — that promise is about the free tier, not about paid licenses.

`checkinRequiredLocked` currently gates the monthly check-in on `len(SeenUsers) > FreeSeats`. Consequence: an instance holding a paid 60-seat license but with ≤50 distinct users seen never checks in — so renewals and seat changes never propagate automatically, and the key silently lapses at expiry. Below the threshold that's harmless *enforcement-wise* (free tier covers it), but it breaks the customer's reasonable expectation: they paid, their license should keep itself current. Decision (Nikola): any installed, unrevoked, unexpired license with a check-in URL phones in monthly, regardless of seat usage. The seat count still rides along in the request as telemetry (`seatsUsed`). Free-tier posture is unchanged: an instance with **no license installed** still never phones home — that promise is about the free tier, not about paid licenses.
Cordy closed this issue 2026-07-31 09:44:24 +00:00
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Cordy/Cairn#89
No description provided.