The first version of our activation flow failed closed. If validation could not reach us, the plugin refused to load. It was defensible on a whiteboard and indefensible in a live room.
Leases, not checks
We replaced the online check with a signed lease. Activation grants an entitlement valid for a window, stored locally and verified offline against a public key. The network is only needed to renew, never to run.
- Activation issues a signed, time-boxed entitlement
- Verification is local and works with no network
- Renewal happens quietly in the background before expiry
- Revocation propagates on next renewal, not mid-session
Accepting the gap
This means a revoked licence keeps working until its lease lapses. We think that is the right call. The alternative is interrupting a paying customer's session to punish a hypothetical one.
