# DBAOps Sovereign™ — Product tiers (license model)

**How it works in software:** Entitlements are stored in **`ctl.License`**: an **Edition** name (string), **InstancesAllowed**, **ExpiresAt**, and **IsActive**. The API evaluates this row for **fleet registration** and for **mutations** when **`SOVEREIGN_ENFORCE_LICENSE`** is on.

**How many “tiers” in code?** There is **one** license mechanism — you can define **as many commercial tiers as you want** by inserting different **Edition** values and limits in SQL (e.g. `Pilot`, `Professional`, `Enterprise`). The UI shows whatever **Edition** is in the active license row.

**Seeded default (after migrate):** **`Trial`** — **10** instances, **30-day** expiry (see **`schema.sql`**). Mock mode uses a similar default when no row exists.

**Community tier:** There is **no** separate **“Community”** SKU wired in the product today. To offer a free/community program you would typically:

- Issue a long-lived or high-limit **Edition** row (e.g. `Community`) with clear **terms** in your **MSA / order**, or  
- Run a **time-boxed Pilot** edition for tomorrow’s test (recommended for pilots).

**Pilot tomorrow:** Use **`Pilot`** (or keep **`Trial`**) as the **Edition** in `ctl.License`, set **InstancesAllowed** and **ExpiresAt** to match the pilot agreement, and document that in your offer letter — no code change required.

---

© 2026 RHOYLLE INNOVATION EMPIRE LLC.
