feat(licenses): full commercial license management system #296

Open
opened 2026-05-31 04:24:14 +00:00 by jmiller · 0 comments
Owner

Full Commercial License Management System

This is a revenue-generating platform feature — organizations use MokoGitea to distribute and license their commercial Joomla/Dolibarr extensions.

Architecture

License Packages (tiers)

  • Org-level and repo-level packages that stack
  • Duration: lifetime, annual, monthly, custom dates
  • Channels: which update streams the key grants access to
  • Max sites: limit how many domains can use a key
  • Active/inactive toggle
  • Editable by org owner/repo admin, deletable by site admin only
  • Master package auto-created, never deletable

License Keys

  • Purchasable via API (for payment gateway integration)
  • Assignable to: customer name, email, domain(s)
  • Multiple keys per user for multi-site
  • Copyable (not secret) with copy button
  • Revocable but not deletable (except by site admin)
  • Master key auto-regenerates on revoke
  • Expiry editable for non-master keys
  • Domain restriction enforcement on update feeds

Update Server Integration

  • Per-repo platform setting (Joomla/Dolibarr/Both)
  • Require-key toggle per repo
  • Update feeds validate key + check channels + record usage
  • Invalid/missing key = empty response (Joomla compatible)

API Endpoints (for payment integration)

  • POST /api/v1/repos/{owner}/{repo}/license-keys — purchase/create key
  • PATCH /api/v1/repos/{owner}/{repo}/license-keys/{id} — update expiry, domains
  • GET /api/v1/repos/{owner}/{repo}/license-keys/{id}/usage — usage stats
  • POST /api/v1/repos/{owner}/{repo}/license-keys/{id}/validate — validate a key

Remaining work

  • Key expiry editing UI
  • Domain assignment UI and enforcement
  • Multi-site key management
  • Org-level license page improvements
  • Channels as multiselect from org streams
  • Team permissions for license management
  • Payment webhook endpoint (Stripe/PayPal)
  • License validation API endpoint
  • Key usage dashboard/analytics
  • Wiki documentation
  • Convert MokoWaaS to new system

Created by @MokoBot - Claude Opus 4.6

## Full Commercial License Management System This is a revenue-generating platform feature — organizations use MokoGitea to distribute and license their commercial Joomla/Dolibarr extensions. ### Architecture #### License Packages (tiers) - Org-level and repo-level packages that stack - Duration: lifetime, annual, monthly, custom dates - Channels: which update streams the key grants access to - Max sites: limit how many domains can use a key - Active/inactive toggle - Editable by org owner/repo admin, deletable by site admin only - Master package auto-created, never deletable #### License Keys - Purchasable via API (for payment gateway integration) - Assignable to: customer name, email, domain(s) - Multiple keys per user for multi-site - Copyable (not secret) with copy button - Revocable but not deletable (except by site admin) - Master key auto-regenerates on revoke - Expiry editable for non-master keys - Domain restriction enforcement on update feeds #### Update Server Integration - Per-repo platform setting (Joomla/Dolibarr/Both) - Require-key toggle per repo - Update feeds validate key + check channels + record usage - Invalid/missing key = empty response (Joomla compatible) #### API Endpoints (for payment integration) - POST /api/v1/repos/{owner}/{repo}/license-keys — purchase/create key - PATCH /api/v1/repos/{owner}/{repo}/license-keys/{id} — update expiry, domains - GET /api/v1/repos/{owner}/{repo}/license-keys/{id}/usage — usage stats - POST /api/v1/repos/{owner}/{repo}/license-keys/{id}/validate — validate a key #### Remaining work - [ ] Key expiry editing UI - [ ] Domain assignment UI and enforcement - [ ] Multi-site key management - [ ] Org-level license page improvements - [ ] Channels as multiselect from org streams - [ ] Team permissions for license management - [ ] Payment webhook endpoint (Stripe/PayPal) - [ ] License validation API endpoint - [ ] Key usage dashboard/analytics - [ ] Wiki documentation - [ ] Convert MokoWaaS to new system --- *Created by @MokoBot - Claude Opus 4.6*
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: MokoConsulting/MokoGitea#296