mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-11 20:08:37 +00:00
546 lines
12 KiB
GraphQL
546 lines
12 KiB
GraphQL
# ------------------------------------------------------
|
|
# THIS FILE WAS AUTOMATICALLY GENERATED (DO NOT MODIFY)
|
|
# ------------------------------------------------------
|
|
|
|
type ChatMessage {
|
|
attachments: [String!]
|
|
content: String!
|
|
createdAt: DateTime!
|
|
params: JSON
|
|
role: String!
|
|
}
|
|
|
|
type Copilot {
|
|
"""Get the session list of actions in the workspace"""
|
|
actions: [String!]!
|
|
|
|
"""Get the session list of chats in the workspace"""
|
|
chats: [String!]!
|
|
histories(docId: String, options: QueryChatHistoriesInput): [CopilotHistories!]!
|
|
|
|
"""Get the quota of the user in the workspace"""
|
|
quota: CopilotQuota!
|
|
workspaceId: ID
|
|
}
|
|
|
|
type CopilotHistories {
|
|
"""An mark identifying which view to use to display the session"""
|
|
action: String
|
|
createdAt: DateTime!
|
|
messages: [ChatMessage!]!
|
|
sessionId: String!
|
|
|
|
"""The number of tokens used in the session"""
|
|
tokens: Int!
|
|
}
|
|
|
|
type CopilotQuota {
|
|
limit: SafeInt
|
|
used: SafeInt!
|
|
}
|
|
|
|
input CreateChatMessageInput {
|
|
attachments: [String!]
|
|
blobs: [Upload!]
|
|
content: String
|
|
params: JSON
|
|
sessionId: String!
|
|
}
|
|
|
|
input CreateChatSessionInput {
|
|
docId: String!
|
|
|
|
"""The prompt name to use for the session"""
|
|
promptName: String!
|
|
workspaceId: String!
|
|
}
|
|
|
|
input CreateCheckoutSessionInput {
|
|
coupon: String
|
|
idempotencyKey: String!
|
|
plan: SubscriptionPlan = Pro
|
|
recurring: SubscriptionRecurring = Yearly
|
|
successCallbackLink: String
|
|
}
|
|
|
|
type CredentialsRequirementType {
|
|
password: PasswordLimitsType!
|
|
}
|
|
|
|
"""
|
|
A date-time string at UTC, such as 2019-12-03T09:54:33Z, compliant with the date-time format.
|
|
"""
|
|
scalar DateTime
|
|
|
|
type DeleteAccount {
|
|
success: Boolean!
|
|
}
|
|
|
|
input DeleteSessionInput {
|
|
docId: String!
|
|
sessionIds: [String!]!
|
|
workspaceId: String!
|
|
}
|
|
|
|
type DocHistoryType {
|
|
id: String!
|
|
timestamp: DateTime!
|
|
workspaceId: String!
|
|
}
|
|
|
|
enum EarlyAccessType {
|
|
AI
|
|
App
|
|
}
|
|
|
|
"""The type of workspace feature"""
|
|
enum FeatureType {
|
|
AIEarlyAccess
|
|
Admin
|
|
Copilot
|
|
EarlyAccess
|
|
UnlimitedCopilot
|
|
UnlimitedWorkspace
|
|
}
|
|
|
|
type HumanReadableQuotaType {
|
|
blobLimit: String!
|
|
copilotActionLimit: String
|
|
historyPeriod: String!
|
|
memberLimit: String!
|
|
name: String!
|
|
storageQuota: String!
|
|
}
|
|
|
|
type InvitationType {
|
|
"""Invitee information"""
|
|
invitee: UserType!
|
|
|
|
"""User information"""
|
|
user: UserType!
|
|
|
|
"""Workspace information"""
|
|
workspace: InvitationWorkspaceType!
|
|
}
|
|
|
|
type InvitationWorkspaceType {
|
|
"""Base64 encoded avatar"""
|
|
avatar: String!
|
|
id: ID!
|
|
|
|
"""Workspace name"""
|
|
name: String!
|
|
}
|
|
|
|
type InviteUserType {
|
|
"""User accepted"""
|
|
accepted: Boolean!
|
|
|
|
"""User avatar url"""
|
|
avatarUrl: String
|
|
|
|
"""User email verified"""
|
|
createdAt: DateTime @deprecated(reason: "useless")
|
|
|
|
"""User email"""
|
|
email: String
|
|
|
|
"""User email verified"""
|
|
emailVerified: Boolean
|
|
|
|
"""User password has been set"""
|
|
hasPassword: Boolean
|
|
id: ID!
|
|
|
|
"""Invite id"""
|
|
inviteId: String!
|
|
|
|
"""User name"""
|
|
name: String
|
|
|
|
"""User permission in workspace"""
|
|
permission: Permission!
|
|
}
|
|
|
|
enum InvoiceStatus {
|
|
Draft
|
|
Open
|
|
Paid
|
|
Uncollectible
|
|
Void
|
|
}
|
|
|
|
"""
|
|
The `JSON` scalar type represents JSON values as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf).
|
|
"""
|
|
scalar JSON @specifiedBy(url: "http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf")
|
|
|
|
type LimitedUserType {
|
|
"""User email"""
|
|
email: String!
|
|
|
|
"""User password has been set"""
|
|
hasPassword: Boolean
|
|
}
|
|
|
|
type Mutation {
|
|
acceptInviteById(inviteId: String!, sendAcceptMail: Boolean, workspaceId: String!): Boolean!
|
|
addAdminister(email: String!): Boolean!
|
|
addToEarlyAccess(email: String!, type: EarlyAccessType!): Int!
|
|
addWorkspaceFeature(feature: FeatureType!, workspaceId: String!): Int!
|
|
cancelSubscription(idempotencyKey: String!, plan: SubscriptionPlan = Pro): UserSubscription!
|
|
changeEmail(email: String!, token: String!): UserType!
|
|
changePassword(newPassword: String!, token: String!): UserType!
|
|
|
|
"""Cleanup sessions"""
|
|
cleanupCopilotSession(options: DeleteSessionInput!): String!
|
|
|
|
"""Create a subscription checkout link of stripe"""
|
|
createCheckoutSession(input: CreateCheckoutSessionInput!): String!
|
|
|
|
"""Create a chat message"""
|
|
createCopilotMessage(options: CreateChatMessageInput!): String!
|
|
|
|
"""Create a chat session"""
|
|
createCopilotSession(options: CreateChatSessionInput!): String!
|
|
|
|
"""Create a stripe customer portal to manage payment methods"""
|
|
createCustomerPortal: String!
|
|
|
|
"""Create a new workspace"""
|
|
createWorkspace(init: Upload): WorkspaceType!
|
|
deleteAccount: DeleteAccount!
|
|
deleteBlob(hash: String!, workspaceId: String!): Boolean!
|
|
deleteWorkspace(id: String!): Boolean!
|
|
invite(email: String!, permission: Permission!, sendInviteMail: Boolean, 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!
|
|
|
|
"""Remove user avatar"""
|
|
removeAvatar: RemoveAvatar!
|
|
removeEarlyAccess(email: String!): Int!
|
|
removeWorkspaceFeature(feature: FeatureType!, workspaceId: String!): Int!
|
|
resumeSubscription(idempotencyKey: String!, plan: SubscriptionPlan = Pro): UserSubscription!
|
|
revoke(userId: String!, 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!
|
|
sendChangePasswordEmail(callbackUrl: String!, email: String): Boolean!
|
|
sendSetPasswordEmail(callbackUrl: String!, email: String): Boolean!
|
|
sendVerifyChangeEmail(callbackUrl: String!, email: String!, token: String!): Boolean!
|
|
sendVerifyEmail(callbackUrl: String!): Boolean!
|
|
setBlob(blob: Upload!, workspaceId: String!): String!
|
|
setWorkspaceExperimentalFeature(enable: Boolean!, feature: FeatureType!, workspaceId: String!): Boolean!
|
|
sharePage(pageId: String!, workspaceId: String!): Boolean! @deprecated(reason: "renamed to publishPage")
|
|
updateProfile(input: UpdateUserInput!): UserType!
|
|
updateSubscriptionRecurring(idempotencyKey: String!, plan: SubscriptionPlan = Pro, recurring: SubscriptionRecurring!): UserSubscription!
|
|
|
|
"""Update workspace"""
|
|
updateWorkspace(input: UpdateWorkspaceInput!): WorkspaceType!
|
|
|
|
"""Upload user avatar"""
|
|
uploadAvatar(avatar: Upload!): UserType!
|
|
verifyEmail(token: String!): Boolean!
|
|
}
|
|
|
|
enum OAuthProviderType {
|
|
GitHub
|
|
Google
|
|
OIDC
|
|
}
|
|
|
|
type PasswordLimitsType {
|
|
maxLength: Int!
|
|
minLength: Int!
|
|
}
|
|
|
|
"""User permission in workspace"""
|
|
enum Permission {
|
|
Admin
|
|
Owner
|
|
Read
|
|
Write
|
|
}
|
|
|
|
"""The mode which the public page default in"""
|
|
enum PublicPageMode {
|
|
Edgeless
|
|
Page
|
|
}
|
|
|
|
type Query {
|
|
checkBlobSize(size: SafeInt!, workspaceId: String!): WorkspaceBlobSizes! @deprecated(reason: "no more needed")
|
|
collectAllBlobSizes: WorkspaceBlobSizes! @deprecated(reason: "use `user.storageUsage` instead")
|
|
|
|
"""Get current user"""
|
|
currentUser: UserType
|
|
earlyAccessUsers: [UserType!]!
|
|
|
|
"""send workspace invitation"""
|
|
getInviteInfo(inviteId: String!): InvitationType!
|
|
|
|
"""Get is owner of workspace"""
|
|
isOwner(workspaceId: String!): Boolean!
|
|
|
|
"""List blobs of workspace"""
|
|
listBlobs(workspaceId: String!): [String!]! @deprecated(reason: "use `workspace.blobs` instead")
|
|
listWorkspaceFeatures(feature: FeatureType!): [WorkspaceType!]!
|
|
prices: [SubscriptionPrice!]!
|
|
|
|
"""server config"""
|
|
serverConfig: ServerConfigType!
|
|
|
|
"""Get user by email"""
|
|
user(email: String!): UserOrLimitedUser
|
|
|
|
"""Get workspace by id"""
|
|
workspace(id: String!): WorkspaceType!
|
|
|
|
"""Get all accessible workspaces for current user"""
|
|
workspaces: [WorkspaceType!]!
|
|
}
|
|
|
|
input QueryChatHistoriesInput {
|
|
action: Boolean
|
|
limit: Int
|
|
sessionId: String
|
|
skip: Int
|
|
}
|
|
|
|
type QuotaQueryType {
|
|
blobLimit: SafeInt!
|
|
copilotActionLimit: SafeInt
|
|
historyPeriod: SafeInt!
|
|
humanReadable: HumanReadableQuotaType!
|
|
memberLimit: SafeInt!
|
|
name: String!
|
|
storageQuota: SafeInt!
|
|
usedSize: SafeInt!
|
|
}
|
|
|
|
type RemoveAvatar {
|
|
success: Boolean!
|
|
}
|
|
|
|
"""
|
|
The `SafeInt` scalar type represents non-fractional signed whole numeric values that are considered safe as defined by the ECMAScript specification.
|
|
"""
|
|
scalar SafeInt @specifiedBy(url: "https://www.ecma-international.org/ecma-262/#sec-number.issafeinteger")
|
|
|
|
type ServerConfigType {
|
|
"""server base url"""
|
|
baseUrl: String!
|
|
|
|
"""credentials requirement"""
|
|
credentialsRequirement: CredentialsRequirementType!
|
|
|
|
"""enable telemetry"""
|
|
enableTelemetry: Boolean!
|
|
|
|
"""enabled server features"""
|
|
features: [ServerFeature!]!
|
|
|
|
"""server flavor"""
|
|
flavor: String! @deprecated(reason: "use `features`")
|
|
|
|
"""server identical name could be shown as badge on user interface"""
|
|
name: String!
|
|
oauthProviders: [OAuthProviderType!]!
|
|
|
|
"""server type"""
|
|
type: ServerDeploymentType!
|
|
|
|
"""server version"""
|
|
version: String!
|
|
}
|
|
|
|
enum ServerDeploymentType {
|
|
Affine
|
|
Selfhosted
|
|
}
|
|
|
|
enum ServerFeature {
|
|
Copilot
|
|
OAuth
|
|
Payment
|
|
}
|
|
|
|
enum SubscriptionPlan {
|
|
AI
|
|
Enterprise
|
|
Free
|
|
Pro
|
|
SelfHosted
|
|
Team
|
|
}
|
|
|
|
type SubscriptionPrice {
|
|
amount: Int
|
|
currency: String!
|
|
plan: SubscriptionPlan!
|
|
type: String!
|
|
yearlyAmount: Int
|
|
}
|
|
|
|
enum SubscriptionRecurring {
|
|
Monthly
|
|
Yearly
|
|
}
|
|
|
|
enum SubscriptionStatus {
|
|
Active
|
|
Canceled
|
|
Incomplete
|
|
IncompleteExpired
|
|
PastDue
|
|
Paused
|
|
Trialing
|
|
Unpaid
|
|
}
|
|
|
|
input UpdateUserInput {
|
|
"""User name"""
|
|
name: String
|
|
}
|
|
|
|
input UpdateWorkspaceInput {
|
|
id: ID!
|
|
|
|
"""is Public workspace"""
|
|
public: Boolean
|
|
}
|
|
|
|
"""The `Upload` scalar type represents a file upload."""
|
|
scalar Upload
|
|
|
|
type UserInvoice {
|
|
amount: Int!
|
|
createdAt: DateTime!
|
|
currency: String!
|
|
id: String!
|
|
lastPaymentError: String
|
|
link: String
|
|
plan: SubscriptionPlan!
|
|
reason: String!
|
|
recurring: SubscriptionRecurring!
|
|
status: InvoiceStatus!
|
|
updatedAt: DateTime!
|
|
}
|
|
|
|
union UserOrLimitedUser = LimitedUserType | UserType
|
|
|
|
type UserSubscription {
|
|
canceledAt: DateTime
|
|
createdAt: DateTime!
|
|
end: DateTime!
|
|
id: String!
|
|
nextBillAt: DateTime
|
|
|
|
"""
|
|
The 'Free' plan just exists to be a placeholder and for the type convenience of frontend.
|
|
There won't actually be a subscription with plan 'Free'
|
|
"""
|
|
plan: SubscriptionPlan!
|
|
recurring: SubscriptionRecurring!
|
|
start: DateTime!
|
|
status: SubscriptionStatus!
|
|
trialEnd: DateTime
|
|
trialStart: DateTime
|
|
updatedAt: DateTime!
|
|
}
|
|
|
|
type UserType {
|
|
"""User avatar url"""
|
|
avatarUrl: String
|
|
copilot(workspaceId: String): Copilot!
|
|
|
|
"""User email verified"""
|
|
createdAt: DateTime @deprecated(reason: "useless")
|
|
|
|
"""User email"""
|
|
email: String!
|
|
|
|
"""User email verified"""
|
|
emailVerified: Boolean!
|
|
|
|
"""Enabled features of a user"""
|
|
features: [FeatureType!]!
|
|
|
|
"""User password has been set"""
|
|
hasPassword: Boolean
|
|
id: ID!
|
|
|
|
"""Get user invoice count"""
|
|
invoiceCount: Int!
|
|
invoices(skip: Int, take: Int = 8): [UserInvoice!]!
|
|
|
|
"""User name"""
|
|
name: String!
|
|
subscription(plan: SubscriptionPlan = Pro): UserSubscription @deprecated(reason: "use `UserType.subscriptions`")
|
|
subscriptions: [UserSubscription!]!
|
|
token: tokenType! @deprecated(reason: "use [/api/auth/authorize]")
|
|
}
|
|
|
|
type WorkspaceBlobSizes {
|
|
size: SafeInt!
|
|
}
|
|
|
|
type WorkspacePage {
|
|
id: String!
|
|
mode: PublicPageMode!
|
|
public: Boolean!
|
|
workspaceId: String!
|
|
}
|
|
|
|
type WorkspaceType {
|
|
"""Available features of workspace"""
|
|
availableFeatures: [FeatureType!]!
|
|
|
|
"""List blobs of workspace"""
|
|
blobs: [String!]!
|
|
|
|
"""Blobs size of workspace"""
|
|
blobsSize: Int!
|
|
|
|
"""Workspace created date"""
|
|
createdAt: DateTime!
|
|
|
|
"""Enabled features of workspace"""
|
|
features: [FeatureType!]!
|
|
histories(before: DateTime, guid: String!, take: Int): [DocHistoryType!]!
|
|
id: ID!
|
|
|
|
"""member count of workspace"""
|
|
memberCount: Int!
|
|
|
|
"""Members of workspace"""
|
|
members(skip: Int, take: Int): [InviteUserType!]!
|
|
|
|
"""Owner of workspace"""
|
|
owner: UserType!
|
|
|
|
"""Permission of current signed in user in workspace"""
|
|
permission: Permission!
|
|
|
|
"""is Public workspace"""
|
|
public: Boolean!
|
|
|
|
"""Get public page of a workspace by page id."""
|
|
publicPage(pageId: String!): WorkspacePage
|
|
|
|
"""Public pages of a workspace"""
|
|
publicPages: [WorkspacePage!]!
|
|
|
|
"""quota of workspace"""
|
|
quota: QuotaQueryType!
|
|
|
|
"""Shared pages of workspace"""
|
|
sharedPages: [String!]! @deprecated(reason: "use WorkspaceType.publicPages")
|
|
}
|
|
|
|
type tokenType {
|
|
refresh: String!
|
|
sessionToken: String
|
|
token: String!
|
|
} |