Workspace Service
Manages workspace lifecycle including creation, naming, ownership, and visibility settings.
Service
Responsibilities
- Create new workspaces with owner and visibility settings
- Rename workspaces
- Change workspace visibility (Public/Private)
- Maintain workspace identity immutability after creation
Aggregate: Workspace
The Workspace aggregate serves as the organizational container for dashboards, saved queries, and preferences. It manages workspace identity, naming, ownership, and visibility settings.
Key Value Objects
- WorkspaceId: Unique identifier for a workspace (immutable after creation)
- WorkspaceName: User-facing display name
- Visibility: Access control setting (Public or Private)
- UserId: Reference to owner from SharedKernel
Invariants
- WorkspaceId is immutable after creation
- OwnerId references a valid UserId from SharedKernel
- Visibility is always a valid Visibility value (Public or Private)
Visibility Semantics
- Public: Visible to all authenticated users
- Private: Visible only to owner (and explicitly shared users in future)