Workspace Administration

A Workspace is the top-level namespace in the Tailor Platform for your organization, containing all applications, including each Tailor Platform service. Since changing workspace settings affects all the applications within the workspace, only Platform users have permission to manage workspaces.

You can use the interactive mode of tailorctl to view all the options available for workspace management by running the following command.

<span><span style="color: var(--shiki-token-function)">tailorctl</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">workspace</span><span style="color: var(--shiki-color-text)"> </span></span>
<span><span style="color: var(--shiki-color-text)">  (</span><span style="color: var(--shiki-token-function)">current</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">workspace:</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">,</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-constant)">88</span><span style="color: var(--shiki-token-string)">bbfa20-af40-4bac-b429-53f9194de057</span><span style="color: var(--shiki-color-text)">)</span></span>
<span><span style="color: var(--shiki-token-keyword)">?</span><span style="color: var(--shiki-color-text)"> Select a command...  [Use arrows to move, type to filter]</span></span>
<span><span style="color: var(--shiki-token-keyword)">&gt;</span><span style="color: var(--shiki-color-text)"> apply - Help: Apply the manifest(</span><span style="color: var(--shiki-token-function)">s</span><span style="color: var(--shiki-color-text)">)</span></span>
<span><span style="color: var(--shiki-color-text)">  </span><span style="color: var(--shiki-token-function)">create</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">-</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">Help:</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">Creates</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">a</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">workspace</span></span>
<span><span style="color: var(--shiki-color-text)">  </span><span style="color: var(--shiki-token-function)">describe</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">-</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">Help:</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">Describe</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">the</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">active</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">workspace</span></span>
<span><span style="color: var(--shiki-color-text)">  </span><span style="color: var(--shiki-token-function)">list</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">-</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">Help:</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">List</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">available</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">workspaces</span></span>
<span><span style="color: var(--shiki-color-text)">  </span><span style="color: var(--shiki-token-function)">destroy</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">-</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">Help:</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">Destroys</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">a</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">workspace</span></span>
<span><span style="color: var(--shiki-color-text)">  </span><span style="color: var(--shiki-token-function)">app</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">-</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">Subcommands:</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">login,</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">open,</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">list,</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">delete</span></span>
<span><span style="color: var(--shiki-color-text)">  </span><span style="color: var(--shiki-token-function)">vault</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">-</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">Subcommands:</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">create,</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">delete,</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">list,</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">secret</span></span>
<span><span style="color: var(--shiki-color-text)">  </span><span style="color: var(--shiki-token-function)">user</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">-</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">Subcommands:</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">list,</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">invite,</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">update,</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">remove</span></span>
<span><span style="color: var(--shiki-color-text)">  </span><span style="color: var(--shiki-token-function)">machineuser</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">-</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">Subcommands:</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">list,</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">token</span></span>
<span><span style="color: var(--shiki-color-text)">  </span><span style="color: var(--shiki-token-function)">oauth2client</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">-</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">Subcommands:</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">list</span></span>
<span><span style="color: var(--shiki-color-text)">  </span><span style="color: var(--shiki-token-function)">service</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">-</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">Subcommands:</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">list,</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">delete</span></span>
<span><span style="color: var(--shiki-color-text)">  </span><span style="color: var(--shiki-token-function)">webhook</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">-</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">Subcommands:</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">list</span></span>
<span><span style="color: var(--shiki-color-text)">  </span><span style="color: var(--shiki-token-function)">Back</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">-</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">Back</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">to</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">previous</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">menu</span></span>
<span></span>

Platform users with an admin role can create a new workspace, manage workspace users, and delete the workspace.

By default, a maximum of 10 workspaces can be created per organization.

What is the Platform user?

The Platform user is the user who can log in to Tailor Platform using the following command:

<span><span style="color: var(--shiki-token-function)">tailorctl</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">auth</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">login</span><span style="color: var(--shiki-color-text)"> </span></span>
<span></span>

When you sign up for an account, we create a Platform user with an admin role for you to manage your workspace. Please note that the users you add to your application are not Platform users and therefore cannot manage your workspace.
To add a new Platform user, you can invite anyone with a Tailor Platform account to your workspace through the Tailor CLI using the following command:

<span><span style="color: var(--shiki-token-function)">tailorctl</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">workspace</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">user</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">invite</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">--email</span><span style="color: var(--shiki-color-text)"> $userEmailAddress </span><span style="color: var(--shiki-token-string)">--role</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string-expression)">$(</span><span style="color: var(--shiki-token-function)">admin</span><span style="color: var(--shiki-token-keyword)">|</span><span style="color: var(--shiki-token-function)">editor</span><span style="color: var(--shiki-token-keyword)">|</span><span style="color: var(--shiki-token-function)">viewer</span><span style="color: var(--shiki-token-string-expression)">)</span></span>
<span></span>

Depending on the role assigned, the Platform user will have different permissions to manage workspaces.

Permissions of the Platform user

There are three roles for the Platform user: admin, editor and viewer.

admin

The admin role can manage all workspace and application settings.

editor

The editor role can manage all application settings but cannot manage workspace settings.
However, editor users have read permission for the workspace settings they belong to.

viewer

The viewer role can only view all application and workspace settings.

Here's a list of permissions for each role:

Permissionadmineditorviewer
Workspace
Create a workspace
Describe a workspace
Delete a workspace
Invite users to a workspace
Remove users from a workspace
Update platform user role
List workspaces
List services
List machine users
List platform users
Delete services
Applications
Create an App
Apply CUE manifest to an App
Delete an App
List Apps
Login to an App
List webhook
List oauth2 clients