Files
speckle-server/packages/server/assets/workspaces/workspaces.graphql
T
Gergő Jedlicska 28ce7c757c feat(workspaces): add repository function implementations
Co-authored-by: Charles Driesler <chuck@speckle.systems>
2024-07-04 13:46:48 +01:00

91 lines
1.7 KiB
GraphQL

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
}