Workspaces allow a user to make changes to a service and debug without having to save. This allows a user to preview changes to a workflow without actually affecting the server or breaking existing dependencies.
The other primary use case for a workspace is unsaved new workflows. Any new workflow is automatically saved in a workspace on the server and it is available to the user even if the Studio is shut down unexpectedly.
Each user is assigned a workspace on login by the server and the ResourceCatalogue is responsible for maintaining workspaces. The Warewolf Studio maintains a copy of the unsaved and opened services in C:\Users\[User]]\AppData\Local\Warewolf\UserInterfaceLayouts.
On connect, the Studio requests these resources from the server and automatically opens them for editing. The main touch point for Workspaces in the Studio is WorkspaceItemRepository.