type Workspace { id: ID! name: String! description: String createdAt: DateTime! updatedAt: DateTime! """ Active user's role for this workspace. `null` if request is not authenticated, or the workspace is not explicitly shared with you. """ role: String team: [WorkspaceCollaborator!]! invitedTeam: [PendingWorkspaceCollaborator!] projects( limit: Int! = 25 cursor: String filter: UserProjectsFilter ): ProjectCollection! } type WorkspaceCollaborator { id: ID! role: String! user: LimitedUser! } type PendingWorkspaceCollaborator { id: ID! inviteId: String! workspaceId: String! workspaceName: String! """ E-mail address or name of the invited user """ title: String! role: String! invitedBy: LimitedUser! """ Set only if user is registered """ user: LimitedUser """ Only available if the active user is the pending workspace collaborator """ token: String } type WorkspaceCollection { totalCount: Int! cursor: String items: [Workspace!]! } extend type User { """ Get the workspaces for the user """ workspaces( limit: Int! = 25 cursor: String = null filter: UserWorkspacesFilter ): WorkspaceCollection! @isOwner } extend type Project { workspace: Workspace } type ServerWorkspacesInfo { """ This is a backend control variable for the workspaces feature set. Since workspaces need a backend logic to be enabled, this is not enough as a feature flag. """ workspacesEnabled: Boolean! } extend type ServerInfo { workspaces: ServerWorkspacesInfo! } extend type AdminQueries { workspaceList( query: String limit: Int! = 25 cursor: String = null ): WorkspaceCollection! } input UserWorkspacesFilter { search: String }