Entitlements and Editions
An edition is a packaged bundle of modules a customer buys. Entitlements are the actual per-module grants projected into a tenant’s EHR — they decide, route by route, what the clinical app will allow.
Who can do this: support, onboarding, super_admin (entitlements.write). Editing the edition catalogue itself is super_admin (registry.write).
Editions
Section titled “Editions”Veona ships four editions: Health Centre, Hospital, Network and Public Health. Each defines a default set of modules and limits (facilities, users, beds, storage). The full breakdown is on the Editions reference.
- Editions list/detail lives under
registry/editions(GET /editions). - Create or edit an edition (
super_admin) —POST /registry/editions,PUT /registry/editions/:key. Edition changes are signed and audited (edition.upsert). - Onboarding blueprints (
onboarding/blueprints) show editions joined with the modules they bundle — the picker used during onboarding.
How entitlements reach the EHR
Section titled “How entitlements reach the EHR”When you provision a tenant, the edition’s module list is projected into the EHR as FacilityEntitlement rows (one per module per facility), via the canonical module-key mapper. The EHR enforces these deny-by-default: a route gated by a module the tenant doesn’t hold returns 403 immediately.
Adjusting module entitlements
Section titled “Adjusting module entitlements”To grant or remove a module à la carte (beyond the edition default):
- Open the tenant’s entitlements (
registry/entitlements→GET /tenants/:id/entitlements). You’ll see a signed, revisioned grant (revision, etag, module list). - Toggle the modules (
PUT /tenants/:id/entitlements). The change is revisioned and audited (entitlement.write). - The change is live and drivable: disabling a module makes the EHR return 403 on its routes; re-granting restores 200 in the same transaction.
Connect (instrument) entitlements
Section titled “Connect (instrument) entitlements”Device/instrument integrations have their own entitlement surface (clients/tenant/:id/connect-integrations → GET/PUT /tenants/:id/connect-entitlements). Disabling an instrument removes it from the tenant’s Connect catalogue (licensed: false); enabling it makes it available again. Audited as tenant.connect_entitlements.put.