Organization Settings
Data Entity
Description
Per-organization configuration record storing administrative preferences, support access grants, terminology overrides references, and platform behavior flags for each tenant on the Meander platform.
Data Structure
| Name | Type | Description | Constraints |
|---|---|---|---|
id |
uuid |
Primary key for the organization settings record | PKrequiredunique |
organization_id |
uuid |
Foreign key to the organizations table — one-to-one relationship | requiredunique |
display_name |
string |
Public-facing name override for the organization, used in UI headers and reports | - |
contact_label |
string |
Org-specific label for 'Contact' (e.g. 'Familie', 'Bruker') — part of the Organization Labels system | - |
contact_label_plural |
string |
Plural form of the contact label (e.g. 'Familier', 'Brukere') | - |
peer_mentor_label |
string |
Org-specific label for 'Peer Mentor' role term | - |
coordinator_label |
string |
Org-specific label for 'Coordinator' role term | - |
bufdir_org_id |
string |
Organization's registered identifier with Bufdir for report generation and export | - |
bufdir_reporting_enabled |
boolean |
Whether Bufdir report generation and export is enabled for this organization | required |
support_access_granted |
boolean |
Whether Norse Global Admins currently have support access to this organization's operational data | required |
support_access_expires_at |
datetime |
Timestamp when the time-bounded Norse support access grant expires; NULL means no active grant | - |
support_access_granted_by |
uuid |
User ID of the Org Admin who granted Norse support access | - |
default_activity_duration_minutes |
integer |
Default activity duration pre-filled in the activity wizard (e.g. 30 for HLF) | required |
expense_auto_approval_threshold_km |
integer |
Kilometer threshold below which travel expenses are auto-approved without manual review | - |
expense_receipt_required_above |
integer |
Amount in NOK above which a receipt photo is required for expense claims | - |
assignment_office_honorarium_threshold_1 |
integer |
Number of completed assignments that triggers the first honorarium level (e.g. 3 for Blindeforbundet) | - |
assignment_office_honorarium_threshold_2 |
integer |
Number of completed assignments that triggers the second honorarium level (e.g. 15 for Blindeforbundet) | - |
assignment_follow_up_reminder_days |
integer |
Days after assignment dispatch before an automatic follow-up reminder is sent if no contact logged | - |
timezone |
string |
IANA timezone identifier for the organization (used in scheduled jobs and report date boundaries) | required |
locale |
string |
BCP 47 locale code for default UI language within this organization (e.g. 'nb-NO') | required |
is_test_organization |
boolean |
Marks this organization as a test/internal org whose data is excluded from Bufdir and external reporting | required |
logo_url |
string |
URL to the organization's logo used in the admin portal and exported reports | - |
primary_contact_email |
string |
Primary administrative contact email for the organization (used for system notifications) | - |
created_at |
datetime |
Timestamp when the settings record was created | required |
updated_at |
datetime |
Timestamp of the last update to any settings field | required |
Database Indexes
idx_organization_settings_org_id
Columns: organization_id
idx_organization_settings_support_access
Columns: support_access_granted, support_access_expires_at
Validation Rules
valid_timezone
error
Validation failed
valid_locale
error
Validation failed
support_access_expiry_future
error
Validation failed
label_max_length
error
Validation failed
valid_email_format
error
Validation failed
positive_duration_default
error
Validation failed
Business Rules
one_settings_per_organization
Each organization has exactly one organization_settings record. Creating a second record for the same organization_id is rejected.
support_access_requires_expiry
If support_access_granted is set to true, support_access_expires_at must be a future datetime. Support access without a time boundary is not permitted.
support_access_auto_revoke
When support_access_expires_at is reached, support_access_granted is treated as false by the authorization layer. A scheduled job sets the flag to false and logs the revocation in the audit log.
support_access_audit_logged
Every grant or revocation of Norse support access must produce an entry in the organization's audit_logs table including the granting user, expiry time, and timestamp.
test_organization_excluded_from_bufdir
Organizations marked is_test_organization=true are excluded from all Bufdir report generation and export pipelines.
honorarium_threshold_ordering
assignment_office_honorarium_threshold_2 must be strictly greater than assignment_office_honorarium_threshold_1 when both are set.