6.2.2.11 Entitlement
6.2.2.11.1 Purpose¶
What an Organization has bought or been granted: a model, a product feature, a plan. Roles say what a user may do; entitlements say what their Organization has, so a product checks both before it serves a model or a feature. Entitlements belong to the Entitlements domain of the farm system (decided 2026-10-30) and are the same for every Moonitoring product.
6.2.2.11.2 Questions it answers¶
- Which models and features can this Organization use today?
- Since when, and until when?
- Who granted it, and what did the Organization have at a past write number?
6.2.2.11.3 Fields¶
| Field | Type | Cardinality | Description |
|---|---|---|---|
id |
string (uuid) |
1..1 |
Key. |
organization |
Organization | 1..1 |
|
feature |
string |
1..1 |
Named like a capability, <system>.<feature>, prefixed by the system that checks the feature: e.g. moochat.chat, farm.models.mastitis, grant.checks. Capabilities and features follow one rule and come from the same catalog each system publishes.Each project publishes the features it offers, with its capability catalog. |
validity |
Period | 1..1 |
valid_until = open: it does not expire. Billing and contracts decide the dates; they are not modelled here. |
granted_by |
MoonitoringUser | 1..1 |
|
system_version |
SystemVersion | 1..1 |
|
limits |
string (JSON) |
0..1 |
How much of the feature the Organization may use, e.g. for moochat.chat: tokens per month, requests per minute, concurrent streams, model tier, what happens at 100% (block, degrade, bill). Empty: no limit. A plan is a set of entitlements with limits; changing a plan changes rows, not code. |
created_at |
datetime |
1..1 |
|
updated_at |
datetime |
1..1 |
6.2.2.11.4 Relationships¶
References
Entitlement.organization→ Organization (1..1)Entitlement.granted_by→ MoonitoringUser (1..1)
Uses types
6.2.2.11.5 Rules & constraints¶
- What an Organization has: a model, a product feature, a plan.
- Roles say what a user may do (OrganizationRoleAccessControl); entitlements say what their Organization has. A product checks both: e.g. the model APIs need capability
farm.models.usein the user's role and an active entitlement for that model. (organization, feature)is unique among active entitlements. Channel access for installed clients stays in ReleaseChannelAccess.