Activation model — domain registration, limit enforcement #620

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

Phase 1.4 — Activation Model

Parent: #616 | Depends on: #617, #618

models/licensing/activation.go:

  • ActivateDomain(licenseID, domain, ip, joomlaVersion) -> (Activation, error) — register domain, enforce max_domains limit
  • DeactivateDomain(licenseID, domain) — free up a slot
  • GetActivations(licenseID) -> []Activation — list active domains
  • IsActivated(licenseID, domain) -> bool — check if domain is registered
  • TouchActivation(licenseID, domain) — update last_seen_at timestamp on each update check
  • CountActivations(licenseID) -> int — current domain count vs limit

Auto-activation: first time a DLID is used from a new domain, auto-activate if under limit. Return 403 with "domain limit reached" message if over.

Acceptance criteria

  • Domain limit enforced per license.max_domains
  • Auto-activation on first use from new domain
  • Deactivation frees slot for reuse
  • last_seen_at updated on every update check for stale detection
## Phase 1.4 — Activation Model Parent: #616 | Depends on: #617, #618 `models/licensing/activation.go`: - `ActivateDomain(licenseID, domain, ip, joomlaVersion) -> (Activation, error)` — register domain, enforce max_domains limit - `DeactivateDomain(licenseID, domain)` — free up a slot - `GetActivations(licenseID) -> []Activation` — list active domains - `IsActivated(licenseID, domain) -> bool` — check if domain is registered - `TouchActivation(licenseID, domain)` — update last_seen_at timestamp on each update check - `CountActivations(licenseID) -> int` — current domain count vs limit Auto-activation: first time a DLID is used from a new domain, auto-activate if under limit. Return 403 with "domain limit reached" message if over. ### Acceptance criteria - [ ] Domain limit enforced per license.max_domains - [ ] Auto-activation on first use from new domain - [ ] Deactivation frees slot for reuse - [ ] last_seen_at updated on every update check for stale detection
Author
Owner

Branch created: feature/620-activation-model-domain-registration-lim

git fetch origin
git checkout feature/620-activation-model-domain-registration-lim
Branch created: [`feature/620-activation-model-domain-registration-lim`](https://code.mokoconsulting.tech/MokoConsulting/MokoGitea-APP/src/branch/feature/620-activation-model-domain-registration-lim) ```bash git fetch origin git checkout feature/620-activation-model-domain-registration-lim ```
Sign in to join this conversation.