[Spike] Shared workspaces
<!--IssueSummary start-->
<details>
<summary>
Everyone can contribute. [Help move this issue forward](https://handbook.gitlab.com/handbook/marketing/developer-relations/contributor-success/community-contributors-workflows/#contributor-links) while earning points, leveling up and collecting rewards.
</summary>
- [Close this issue](https://contributors.gitlab.com/manage-issue?action=close&projectId=278964&issueIid=432674)
</details>
<!--IssueSummary end-->
## Description
There's some use cases where it'd be nice for different GitLab users to seamlessly connect to the same workspace. This brings up a lot of architectural considerations:
- How do we represent that a workspace is owned by a "Project" (or a system user of the "Project") and available to a subset of users (possible based on access level).
- How do we dynamically provision and secure multiple users within the running container?
## Considerations / Questions
...
## Spike Objectives
...
## Future Tasks
...
## Context
- Context: “Think Big” idea “What if we had Review Workspace vs. Review Apps for Merge Requests”?
This implies a “shared” workspace where multiple users can hop on.
- A “shared” workspace implies that we need the user connected in the workspace (i.e. `whoami`) to represent the GitLab user (not necessarily the user that created/”owns” the workspace).
- We can’t necessarily know the possible set of users ahead of time, so this implies the need for us to do a `useradd` on the workspace to provision a secure sandbox for that specific user in the workspace.
- For us to dynamically provision container users, we’ll need to run commands in an existing workspace, triggered by the Rails app whenever the user is requesting to connect…
- **brainstorm:** For us to run commands in the existing workspace, what if we had a CLI tool that could be included in every workspace? Rails could execute this CLI tool through `ssh` as the system user that owned the workspace.
- Notes from sync discussion document (internal): https://docs.google.com/document/d/1C4iOFmNDTQV--kbO9RPPwdd2fwyleiE-H1XGjwNWIEM/edit#heading=h.6v0tbiqtovs5
issue