Skip to content

domain/settings/settings-service

Defined in: app/src/domain/settings/settings-service.ts:117

Resolves setting values from defaults, policies, user and workspace values, validates every write and keeps invalid stored values aside.

Resolution order, lowest first: default, recommended policy, user, workspace override, mandatory policy.

new SettingsService(definitions, policies, store, logger): SettingsService

Defined in: app/src/domain/settings/settings-service.ts:140

readonly SettingDefinition<unknown>[]

Every setting, including those of inactive modules.

PolicyService

Provides recommended and mandatory values.

SettingsStore

Persists user and workspace values.

Logger

Receives persistence errors.

SettingsService

readonly onDidChange: Event<SettingChange>

Defined in: app/src/domain/settings/settings-service.ts:132

Fires after values changed through a write, an import or a policy change.

dispose(): void

Defined in: app/src/domain/settings/settings-service.ts:344

Removes all listeners.

void

Disposable.dispose

exportUserSettings(): Record<string, unknown>

Defined in: app/src/domain/settings/settings-service.ts:299

User values that differ from the defaults, sorted by key, for export. Never contains secrets.

Record<string, unknown>

get<T>(definition, context?): T

Defined in: app/src/domain/settings/settings-service.ts:217

Returns the effective value of a setting.

T

SettingDefinition<T>

The setting.

SettingContext = {}

Workspace to apply overrides for.

T

importUserSettings(data): Result<SettingsImportReport, string>

Defined in: app/src/domain/settings/settings-service.ts:308

Imports user values from an exported object. Unknown keys are ignored, invalid values are reported, locked settings are skipped.

unknown

Parsed JSON object.

Result<SettingsImportReport, string>

inspect<T>(definition, context?): SettingInspection<T>

Defined in: app/src/domain/settings/settings-service.ts:226

Returns the effective value and every contributing layer.

T

SettingDefinition<T>

The setting.

SettingContext = {}

Workspace to apply overrides for.

SettingInspection<T>

load(): Promise<void>

Defined in: app/src/domain/settings/settings-service.ts:164

Loads stored values. Invalid values are kept aside and reported by SettingsService.rejected.

Promise<void>

rejected(): readonly RejectedSetting[]

Defined in: app/src/domain/settings/settings-service.ts:339

Stored values that failed validation at load time.

readonly RejectedSetting[]

reset(definition, target?): void

Defined in: app/src/domain/settings/settings-service.ts:292

Removes a user value or workspace override, so the next layer applies again.

SettingDefinition<unknown>

The setting.

SettingTarget = ...

Which value to remove.

void

set<T>(definition, value, target?): Result<void, SettingWriteError>

Defined in: app/src/domain/settings/settings-service.ts:267

Writes a value after validating it.

T

SettingDefinition<T>

The setting.

unknown

The new value.

SettingTarget = ...

User value or workspace override.

Result<void, SettingWriteError>

Defined in: app/src/domain/settings/settings-service.ts:56

A stored value that failed validation. It is kept aside, never silently deleted.

readonly key: string

Defined in: app/src/domain/settings/settings-service.ts:57

readonly message: string

Defined in: app/src/domain/settings/settings-service.ts:60

readonly value: unknown

Defined in: app/src/domain/settings/settings-service.ts:58

readonly optional workspaceId?: string

Defined in: app/src/domain/settings/settings-service.ts:59


Defined in: app/src/domain/settings/settings-service.ts:45

Sent after values changed.

readonly keys: readonly string[]

Defined in: app/src/domain/settings/settings-service.ts:46


Defined in: app/src/domain/settings/settings-service.ts:19

Optional context for reading a value.

readonly optional workspaceId?: string

Defined in: app/src/domain/settings/settings-service.ts:21

Applies the overrides of this workspace.


Defined in: app/src/domain/settings/settings-service.ts:25

The value of a setting with every layer that contributes to it.

T

readonly defaultValue: T

Defined in: app/src/domain/settings/settings-service.ts:31

readonly key: string

Defined in: app/src/domain/settings/settings-service.ts:26

readonly locked: boolean

Defined in: app/src/domain/settings/settings-service.ts:30

Whether a mandatory policy fixes the value.

readonly optional mandatoryValue?: T

Defined in: app/src/domain/settings/settings-service.ts:35

readonly optional recommendedValue?: T

Defined in: app/src/domain/settings/settings-service.ts:32

readonly source: SettingSource

Defined in: app/src/domain/settings/settings-service.ts:28

readonly optional userValue?: T

Defined in: app/src/domain/settings/settings-service.ts:33

readonly value: T

Defined in: app/src/domain/settings/settings-service.ts:27

readonly optional workspaceValue?: T

Defined in: app/src/domain/settings/settings-service.ts:34


Defined in: app/src/domain/settings/settings-service.ts:76

Result of importing a settings file.

readonly applied: readonly string[]

Defined in: app/src/domain/settings/settings-service.ts:77

readonly locked: readonly string[]

Defined in: app/src/domain/settings/settings-service.ts:79

readonly rejected: readonly RejectedSetting[]

Defined in: app/src/domain/settings/settings-service.ts:78


Defined in: app/src/domain/settings/settings-service.ts:64

Persists settings. The platform adapter writes atomically and debounces.

load(): Promise<StoredSettings>

Defined in: app/src/domain/settings/settings-service.ts:66

Reads the stored user values; an empty set when nothing is stored yet.

Promise<StoredSettings>

save(settings, rejected): Promise<void>

Defined in: app/src/domain/settings/settings-service.ts:72

Stores the user values and the values that were rejected while loading.

StoredSettings

Valid user values.

readonly RejectedSetting[]

Values kept aside because they were invalid.

Promise<void>


Defined in: app/src/domain/settings/settings-service.ts:50

User and workspace values as stored on disk.

readonly user: Readonly<Record<string, unknown>>

Defined in: app/src/domain/settings/settings-service.ts:51

readonly workspaces: Readonly<Record<string, Readonly<Record<string, unknown>>>>

Defined in: app/src/domain/settings/settings-service.ts:52

SettingSource = "default" | "policy-recommended" | "user" | "workspace" | "policy-mandatory"

Defined in: app/src/domain/settings/settings-service.ts:11

The layer a setting value comes from, from lowest to highest precedence.


SettingTarget = { scope: "user"; } | { scope: "workspace"; workspaceId: string; }

Defined in: app/src/domain/settings/settings-service.ts:15

Where a value is written.


SettingWriteError = { kind: "invalid-value"; message: string; } | { kind: "locked-by-policy"; } | { kind: "not-workspace-scoped"; }

Defined in: app/src/domain/settings/settings-service.ts:39

Why a write was refused.

const SettingsServiceToken: Token<SettingsService>

Defined in: app/src/domain/settings/settings-service.ts:83

Token for the SettingsService.

settingPolicies(definitions): PolicyDefinition<unknown>[]

Defined in: app/src/domain/settings/settings-service.ts:91

Derives the policy definitions of all settings that declare a policy, so that every such setting can be set and locked by administrators.

readonly SettingDefinition<unknown>[]

All settings.

PolicyDefinition<unknown>[]