Organization Settings
Data Entity
Description
Per-tenant configuration record holding organization-wide platform settings such as default locale, time zone, branding, support-access flags, and global behavior switches that are not module-specific.
Data Structure
| Name | Type | Description | Constraints |
|---|---|---|---|
id |
uuid |
Primary key for the settings record | PKrequiredunique |
organization_id |
uuid |
Foreign key to organizations table (one-to-one) | requiredunique |
default_locale |
string |
Default UI locale for the organization (e.g. nb-NO, en-US) | required |
time_zone |
string |
IANA time zone for activity timestamps and reports | required |
date_format |
string |
Preferred date display format (e.g. DD.MM.YYYY) | - |
currency |
string |
ISO 4217 currency code used for expenses/reimbursements | required |
primary_color |
string |
Branding primary color (hex) | - |
logo_url |
string |
URL to organization logo asset | - |
support_email |
string |
Public support contact email for the organization | - |
support_phone |
string |
Public support contact phone | - |
norse_support_access_enabled |
boolean |
Whether Global Admin (Norse) staff currently have time-bounded support access to this org's operational data | required |
norse_support_access_expires_at |
datetime |
Expiry timestamp for Norse support access; access auto-revokes on or after this time | - |
data_retention_days |
integer |
Retention window in days for soft-deleted operational records | - |
bufdir_org_number |
string |
Norwegian Brønnøysund organisasjonsnummer used in Bufdir reports | - |
allow_proxy_registration |
boolean |
Org-wide switch enabling coordinator proxy/bulk registration | required |
receipt_required_threshold |
decimal |
Currency threshold above which expense receipts are mandatory | - |
auto_approval_distance_km |
decimal |
Distance threshold under which travel expenses auto-approve | - |
settings_json |
json |
Extensible bag for org-specific per-module config flags not modeled as columns | - |
created_at |
datetime |
Record creation timestamp | required |
updated_at |
datetime |
Last update timestamp | required |
updated_by_user_id |
uuid |
User who last modified the settings | - |
Database Indexes
idx_organization_settings_organization_id
Columns: organization_id
idx_organization_settings_support_expiry
Columns: norse_support_access_enabled, norse_support_access_expires_at
idx_organization_settings_updated_at
Columns: updated_at
Validation Rules
valid_locale
error
Validation failed
valid_time_zone
error
Validation failed
valid_currency
error
Validation failed
valid_hex_color
warning
Validation failed
valid_support_email
error
Validation failed
expiry_in_future
error
Validation failed
non_negative_thresholds
error
Validation failed
bufdir_org_number_format
error
Validation failed
Business Rules
one_settings_per_organization
Exactly one organization_settings row must exist per organization (1:1 relationship)
support_access_requires_expiry
When norse_support_access_enabled is true, norse_support_access_expires_at must be set to a future timestamp
support_access_auto_revoke
Norse support access must be treated as revoked once the expiry timestamp passes, regardless of the enabled flag
settings_change_audited
Every mutation to organization_settings must be written to the org audit log
org_admin_only_mutations
Only Organization Admin or Global Admin may create/update/delete the settings record