Workspaces
A workspace: your code on its own volume, the IDE, terminals, plans and visibility.
A workspace is your project's home in Harthelm: a copy of the code on a volume of its own, a VS Code editor and
terminals in the browser, the hart command line, and the services of its landscape.
What a workspace has
| Part | What |
|---|---|
| Code | /data/app, cloned from a Git repository or empty at the start. Everything you keep belongs here |
| Volume | The workspace's own disk, sized by its plan. Holds /data/app and the tools that mise and Nix install |
| IDE | VS Code in the browser, with the harthelm.yml schema built in |
| Terminals | Shells in /data/app, as many as you open. Each belongs to the person who opened it |
| Tools | mise and Nix to install languages and tools, git, and hart, already set to this workspace and its team |
| Landscape | The services harthelm.yml describes, with their dev URL |
| Env vars and a vault | Plain variables for everything in the workspace, and secrets for the services that name them |
The home directory is not kept: it is emptied when the workspace restarts or wakes. Keep your work in /data/app.
The settings you choose
When you click Create workspace, or run hart ws create, you choose:
- Start from: Git repository (needs a Git connection) or Empty.
- Name: 1 to 64 letters, digits, spaces, dots, dashes and underscores, unique in the team.
- Base image: the image the IDE runs on. Your installation offers one or more.
- IDE plan: the CPU, memory and disk of the IDE, for example
IDE S. Your installation defines the plans; the dialog shows their sizes. - Availability: Sleeps when idle sleeps when nobody uses it; Always running keeps running and holds its resources around the clock. See Sleep and wake.
- Visibility: Private lets only team members open the workspace's URLs; Public lets anyone with the link open its app address.
A workspace admin changes the plan, availability and visibility later; Workspace settings on the rail has the availability and the sleep timeout.
The workspace rail
The left rail of an open workspace holds its tools:
| Tool | What |
|---|---|
| IDE | The editor |
| Terminal | The terminal panel; also the list of terminals others have open |
| Overview | The landscape's state, the active services and shortcuts |
| Run panel | Sync, the stages, the services, their logs and replicas |
| Landscape config | harthelm.yml as a form or as YAML |
| Environment variables | The workspace's variables |
| Preview | Your app on the workspace's address, inside the console |
| Git access | The repositories this workspace may reach |
| Workspace access | Who has which role on this workspace |
| Workspace settings | Availability, sleep, power, backups |
Tool labels at the bottom of the rail writes each name under its icon, long ones in a short form (Landscape, Access, Env vars, Settings); the full name shows on hover.
Lifecycle
| State | What it means |
|---|---|
| Creating, Cloning | The volume is prepared and the repository cloned |
| Running | The IDE runs; you can work |
| Sleeping | Nobody used it for a while; the next visit wakes it. Files and settings are kept |
| Waking up | It starts again after a visit, usually within seconds |
| Deleting, Deleted | Deleted workspaces stay under Recently deleted for 7 days and can be restored |
Backups
While a workspace sleeps, an installation with workspace backups takes an archive of its volume. Archives show under Workspace settings → Backups, and each can be restored into a new workspace. A workspace that never sleeps is never archived. See Restore a workspace.