feat: release license key generation and management #134

Closed
opened 2026-05-21 21:52:41 +00:00 by jmiller · 2 comments
Owner

Native license key generation for releases.

Native license key generation for releases.
Author
Owner

Full Requirements

License Key Generation

  • Generate unique keys per release download
  • Tie keys to user accounts, organizations, or email
  • Key types: trial, standard, professional, enterprise
  • Configurable expiration, revocable

Key Formats

  • Alphanumeric: XXXX-XXXX-XXXX-XXXX
  • Signed JWT tokens for offline validation
  • Hardware-bound keys (optional)

Management

  • Admin UI: generate, list, revoke, extend per release
  • Per-repo license settings
  • Activation tracking + audit log

API Endpoints

  • POST /repos/{owner}/{repo}/releases/{id}/licenses - generate
  • GET /repos/{owner}/{repo}/releases/{id}/licenses - list
  • POST /repos/{owner}/{repo}/licenses/validate - validate
  • DELETE /repos/{owner}/{repo}/licenses/{key} - revoke

Integration

  • Release downloads can require valid key
  • Webhook + ntfy on key events
  • Badge: active licenses count

Database

  • repo_license_config table
  • release_license_key table

Authored-by: Claude Opus 4.6 (1M context)

## Full Requirements ### License Key Generation - Generate unique keys per release download - Tie keys to user accounts, organizations, or email - Key types: trial, standard, professional, enterprise - Configurable expiration, revocable ### Key Formats - Alphanumeric: XXXX-XXXX-XXXX-XXXX - Signed JWT tokens for offline validation - Hardware-bound keys (optional) ### Management - Admin UI: generate, list, revoke, extend per release - Per-repo license settings - Activation tracking + audit log ### API Endpoints - POST /repos/{owner}/{repo}/releases/{id}/licenses - generate - GET /repos/{owner}/{repo}/releases/{id}/licenses - list - POST /repos/{owner}/{repo}/licenses/validate - validate - DELETE /repos/{owner}/{repo}/licenses/{key} - revoke ### Integration - Release downloads can require valid key - Webhook + ntfy on key events - Badge: active licenses count ### Database - repo_license_config table - release_license_key table *Authored-by: Claude Opus 4.6 (1M context)*
Author
Owner

Closing — superseded by the licensing system implemented in #615-#631. License key generation and management now lives in models/licensing/ and routers/api/v1/licensing/ (16 API endpoints, 5 model tables, ed25519 signing).

Closing — superseded by the licensing system implemented in #615-#631. License key generation and management now lives in `models/licensing/` and `routers/api/v1/licensing/` (16 API endpoints, 5 model tables, ed25519 signing).
Sign in to join this conversation.