feat(server): team quota (#8955)

This commit is contained in:
DarkSky
2024-12-09 17:51:54 +08:00
committed by GitHub
parent 8fe188e773
commit 9365958a02
51 changed files with 1997 additions and 218 deletions

View File

@@ -361,9 +361,19 @@ type InvitationWorkspaceType {
name: String!
}
type InviteResult {
email: String!
"""Invite id, null if invite record create failed"""
inviteId: String
"""Invite email sent success"""
sentSuccess: Boolean!
}
type InviteUserType {
"""User accepted"""
accepted: Boolean!
accepted: Boolean! @deprecated(reason: "Use `status` instead")
"""User avatar url"""
avatarUrl: String
@@ -389,6 +399,9 @@ type InviteUserType {
"""User permission in workspace"""
permission: Permission!
"""Member invite status in workspace"""
status: WorkspaceMemberStatus!
}
enum InvoiceStatus {
@@ -451,6 +464,7 @@ type MissingOauthQueryParameterDataType {
type Mutation {
acceptInviteById(inviteId: String!, sendAcceptMail: Boolean, workspaceId: String!): Boolean!
addWorkspaceFeature(feature: FeatureType!, workspaceId: String!): Int!
approveMember(userId: String!, workspaceId: String!): String!
cancelSubscription(idempotencyKey: String @deprecated(reason: "use header `Idempotency-Key`"), plan: SubscriptionPlan = Pro, workspaceId: String): SubscriptionType!
changeEmail(email: String!, token: String!): UserType!
changePassword(newPassword: String!, token: String!, userId: String): Boolean!
@@ -490,7 +504,10 @@ type Mutation {
"""Create a chat session"""
forkCopilotSession(options: ForkChatSessionInput!): String!
grantMember(permission: Permission!, userId: String!, workspaceId: String!): String!
invite(email: String!, permission: Permission!, sendInviteMail: Boolean, workspaceId: String!): String!
inviteBatch(emails: [String!]!, sendInviteMail: Boolean, workspaceId: String!): [InviteResult!]!
inviteLink(expireTime: WorkspaceInviteLinkExpireTime!, workspaceId: String!): String!
leaveWorkspace(sendLeaveMail: Boolean, workspaceId: String!, workspaceName: String!): Boolean!
publishPage(mode: PublicPageMode = Page, pageId: String!, workspaceId: String!): WorkspacePage!
recoverDoc(guid: String!, timestamp: DateTime!, workspaceId: String!): DateTime!
@@ -500,6 +517,7 @@ type Mutation {
removeWorkspaceFeature(feature: FeatureType!, workspaceId: String!): Int!
resumeSubscription(idempotencyKey: String @deprecated(reason: "use header `Idempotency-Key`"), plan: SubscriptionPlan = Pro, workspaceId: String): SubscriptionType!
revoke(userId: String!, workspaceId: String!): Boolean!
revokeInviteLink(workspaceId: String!): Boolean!
revokePage(pageId: String!, workspaceId: String!): Boolean! @deprecated(reason: "use revokePublicPage")
revokePublicPage(pageId: String!, workspaceId: String!): WorkspacePage!
sendChangeEmail(callbackUrl: String!, email: String): Boolean!
@@ -831,6 +849,9 @@ input UpdateUserInput {
}
input UpdateWorkspaceInput {
"""Enable AI"""
enableAi: Boolean
"""Enable url previous when sharing"""
enableUrlPreview: Boolean
id: ID!
@@ -902,6 +923,22 @@ type WorkspaceBlobSizes {
size: SafeInt!
}
"""Workspace invite link expire time"""
enum WorkspaceInviteLinkExpireTime {
OneDay
OneMonth
OneWeek
ThreeDays
}
"""Member invite status in workspace"""
enum WorkspaceMemberStatus {
Accepted
NeedMoreSeat
Pending
UnderReview
}
type WorkspacePage {
id: String!
mode: PublicPageMode!
@@ -929,6 +966,9 @@ type WorkspaceType {
"""Workspace created date"""
createdAt: DateTime!
"""Enable AI"""
enableAi: Boolean!
"""Enable url previous when sharing"""
enableUrlPreview: Boolean!
@@ -976,6 +1016,9 @@ type WorkspaceType {
"""The team subscription of the workspace, if exists."""
subscription: SubscriptionType
"""if workspace is team workspace"""
team: Boolean!
}
type tokenType {