Saved Query Service
Manages user-defined reusable SQL queries with dataset references.
Service
Responsibilities
- Save new queries with name, SQL, and dataset reference
- Rename, update SQL, or change dataset reference
- Delete saved queries
Workspace Context
SavedQuery operations occur within a Workspace context.
All saved queries belong to exactly one Workspace, referenced via workspaceId.
Aggregate: SavedQuery
One aggregate instance per saved query (keyed by workspace_id/user_id/query_name).
State Machine
NoQuery → QueryExists(id, name, sql, datasetRef) ↑___________________________| (delete)Key Value Objects
- SavedQueryId: Unique query identifier
- WorkspaceId: Reference to containing Workspace
- DatasetRef: URI reference to dataset (hf://, s3://, etc.)
Invariants
- Query names must be non-empty
- SQL must be non-empty
- Names are unique per user (enforced by aggregate ID)