Document the relationship between workspaces and projects
As discussed in many issues, but most recently in #414384 (closed) there is a disconnect between the UX and the architecture of workspaces.
In it's current iteration, workspaces are created from a .devfile.yaml
stored in a project's repository. This streamlines the user experience and provides affordances that satisfy our primary user journey, but the relationship between project
and workspace
is not as explicit as it seems.
A workspace currently cannot be created without a reference to a project. However, this may change which would allow a project to be deleted but the workspace to remain running without a project reference (see #414384 (comment 1448459260), which proposes to allow the workspace.project_id
field to be nullified if the project is deleted).
Once created, a workspace can do anything with the GitLab API that the current user's permissions allow.
This flexibility, though, makes it difficult to frame the relationship between workspaces, projects, and groups in a clear and concise way. It is, however, very important that administrators understand this relationship so they can effectively manage their users' activity.
Goal
Add documentation that clearly describes the relationship between a workspace and a project, what happens in scenarios where a project is moved or deleted, and in what scenarios a workspace is automatically terminated.