Terminology Override
Data Entity
Description
Per-organization overrides for platform display labels and terminology, allowing each tenant to substitute canonical terms (e.g. 'Contact', 'Peer Mentor') with org-specific language (e.g. 'Familie', 'Bruker') without code changes.
Data Structure
| Name | Type | Description | Constraints |
|---|---|---|---|
id |
uuid |
Primary key | PKrequiredunique |
organization_id |
uuid |
FK to organizations — the tenant this override belongs to | required |
term_key |
string |
Canonical platform term key (e.g. 'contact', 'peer_mentor', 'coordinator', 'my_contacts', 'activity', 'assignment') | required |
display_value |
string |
The org-specific replacement string shown in the UI (e.g. 'Familie', 'Bruker', 'Deltaker') | required |
display_value_plural |
string |
Plural form of the override (e.g. 'Familier', 'Brukere'). Null means use display_value as-is. | - |
locale |
string |
BCP-47 locale code this override applies to (e.g. 'nb-NO', 'en'). Defaults to 'nb-NO'. | - |
is_active |
boolean |
Whether this override is currently applied. Inactive overrides fall back to platform default. | required |
created_by |
uuid |
FK to users — the Org Admin who created this override | required |
updated_by |
uuid |
FK to users — last Org Admin who modified this override | - |
created_at |
datetime |
Record creation timestamp | required |
updated_at |
datetime |
Last modification timestamp | required |
Database Indexes
idx_terminology_overrides_org_id
Columns: organization_id
idx_terminology_overrides_org_term_locale
Columns: organization_id, term_key, locale
idx_terminology_overrides_active
Columns: organization_id, is_active
Validation Rules
display_value_not_blank
error
Validation failed
display_value_max_length
error
Validation failed
locale_format
error
Validation failed
unique_org_term_locale
error
Validation failed
organization_must_exist
error
Validation failed
Business Rules
org_scoped_overrides
Each override is strictly scoped to one organization. No override can affect another tenant's display labels.
only_known_term_keys
term_key must be one of the platform-defined canonical keys (contact, my_contacts, peer_mentor, peer_mentors, coordinator, coordinators, activity, assignment). Unknown keys are rejected to prevent orphaned config.
fallback_to_platform_default
If no active override exists for a term_key + locale combination, the platform default string is used. The mobile app and admin portal always resolve terminology via this fallback chain.
cached_on_bootstrap
Active overrides for the authenticated user's organization are returned in the session/bootstrap response and cached offline (mobile) or in the SSR response (admin portal). Stale cache is invalidated when overrides are updated.
org_admin_only_write
Only users with Org Admin or Global Admin role may create, update, or delete overrides for an organization.
audit_on_change
Every create/update/delete of a terminology override is written to audit_logs with actor, old value, and new value for compliance traceability.