Commit Graph

8 Commits

Author SHA1 Message Date
Ivan Fontosh f19b50b2ad feat(activate): allow retireDeviceId to free a device slot on migration
Supports client migration from per-user UUID to machine fingerprint without consuming an extra maxDevices slot.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-23 10:39:46 +08:00
Ivan Fontosh 6d4b74d410 Add download stats, key deletion, batch creation, and newest-first listing.
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>
2026-07-02 00:21:21 +08:00
Ivan Fontosh 4b568ceb56 Add period-based license keys alongside fixed expiry dates.
New keys default to validDays with countdown starting on first activation; existing expiresAtSec keys behave unchanged.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-01 22:46:10 +08:00
Ivan Fontosh e299cfc7dd Revoke licenses by product key instead of shared sub.
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>
2026-07-01 16:44:16 +08:00
Ivan Fontosh b7c14d6191 docs: document license.ttrpgplayer.ru production endpoint (v1.0.1)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-01 15:56:46 +08:00
Ivan Fontosh a6a0e8adf8 Add admin API to list licenses and create product keys.
Expose GET /v1/admin/licenses and POST /v1/admin/product-keys for the license manager app.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 12:35:40 +08:00
Ivan Fontosh d595f4ca5a chore: license server updates and tests
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-11 22:20:21 +08:00
Ivan Fontosh 4a0523f309 Initial commit: license activation server (Ed25519)
Made-with: Cursor
2026-04-19 17:58:51 +08:00