Workspaces And Domains
Workspaces and domains are the two main scope controls in UModel.
Workspace
A workspace is an isolated context for:
- UModel definitions.
- Entity and relation records.
- Query execution.
- AgentGateway discovery and tools.
- Local GraphStore persistence.
The public API makes the workspace explicit in path parameters:
POST /api/v1/umodel/{workspace}/import
POST /api/v1/entitystore/{workspace}/entities:write
POST /api/v1/query/{workspace}/execute
GET /api/v1/agent/{workspace}/discoverCLI commands use the same model:
go run ./cmd/umctl --addr http://localhost:8080 workspace create demo '{"name":"Demo"}'
go run ./cmd/umctl --addr http://localhost:8080 query run demo ".umodel | limit 5"Domain
A domain is a semantic namespace inside a workspace. Examples include:
devopsfor delivery and service ownership objects.k8sfor Kubernetes objects.automaker,game, orsupplierfor business scenario objects.
Domain names appear in UModel metadata:
metadata:
name: "devops.service"
domain: devopsThey also appear in query filters:
go run ./cmd/umctl --addr http://localhost:8080 query run demo ".entity with(domain='devops', name='devops.service') | limit 5"Boundary Rules
Workspace boundary: operational isolation for separate teams, demos, test fixtures, or tenant-like local contexts.
Domain boundary: shared vocabulary and naming for DevOps services, Kubernetes workloads, cloud resources, or business-specific objects.
Naming Rules
| Item | Shape | Example |
|---|---|---|
| Workspace ID | short, URL-safe, environment-oriented | demo, dev, quickstart-lab |
| Domain | lowercase semantic namespace | devops, k8s, automaker |
| EntitySet name | {domain}.{entity} | devops.service |
| MetricSet name | {domain}.metric.{scope} | devops.metric.devops.service |
| Storage name | {domain}.{kind}.{purpose}.storage | devops.metric_set.core.storage |
Persistence
When using file.memory, workspace metadata is saved under the data root and graph collections are saved by workspace:
data/
├── workspaces.json
└── graphstore/file-memory/workspaces/demo/
├── umodels.json
├── entities.json
└── relations.jsonProvider details: Storage And GraphStore Providers.