configuration PK: id 9 required 2 unique

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.

21
Attributes
3
Indexes
8
Validation Rules
12
CRUD Operations

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
btree unique

Columns: organization_id

idx_organization_settings_support_expiry
btree

Columns: norse_support_access_enabled, norse_support_access_expires_at

idx_organization_settings_updated_at
btree

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
on_create

Exactly one organization_settings row must exist per organization (1:1 relationship)

support_access_requires_expiry
on_update

When norse_support_access_enabled is true, norse_support_access_expires_at must be set to a future timestamp

support_access_auto_revoke
always

Norse support access must be treated as revoked once the expiry timestamp passes, regardless of the enabled flag

settings_change_audited
on_update

Every mutation to organization_settings must be written to the org audit log

org_admin_only_mutations
always

Only Organization Admin or Global Admin may create/update/delete the settings record

Storage Configuration

Storage Type
primary_table
Location
main_db
Partitioning
No Partitioning
Retention
Permanent Storage