Workspace Preferences Service

Manages workspace-scoped settings: default catalog selection and layout defaults for new dashboards.

Service

Responsibilities

  • Initialize preferences when workspace is created
  • Configure default catalog for queries in workspace
  • Set layout defaults for new dashboard creation
  • Clear default catalog selection

Aggregate: WorkspacePreferences

One aggregate per workspace (keyed by workspace_id).

Commands

CommandDescription
InitializeWorkspacePreferencesCreate default preferences for a new workspace
SetDefaultCatalogSet the default catalog for new queries
ClearDefaultCatalogRemove the default catalog selection
UpdateLayoutDefaultsPersist default layout settings for new dashboards

Key Value Objects

  • PreferencesId: Unique identifier for the preferences record
  • WorkspaceId: Reference to the parent workspace
  • CatalogId: Optional reference to default catalog
  • LayoutDefaultsJson: JSON blob with dashboard creation defaults

Invariants

  • Layout defaults must be valid JSON (enforced at boundary)
  • Default catalog must be accessible to workspace members (runtime validation)
  • Exactly one preferences record per workspace

Distinction from UserPreferencesService

WorkspacePreferencesService manages settings shared by all workspace members, while UserPreferencesService manages personal settings that follow the individual user across workspaces.

ServiceScopeExample Settings
WorkspacePreferencesServiceWorkspace membersDefault catalog, layout defaults
UserPreferencesServiceIndividual userTheme, locale, UI state