Supports client migration from per-user UUID to machine fingerprint without consuming an extra maxDevices slot.
Co-authored-by: Cursor <cursoragent@cursor.com>
Track landing downloads per platform/month, support admin delete and bulk key issue, and sort licenses by createdAtSec.
Co-authored-by: Cursor <cursoragent@cursor.com>
New keys default to validDays with countdown starting on first activation; existing expiresAtSec keys behave unchanged.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add revokedKeys storage and accept key in admin revoke API so DND/TTRPG keys with the same sub can be revoked independently.
Co-authored-by: Cursor <cursoragent@cursor.com>