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)">></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:
Permission | admin | editor | viewer |
---|---|---|---|
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 | ✅ | ✅ |