feat: reduce backend (#14251)

#### PR Dependency Tree


* **PR #14251** 👈

This tree was auto-generated by
[Charcoal](https://github.com/danerwilliams/charcoal)

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Current user profile now exposes access tokens, revealed tokens, and
detailed calendar accounts/subscriptions.
* Workspace now exposes permissions, calendars, calendar events, and a
workspace-scoped blob upload part URL.
  * New document-update mutation for applying doc updates.

* **API Changes**
  * validateAppConfig is now a query (mutation deprecated).
* Several legacy top-level calendar/blob endpoints deprecated in favor
of user/workspace fields.

* **Refactor**
* Calendar, blob-upload and access-token surfaces reorganized to use
user/workspace-centric fields.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
DarkSky
2026-01-14 00:01:07 +08:00
committed by GitHub
parent 7c440686ad
commit 7c24b2521a
41 changed files with 978 additions and 503 deletions
@@ -1,9 +1,11 @@
query listUserAccessTokens {
revealedAccessTokens {
id
name
createdAt
expiresAt
token
currentUser {
revealedAccessTokens {
id
name
createdAt
expiresAt
token
}
}
}
}
@@ -1,4 +1,4 @@
mutation validateConfig($updates: [UpdateAppConfigInput!]!) {
query validateConfig($updates: [UpdateAppConfigInput!]!) {
validateAppConfig(updates: $updates) {
module
key
@@ -6,4 +6,4 @@ mutation validateConfig($updates: [UpdateAppConfigInput!]!) {
valid
error
}
}
}
@@ -1,7 +1,9 @@
mutation getBlobUploadPartUrl($workspaceId: String!, $key: String!, $uploadId: String!, $partNumber: Int!) {
getBlobUploadPartUrl(workspaceId: $workspaceId, key: $key, uploadId: $uploadId, partNumber: $partNumber) {
uploadUrl
headers
expiresAt
query getBlobUploadPartUrl($workspaceId: String!, $key: String!, $uploadId: String!, $partNumber: Int!) {
workspace(id: $workspaceId) {
blobUploadPartUrl(key: $key, uploadId: $uploadId, partNumber: $partNumber) {
uploadUrl
headers
expiresAt
}
}
}
@@ -1,13 +0,0 @@
query calendarAccountCalendars($accountId: String!) {
calendarAccountCalendars(accountId: $accountId) {
id
accountId
provider
externalCalendarId
displayName
timezone
color
enabled
lastSyncAt
}
}
@@ -1,15 +1,28 @@
query calendarAccounts {
calendarAccounts {
id
provider
providerAccountId
displayName
email
status
lastError
refreshIntervalMinutes
calendarsCount
createdAt
updatedAt
currentUser {
calendarAccounts {
id
provider
providerAccountId
displayName
email
status
lastError
refreshIntervalMinutes
calendarsCount
createdAt
updatedAt
calendars {
id
accountId
provider
externalCalendarId
displayName
timezone
color
enabled
lastSyncAt
}
}
}
}
@@ -1,16 +1,21 @@
query calendarEvents($workspaceCalendarId: String!, $from: DateTime!, $to: DateTime!) {
calendarEvents(workspaceCalendarId: $workspaceCalendarId, from: $from, to: $to) {
id
subscriptionId
externalEventId
recurrenceId
status
title
description
location
startAtUtc
endAtUtc
originalTimezone
allDay
query calendarEvents($workspaceId: String!, $from: DateTime!, $to: DateTime!) {
workspace(id: $workspaceId) {
calendars {
id
events(from: $from, to: $to) {
id
subscriptionId
externalEventId
recurrenceId
status
title
description
location
startAtUtc
endAtUtc
originalTimezone
allDay
}
}
}
}
@@ -1,3 +1,5 @@
query calendarProviders {
calendarProviders
serverConfig {
calendarProviders
}
}
@@ -1,17 +1,19 @@
query workspaceCalendars($workspaceId: String!) {
workspaceCalendars(workspaceId: $workspaceId) {
id
workspaceId
createdByUserId
displayNameOverride
colorOverride
enabled
items {
workspace(id: $workspaceId) {
calendars {
id
subscriptionId
sortOrder
workspaceId
createdByUserId
displayNameOverride
colorOverride
enabled
items {
id
subscriptionId
sortOrder
colorOverride
enabled
}
}
}
}
@@ -1,3 +1,3 @@
query applyDocUpdates($workspaceId: String!, $docId: String!, $op: String!, $updates: String!) {
mutation applyDocUpdates($workspaceId: String!, $docId: String!, $op: String!, $updates: String!) {
applyDocUpdates(workspaceId: $workspaceId, docId: $docId, op: $op, updates: $updates)
}
}
@@ -0,0 +1,36 @@
fragment CurrentUserProfile on UserType {
id
name
email
avatarUrl
emailVerified
features
settings {
receiveInvitationEmail
receiveMentionEmail
receiveCommentEmail
}
quota {
name
blobLimit
storageQuota
historyPeriod
memberLimit
humanReadable {
name
blobLimit
storageQuota
historyPeriod
memberLimit
}
}
quotaUsage {
storageQuota
}
copilot {
quota {
limit
used
}
}
}
@@ -0,0 +1,7 @@
#import './fragments/current-user-profile.gql'
query getCurrentUserProfile {
currentUser {
...CurrentUserProfile
}
}
@@ -1,5 +1,27 @@
query getWorkspaceInfo($workspaceId: String!) {
workspace(id: $workspaceId) {
permissions {
Workspace_Administrators_Manage
Workspace_Blobs_List
Workspace_Blobs_Read
Workspace_Blobs_Write
Workspace_Copilot
Workspace_CreateDoc
Workspace_Delete
Workspace_Organize_Read
Workspace_Payment_Manage
Workspace_Properties_Create
Workspace_Properties_Delete
Workspace_Properties_Read
Workspace_Properties_Update
Workspace_Read
Workspace_Settings_Read
Workspace_Settings_Update
Workspace_Sync
Workspace_TransferOwner
Workspace_Users_Manage
Workspace_Users_Read
}
role
team
}
+155 -80
View File
@@ -58,6 +58,42 @@ export const credentialsRequirementsFragment = `fragment CredentialsRequirements
...PasswordLimits
}
}`;
export const currentUserProfileFragment = `fragment CurrentUserProfile on UserType {
id
name
email
avatarUrl
emailVerified
features
settings {
receiveInvitationEmail
receiveMentionEmail
receiveCommentEmail
}
quota {
name
blobLimit
storageQuota
historyPeriod
memberLimit
humanReadable {
name
blobLimit
storageQuota
historyPeriod
memberLimit
}
}
quotaUsage {
storageQuota
}
copilot {
quota {
limit
used
}
}
}`;
export const passwordLimitsFragment = `fragment PasswordLimits on PasswordLimitsType {
minLength
maxLength
@@ -88,12 +124,14 @@ export const listUserAccessTokensQuery = {
id: 'listUserAccessTokensQuery' as const,
op: 'listUserAccessTokens',
query: `query listUserAccessTokens {
revealedAccessTokens {
id
name
createdAt
expiresAt
token
currentUser {
revealedAccessTokens {
id
name
createdAt
expiresAt
token
}
}
}`,
};
@@ -444,10 +482,10 @@ export const updateAppConfigMutation = {
}`,
};
export const validateConfigMutation = {
id: 'validateConfigMutation' as const,
export const validateConfigQuery = {
id: 'validateConfigQuery' as const,
op: 'validateConfig',
query: `mutation validateConfig($updates: [UpdateAppConfigInput!]!) {
query: `query validateConfig($updates: [UpdateAppConfigInput!]!) {
validateAppConfig(updates: $updates) {
module
key
@@ -540,37 +578,16 @@ export const createBlobUploadMutation = {
}`,
};
export const getBlobUploadPartUrlMutation = {
id: 'getBlobUploadPartUrlMutation' as const,
export const getBlobUploadPartUrlQuery = {
id: 'getBlobUploadPartUrlQuery' as const,
op: 'getBlobUploadPartUrl',
query: `mutation getBlobUploadPartUrl($workspaceId: String!, $key: String!, $uploadId: String!, $partNumber: Int!) {
getBlobUploadPartUrl(
workspaceId: $workspaceId
key: $key
uploadId: $uploadId
partNumber: $partNumber
) {
uploadUrl
headers
expiresAt
}
}`,
};
export const calendarAccountCalendarsQuery = {
id: 'calendarAccountCalendarsQuery' as const,
op: 'calendarAccountCalendars',
query: `query calendarAccountCalendars($accountId: String!) {
calendarAccountCalendars(accountId: $accountId) {
id
accountId
provider
externalCalendarId
displayName
timezone
color
enabled
lastSyncAt
query: `query getBlobUploadPartUrl($workspaceId: String!, $key: String!, $uploadId: String!, $partNumber: Int!) {
workspace(id: $workspaceId) {
blobUploadPartUrl(key: $key, uploadId: $uploadId, partNumber: $partNumber) {
uploadUrl
headers
expiresAt
}
}
}`,
};
@@ -579,18 +596,31 @@ export const calendarAccountsQuery = {
id: 'calendarAccountsQuery' as const,
op: 'calendarAccounts',
query: `query calendarAccounts {
calendarAccounts {
id
provider
providerAccountId
displayName
email
status
lastError
refreshIntervalMinutes
calendarsCount
createdAt
updatedAt
currentUser {
calendarAccounts {
id
provider
providerAccountId
displayName
email
status
lastError
refreshIntervalMinutes
calendarsCount
createdAt
updatedAt
calendars {
id
accountId
provider
externalCalendarId
displayName
timezone
color
enabled
lastSyncAt
}
}
}
}`,
};
@@ -598,20 +628,25 @@ export const calendarAccountsQuery = {
export const calendarEventsQuery = {
id: 'calendarEventsQuery' as const,
op: 'calendarEvents',
query: `query calendarEvents($workspaceCalendarId: String!, $from: DateTime!, $to: DateTime!) {
calendarEvents(workspaceCalendarId: $workspaceCalendarId, from: $from, to: $to) {
id
subscriptionId
externalEventId
recurrenceId
status
title
description
location
startAtUtc
endAtUtc
originalTimezone
allDay
query: `query calendarEvents($workspaceId: String!, $from: DateTime!, $to: DateTime!) {
workspace(id: $workspaceId) {
calendars {
id
events(from: $from, to: $to) {
id
subscriptionId
externalEventId
recurrenceId
status
title
description
location
startAtUtc
endAtUtc
originalTimezone
allDay
}
}
}
}`,
};
@@ -620,7 +655,9 @@ export const calendarProvidersQuery = {
id: 'calendarProvidersQuery' as const,
op: 'calendarProviders',
query: `query calendarProviders {
calendarProviders
serverConfig {
calendarProviders
}
}`,
};
@@ -689,19 +726,21 @@ export const workspaceCalendarsQuery = {
id: 'workspaceCalendarsQuery' as const,
op: 'workspaceCalendars',
query: `query workspaceCalendars($workspaceId: String!) {
workspaceCalendars(workspaceId: $workspaceId) {
id
workspaceId
createdByUserId
displayNameOverride
colorOverride
enabled
items {
workspace(id: $workspaceId) {
calendars {
id
subscriptionId
sortOrder
workspaceId
createdByUserId
displayNameOverride
colorOverride
enabled
items {
id
subscriptionId
sortOrder
colorOverride
enabled
}
}
}
}`,
@@ -915,10 +954,10 @@ export const uploadCommentAttachmentMutation = {
file: true,
};
export const applyDocUpdatesQuery = {
id: 'applyDocUpdatesQuery' as const,
export const applyDocUpdatesMutation = {
id: 'applyDocUpdatesMutation' as const,
op: 'applyDocUpdates',
query: `query applyDocUpdates($workspaceId: String!, $docId: String!, $op: String!, $updates: String!) {
query: `mutation applyDocUpdates($workspaceId: String!, $docId: String!, $op: String!, $updates: String!) {
applyDocUpdates(
workspaceId: $workspaceId
docId: $docId
@@ -1748,6 +1787,17 @@ export const getCurrentUserFeaturesQuery = {
}`,
};
export const getCurrentUserProfileQuery = {
id: 'getCurrentUserProfileQuery' as const,
op: 'getCurrentUserProfile',
query: `query getCurrentUserProfile {
currentUser {
...CurrentUserProfile
}
}
${currentUserProfileFragment}`,
};
export const getCurrentUserQuery = {
id: 'getCurrentUserQuery' as const,
op: 'getCurrentUser',
@@ -1998,6 +2048,28 @@ export const getWorkspaceInfoQuery = {
op: 'getWorkspaceInfo',
query: `query getWorkspaceInfo($workspaceId: String!) {
workspace(id: $workspaceId) {
permissions {
Workspace_Administrators_Manage
Workspace_Blobs_List
Workspace_Blobs_Read
Workspace_Blobs_Write
Workspace_Copilot
Workspace_CreateDoc
Workspace_Delete
Workspace_Organize_Read
Workspace_Payment_Manage
Workspace_Properties_Create
Workspace_Properties_Delete
Workspace_Properties_Read
Workspace_Properties_Update
Workspace_Read
Workspace_Settings_Read
Workspace_Settings_Update
Workspace_Sync
Workspace_TransferOwner
Workspace_Users_Manage
Workspace_Users_Read
}
role
team
}
@@ -2336,7 +2408,9 @@ export const notificationCountQuery = {
op: 'notificationCount',
query: `query notificationCount {
currentUser {
notificationCount
notifications(pagination: {first: 1}) {
totalCount
}
}
}`,
};
@@ -2523,6 +2597,7 @@ export const serverConfigQuery = {
features
type
initialized
calendarProviders
credentialsRequirement {
...CredentialsRequirements
}
@@ -1,5 +1,7 @@
query notificationCount {
currentUser {
notificationCount
currentUser {
notifications(pagination: { first: 1 }) {
totalCount
}
}
}
@@ -9,6 +9,7 @@ query serverConfig {
features
type
initialized
calendarProviders
credentialsRequirement {
...CredentialsRequirements
}
+285 -127
View File
@@ -246,6 +246,7 @@ export interface BlobUploadedPart {
export interface CalendarAccountObjectType {
__typename?: 'CalendarAccountObjectType';
calendars: Array<CalendarSubscriptionObjectType>;
calendarsCount: Scalars['Int']['output'];
createdAt: Scalars['DateTime']['output'];
displayName: Maybe<Scalars['String']['output']>;
@@ -1570,6 +1571,8 @@ export interface Mutation {
addWorkspaceFeature: Scalars['Boolean']['output'];
/** Update workspace flags and features for admin */
adminUpdateWorkspace: Maybe<AdminWorkspace>;
/** Apply updates to a doc using LLM and return the merged markdown. */
applyDocUpdates: Scalars['String']['output'];
approveMember: Scalars['Boolean']['output'];
/** Ban an user */
banUser: UserType;
@@ -1619,6 +1622,7 @@ export interface Mutation {
forkCopilotSession: Scalars['String']['output'];
generateLicenseKey: Scalars['String']['output'];
generateUserAccessToken: RevealedAccessToken;
/** @deprecated use WorkspaceType.blobUploadPartUrl */
getBlobUploadPartUrl: BlobUploadPart;
grantDocUserRoles: Scalars['Boolean']['output'];
grantMember: Scalars['Boolean']['output'];
@@ -1716,7 +1720,10 @@ export interface Mutation {
uploadAvatar: UserType;
/** Upload a comment attachment and return the access url */
uploadCommentAttachment: Scalars['String']['output'];
/** validate app configuration */
/**
* validate app configuration
* @deprecated use Query.validateAppConfig
*/
validateAppConfig: Array<AppConfigValidateResult>;
verifyEmail: Scalars['Boolean']['output'];
}
@@ -1769,6 +1776,13 @@ export interface MutationAdminUpdateWorkspaceArgs {
input: AdminUpdateWorkspaceInput;
}
export interface MutationApplyDocUpdatesArgs {
docId: Scalars['String']['input'];
op: Scalars['String']['input'];
updates: Scalars['String']['input'];
workspaceId: Scalars['String']['input'];
}
export interface MutationApproveMemberArgs {
userId: Scalars['String']['input'];
workspaceId: Scalars['String']['input'];
@@ -2387,6 +2401,7 @@ export interface PublicUserType {
export interface Query {
__typename?: 'Query';
/** @deprecated use currentUser.accessTokens */
accessTokens: Array<AccessToken>;
/** Get workspace detail for admin */
adminWorkspace: Maybe<AdminWorkspace>;
@@ -2396,12 +2411,11 @@ export interface Query {
adminWorkspacesCount: Scalars['Int']['output'];
/** get the whole app configuration */
appConfig: Scalars['JSONObject']['output'];
/** Apply updates to a doc using LLM and return the merged markdown. */
/**
* Apply updates to a doc using LLM and return the merged markdown.
* @deprecated use Mutation.applyDocUpdates
*/
applyDocUpdates: Scalars['String']['output'];
calendarAccountCalendars: Array<CalendarSubscriptionObjectType>;
calendarAccounts: Array<CalendarAccountObjectType>;
calendarEvents: Array<CalendarEventObjectType>;
calendarProviders: Array<CalendarProviderType>;
/** @deprecated use `user.quotaUsage` instead */
collectAllBlobSizes: WorkspaceBlobSizes;
/** Get current user */
@@ -2426,6 +2440,7 @@ export interface Query {
publicUserById: Maybe<PublicUserType>;
/** query workspace embedding status */
queryWorkspaceEmbeddingStatus: ContextWorkspaceEmbeddingStatus;
/** @deprecated use currentUser.revealedAccessTokens */
revealedAccessTokens: Array<RevealedAccessToken>;
/** server config */
serverConfig: ServerConfigType;
@@ -2439,9 +2454,10 @@ export interface Query {
users: Array<UserType>;
/** Get users count */
usersCount: Scalars['Int']['output'];
/** validate app configuration */
validateAppConfig: Array<AppConfigValidateResult>;
/** Get workspace by id */
workspace: WorkspaceType;
workspaceCalendars: Array<WorkspaceCalendarObjectType>;
/**
* Get workspace role permissions
* @deprecated use WorkspaceType[permissions] instead
@@ -2470,16 +2486,6 @@ export interface QueryApplyDocUpdatesArgs {
workspaceId: Scalars['String']['input'];
}
export interface QueryCalendarAccountCalendarsArgs {
accountId: Scalars['String']['input'];
}
export interface QueryCalendarEventsArgs {
from: Scalars['DateTime']['input'];
to: Scalars['DateTime']['input'];
workspaceCalendarId: Scalars['String']['input'];
}
export interface QueryErrorArgs {
name: ErrorNames;
}
@@ -2524,12 +2530,12 @@ export interface QueryUsersCountArgs {
filter?: InputMaybe<ListUserInput>;
}
export interface QueryWorkspaceArgs {
id: Scalars['String']['input'];
export interface QueryValidateAppConfigArgs {
updates: Array<UpdateAppConfigInput>;
}
export interface QueryWorkspaceCalendarsArgs {
workspaceId: Scalars['String']['input'];
export interface QueryWorkspaceArgs {
id: Scalars['String']['input'];
}
export interface QueryWorkspaceRolePermissionsArgs {
@@ -2754,6 +2760,7 @@ export interface ServerConfigType {
availableWorkspaceFeatures: Array<FeatureType>;
/** server base url */
baseUrl: Scalars['String']['output'];
calendarProviders: Array<CalendarProviderType>;
/** credentials requirement */
credentialsRequirement: CredentialsRequirementType;
/** enabled server features */
@@ -3055,8 +3062,10 @@ export interface UserSettingsType {
export interface UserType {
__typename?: 'UserType';
accessTokens: Array<AccessToken>;
/** User avatar url */
avatarUrl: Maybe<Scalars['String']['output']>;
calendarAccounts: Array<CalendarAccountObjectType>;
copilot: Copilot;
/**
* User email verified
@@ -3085,6 +3094,7 @@ export interface UserType {
notifications: PaginatedNotificationObjectType;
quota: UserQuotaType;
quotaUsage: UserQuotaUsageType;
revealedAccessTokens: Array<RevealedAccessToken>;
/** Get user settings */
settings: UserSettingsType;
subscriptions: Array<SubscriptionType>;
@@ -3142,11 +3152,17 @@ export interface WorkspaceCalendarObjectType {
createdByUserId: Scalars['String']['output'];
displayNameOverride: Maybe<Scalars['String']['output']>;
enabled: Scalars['Boolean']['output'];
events: Array<CalendarEventObjectType>;
id: Scalars['String']['output'];
items: Array<WorkspaceCalendarItemObjectType>;
workspaceId: Scalars['String']['output'];
}
export interface WorkspaceCalendarObjectTypeEventsArgs {
from: Scalars['DateTime']['input'];
to: Scalars['DateTime']['input'];
}
export interface WorkspaceDocMeta {
__typename?: 'WorkspaceDocMeta';
createdAt: Scalars['DateTime']['output'];
@@ -3239,10 +3255,13 @@ export interface WorkspaceType {
__typename?: 'WorkspaceType';
/** Search a specific table with aggregate */
aggregate: AggregateResultObjectType;
/** Get blob upload part url */
blobUploadPartUrl: BlobUploadPart;
/** List blobs of workspace */
blobs: Array<ListedBlob>;
/** Blobs size of workspace */
blobsSize: Scalars['Int']['output'];
calendars: Array<WorkspaceCalendarObjectType>;
/** Get comment changes of a doc */
commentChanges: PaginatedCommentChangeObjectType;
/** Get comments of a doc */
@@ -3314,6 +3333,12 @@ export interface WorkspaceTypeAggregateArgs {
input: AggregateInput;
}
export interface WorkspaceTypeBlobUploadPartUrlArgs {
key: Scalars['String']['input'];
partNumber: Scalars['Int']['input'];
uploadId: Scalars['String']['input'];
}
export interface WorkspaceTypeCommentChangesArgs {
docId: Scalars['String']['input'];
pagination: PaginationInput;
@@ -3411,14 +3436,17 @@ export type ListUserAccessTokensQueryVariables = Exact<{
export type ListUserAccessTokensQuery = {
__typename?: 'Query';
revealedAccessTokens: Array<{
__typename?: 'RevealedAccessToken';
id: string;
name: string;
createdAt: string;
expiresAt: string | null;
token: string;
}>;
currentUser: {
__typename?: 'UserType';
revealedAccessTokens: Array<{
__typename?: 'RevealedAccessToken';
id: string;
name: string;
createdAt: string;
expiresAt: string | null;
token: string;
}>;
} | null;
};
export type RevokeUserAccessTokenMutationVariables = Exact<{
@@ -3793,12 +3821,12 @@ export type UpdateAppConfigMutation = {
updateAppConfig: any;
};
export type ValidateConfigMutationVariables = Exact<{
export type ValidateConfigQueryVariables = Exact<{
updates: Array<UpdateAppConfigInput> | UpdateAppConfigInput;
}>;
export type ValidateConfigMutation = {
__typename?: 'Mutation';
export type ValidateConfigQuery = {
__typename?: 'Query';
validateAppConfig: Array<{
__typename?: 'AppConfigValidateResult';
module: string;
@@ -3904,93 +3932,101 @@ export type CreateBlobUploadMutation = {
};
};
export type GetBlobUploadPartUrlMutationVariables = Exact<{
export type GetBlobUploadPartUrlQueryVariables = Exact<{
workspaceId: Scalars['String']['input'];
key: Scalars['String']['input'];
uploadId: Scalars['String']['input'];
partNumber: Scalars['Int']['input'];
}>;
export type GetBlobUploadPartUrlMutation = {
__typename?: 'Mutation';
getBlobUploadPartUrl: {
__typename?: 'BlobUploadPart';
uploadUrl: string;
headers: any | null;
expiresAt: string | null;
};
};
export type CalendarAccountCalendarsQueryVariables = Exact<{
accountId: Scalars['String']['input'];
}>;
export type CalendarAccountCalendarsQuery = {
export type GetBlobUploadPartUrlQuery = {
__typename?: 'Query';
calendarAccountCalendars: Array<{
__typename?: 'CalendarSubscriptionObjectType';
id: string;
accountId: string;
provider: CalendarProviderType;
externalCalendarId: string;
displayName: string | null;
timezone: string | null;
color: string | null;
enabled: boolean;
lastSyncAt: string | null;
}>;
workspace: {
__typename?: 'WorkspaceType';
blobUploadPartUrl: {
__typename?: 'BlobUploadPart';
uploadUrl: string;
headers: any | null;
expiresAt: string | null;
};
};
};
export type CalendarAccountsQueryVariables = Exact<{ [key: string]: never }>;
export type CalendarAccountsQuery = {
__typename?: 'Query';
calendarAccounts: Array<{
__typename?: 'CalendarAccountObjectType';
id: string;
provider: CalendarProviderType;
providerAccountId: string;
displayName: string | null;
email: string | null;
status: string;
lastError: string | null;
refreshIntervalMinutes: number;
calendarsCount: number;
createdAt: string;
updatedAt: string;
}>;
currentUser: {
__typename?: 'UserType';
calendarAccounts: Array<{
__typename?: 'CalendarAccountObjectType';
id: string;
provider: CalendarProviderType;
providerAccountId: string;
displayName: string | null;
email: string | null;
status: string;
lastError: string | null;
refreshIntervalMinutes: number;
calendarsCount: number;
createdAt: string;
updatedAt: string;
calendars: Array<{
__typename?: 'CalendarSubscriptionObjectType';
id: string;
accountId: string;
provider: CalendarProviderType;
externalCalendarId: string;
displayName: string | null;
timezone: string | null;
color: string | null;
enabled: boolean;
lastSyncAt: string | null;
}>;
}>;
} | null;
};
export type CalendarEventsQueryVariables = Exact<{
workspaceCalendarId: Scalars['String']['input'];
workspaceId: Scalars['String']['input'];
from: Scalars['DateTime']['input'];
to: Scalars['DateTime']['input'];
}>;
export type CalendarEventsQuery = {
__typename?: 'Query';
calendarEvents: Array<{
__typename?: 'CalendarEventObjectType';
id: string;
subscriptionId: string;
externalEventId: string;
recurrenceId: string | null;
status: string | null;
title: string | null;
description: string | null;
location: string | null;
startAtUtc: string;
endAtUtc: string;
originalTimezone: string | null;
allDay: boolean;
}>;
workspace: {
__typename?: 'WorkspaceType';
calendars: Array<{
__typename?: 'WorkspaceCalendarObjectType';
id: string;
events: Array<{
__typename?: 'CalendarEventObjectType';
id: string;
subscriptionId: string;
externalEventId: string;
recurrenceId: string | null;
status: string | null;
title: string | null;
description: string | null;
location: string | null;
startAtUtc: string;
endAtUtc: string;
originalTimezone: string | null;
allDay: boolean;
}>;
}>;
};
};
export type CalendarProvidersQueryVariables = Exact<{ [key: string]: never }>;
export type CalendarProvidersQuery = {
__typename?: 'Query';
calendarProviders: Array<CalendarProviderType>;
serverConfig: {
__typename?: 'ServerConfigType';
calendarProviders: Array<CalendarProviderType>;
};
};
export type LinkCalendarAccountMutationVariables = Exact<{
@@ -4065,23 +4101,26 @@ export type WorkspaceCalendarsQueryVariables = Exact<{
export type WorkspaceCalendarsQuery = {
__typename?: 'Query';
workspaceCalendars: Array<{
__typename?: 'WorkspaceCalendarObjectType';
id: string;
workspaceId: string;
createdByUserId: string;
displayNameOverride: string | null;
colorOverride: string | null;
enabled: boolean;
items: Array<{
__typename?: 'WorkspaceCalendarItemObjectType';
workspace: {
__typename?: 'WorkspaceType';
calendars: Array<{
__typename?: 'WorkspaceCalendarObjectType';
id: string;
subscriptionId: string;
sortOrder: number | null;
workspaceId: string;
createdByUserId: string;
displayNameOverride: string | null;
colorOverride: string | null;
enabled: boolean;
items: Array<{
__typename?: 'WorkspaceCalendarItemObjectType';
id: string;
subscriptionId: string;
sortOrder: number | null;
colorOverride: string | null;
enabled: boolean;
}>;
}>;
}>;
};
};
export type CancelSubscriptionMutationVariables = Exact<{
@@ -4326,15 +4365,15 @@ export type UploadCommentAttachmentMutation = {
uploadCommentAttachment: string;
};
export type ApplyDocUpdatesQueryVariables = Exact<{
export type ApplyDocUpdatesMutationVariables = Exact<{
workspaceId: Scalars['String']['input'];
docId: Scalars['String']['input'];
op: Scalars['String']['input'];
updates: Scalars['String']['input'];
}>;
export type ApplyDocUpdatesQuery = {
__typename?: 'Query';
export type ApplyDocUpdatesMutation = {
__typename?: 'Mutation';
applyDocUpdates: string;
};
@@ -5722,6 +5761,43 @@ export type CredentialsRequirementsFragment = {
};
};
export type CurrentUserProfileFragment = {
__typename?: 'UserType';
id: string;
name: string;
email: string;
avatarUrl: string | null;
emailVerified: boolean;
features: Array<FeatureType>;
settings: {
__typename?: 'UserSettingsType';
receiveInvitationEmail: boolean;
receiveMentionEmail: boolean;
receiveCommentEmail: boolean;
};
quota: {
__typename?: 'UserQuotaType';
name: string;
blobLimit: number;
storageQuota: number;
historyPeriod: number;
memberLimit: number;
humanReadable: {
__typename?: 'UserQuotaHumanReadableType';
name: string;
blobLimit: string;
storageQuota: string;
historyPeriod: string;
memberLimit: string;
};
};
quotaUsage: { __typename?: 'UserQuotaUsageType'; storageQuota: number };
copilot: {
__typename?: 'Copilot';
quota: { __typename?: 'CopilotQuota'; limit: number | null; used: number };
};
};
export type PasswordLimitsFragment = {
__typename?: 'PasswordLimitsType';
minLength: number;
@@ -5754,6 +5830,54 @@ export type GetCurrentUserFeaturesQuery = {
} | null;
};
export type GetCurrentUserProfileQueryVariables = Exact<{
[key: string]: never;
}>;
export type GetCurrentUserProfileQuery = {
__typename?: 'Query';
currentUser: {
__typename?: 'UserType';
id: string;
name: string;
email: string;
avatarUrl: string | null;
emailVerified: boolean;
features: Array<FeatureType>;
settings: {
__typename?: 'UserSettingsType';
receiveInvitationEmail: boolean;
receiveMentionEmail: boolean;
receiveCommentEmail: boolean;
};
quota: {
__typename?: 'UserQuotaType';
name: string;
blobLimit: number;
storageQuota: number;
historyPeriod: number;
memberLimit: number;
humanReadable: {
__typename?: 'UserQuotaHumanReadableType';
name: string;
blobLimit: string;
storageQuota: string;
historyPeriod: string;
memberLimit: string;
};
};
quotaUsage: { __typename?: 'UserQuotaUsageType'; storageQuota: number };
copilot: {
__typename?: 'Copilot';
quota: {
__typename?: 'CopilotQuota';
limit: number | null;
used: number;
};
};
} | null;
};
export type GetCurrentUserQueryVariables = Exact<{ [key: string]: never }>;
export type GetCurrentUserQuery = {
@@ -6042,7 +6166,34 @@ export type GetWorkspaceInfoQueryVariables = Exact<{
export type GetWorkspaceInfoQuery = {
__typename?: 'Query';
workspace: { __typename?: 'WorkspaceType'; role: Permission; team: boolean };
workspace: {
__typename?: 'WorkspaceType';
role: Permission;
team: boolean;
permissions: {
__typename?: 'WorkspacePermissions';
Workspace_Administrators_Manage: boolean;
Workspace_Blobs_List: boolean;
Workspace_Blobs_Read: boolean;
Workspace_Blobs_Write: boolean;
Workspace_Copilot: boolean;
Workspace_CreateDoc: boolean;
Workspace_Delete: boolean;
Workspace_Organize_Read: boolean;
Workspace_Payment_Manage: boolean;
Workspace_Properties_Create: boolean;
Workspace_Properties_Delete: boolean;
Workspace_Properties_Read: boolean;
Workspace_Properties_Update: boolean;
Workspace_Read: boolean;
Workspace_Settings_Read: boolean;
Workspace_Settings_Update: boolean;
Workspace_Sync: boolean;
Workspace_TransferOwner: boolean;
Workspace_Users_Manage: boolean;
Workspace_Users_Read: boolean;
};
};
};
export type GetWorkspacePageByIdQueryVariables = Exact<{
@@ -6454,7 +6605,13 @@ export type NotificationCountQueryVariables = Exact<{ [key: string]: never }>;
export type NotificationCountQuery = {
__typename?: 'Query';
currentUser: { __typename?: 'UserType'; notificationCount: number } | null;
currentUser: {
__typename?: 'UserType';
notifications: {
__typename?: 'PaginatedNotificationObjectType';
totalCount: number;
};
} | null;
};
export type PricesQueryVariables = Exact<{ [key: string]: never }>;
@@ -6656,6 +6813,7 @@ export type ServerConfigQuery = {
features: Array<ServerFeature>;
type: ServerDeploymentType;
initialized: boolean;
calendarProviders: Array<CalendarProviderType>;
credentialsRequirement: {
__typename?: 'CredentialsRequirementType';
password: {
@@ -7101,15 +7259,20 @@ export type Queries =
variables: ListUsersQueryVariables;
response: ListUsersQuery;
}
| {
name: 'validateConfigQuery';
variables: ValidateConfigQueryVariables;
response: ValidateConfigQuery;
}
| {
name: 'listBlobsQuery';
variables: ListBlobsQueryVariables;
response: ListBlobsQuery;
}
| {
name: 'calendarAccountCalendarsQuery';
variables: CalendarAccountCalendarsQueryVariables;
response: CalendarAccountCalendarsQuery;
name: 'getBlobUploadPartUrlQuery';
variables: GetBlobUploadPartUrlQueryVariables;
response: GetBlobUploadPartUrlQuery;
}
| {
name: 'calendarAccountsQuery';
@@ -7141,11 +7304,6 @@ export type Queries =
variables: ListCommentsQueryVariables;
response: ListCommentsQuery;
}
| {
name: 'applyDocUpdatesQuery';
variables: ApplyDocUpdatesQueryVariables;
response: ApplyDocUpdatesQuery;
}
| {
name: 'listContextObjectQuery';
variables: ListContextObjectQueryVariables;
@@ -7261,6 +7419,11 @@ export type Queries =
variables: GetCurrentUserFeaturesQueryVariables;
response: GetCurrentUserFeaturesQuery;
}
| {
name: 'getCurrentUserProfileQuery';
variables: GetCurrentUserProfileQueryVariables;
response: GetCurrentUserProfileQuery;
}
| {
name: 'getCurrentUserQuery';
variables: GetCurrentUserQueryVariables;
@@ -7533,11 +7696,6 @@ export type Mutations =
variables: UpdateAppConfigMutationVariables;
response: UpdateAppConfigMutation;
}
| {
name: 'validateConfigMutation';
variables: ValidateConfigMutationVariables;
response: ValidateConfigMutation;
}
| {
name: 'deleteBlobMutation';
variables: DeleteBlobMutationVariables;
@@ -7568,11 +7726,6 @@ export type Mutations =
variables: CreateBlobUploadMutationVariables;
response: CreateBlobUploadMutation;
}
| {
name: 'getBlobUploadPartUrlMutation';
variables: GetBlobUploadPartUrlMutationVariables;
response: GetBlobUploadPartUrlMutation;
}
| {
name: 'linkCalendarAccountMutation';
variables: LinkCalendarAccountMutationVariables;
@@ -7648,6 +7801,11 @@ export type Mutations =
variables: UploadCommentAttachmentMutationVariables;
response: UploadCommentAttachmentMutation;
}
| {
name: 'applyDocUpdatesMutation';
variables: ApplyDocUpdatesMutationVariables;
response: ApplyDocUpdatesMutation;
}
| {
name: 'addContextBlobMutation';
variables: AddContextBlobMutationVariables;