License management API — CRUD for admin and user dashboard #624

Open
opened 2026-06-12 07:59:34 +00:00 by jmiller · 1 comment
Owner

Phase 2.4 — License Management API

Parent: #616 | Depends on: #618, #619, #620

routers/api/v1/licensing/manage.go:

Admin routes (requires site admin or org owner)

  • POST /api/v1/licensing/licenses — create license for a user with tier
  • GET /api/v1/licensing/licenses — list all licenses (paginated, filterable)
  • GET /api/v1/licensing/licenses/{id} — full license detail with entitlements + activations
  • PATCH /api/v1/licensing/licenses/{id} — update tier, status, max_domains, expiry
  • DELETE /api/v1/licensing/licenses/{id} — revoke license

User routes (authenticated, own licenses only)

  • GET /api/v1/licensing/my/licenses — list user's licenses
  • GET /api/v1/licensing/my/licenses/{id}/domains — list activated domains
  • DELETE /api/v1/licensing/my/licenses/{id}/domains/{domain} — deactivate a domain

Product tier routes (admin only)

  • GET /api/v1/licensing/tiers — list all product tiers
  • POST /api/v1/licensing/tiers — create tier
  • PATCH /api/v1/licensing/tiers/{id} — update tier repos/limits
  • DELETE /api/v1/licensing/tiers/{id} — remove tier

Acceptance criteria

  • Admin can create/modify/revoke licenses
  • Users can view own licenses and manage domains
  • Tier CRUD with repo mapping
  • Pagination and filtering on list endpoints
  • Proper auth: admin endpoints require admin, user endpoints scoped to own data
## Phase 2.4 — License Management API Parent: #616 | Depends on: #618, #619, #620 `routers/api/v1/licensing/manage.go`: ### Admin routes (requires site admin or org owner) - `POST /api/v1/licensing/licenses` — create license for a user with tier - `GET /api/v1/licensing/licenses` — list all licenses (paginated, filterable) - `GET /api/v1/licensing/licenses/{id}` — full license detail with entitlements + activations - `PATCH /api/v1/licensing/licenses/{id}` — update tier, status, max_domains, expiry - `DELETE /api/v1/licensing/licenses/{id}` — revoke license ### User routes (authenticated, own licenses only) - `GET /api/v1/licensing/my/licenses` — list user's licenses - `GET /api/v1/licensing/my/licenses/{id}/domains` — list activated domains - `DELETE /api/v1/licensing/my/licenses/{id}/domains/{domain}` — deactivate a domain ### Product tier routes (admin only) - `GET /api/v1/licensing/tiers` — list all product tiers - `POST /api/v1/licensing/tiers` — create tier - `PATCH /api/v1/licensing/tiers/{id}` — update tier repos/limits - `DELETE /api/v1/licensing/tiers/{id}` — remove tier ### Acceptance criteria - [ ] Admin can create/modify/revoke licenses - [ ] Users can view own licenses and manage domains - [ ] Tier CRUD with repo mapping - [ ] Pagination and filtering on list endpoints - [ ] Proper auth: admin endpoints require admin, user endpoints scoped to own data
Author
Owner

Branch created: feature/624-license-management-api-crud-for-admin-an

git fetch origin
git checkout feature/624-license-management-api-crud-for-admin-an
Branch created: [`feature/624-license-management-api-crud-for-admin-an`](https://code.mokoconsulting.tech/MokoConsulting/MokoGitea-APP/src/branch/feature/624-license-management-api-crud-for-admin-an) ```bash git fetch origin git checkout feature/624-license-management-api-crud-for-admin-an ```
Sign in to join this conversation.