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 authored and GitHub committed 2026-01-14 00:01:07 +08:00
1 parent 7c440686ad
commit 7c24b2521a
41 files changed
+978 -503

No files matched your search

@@ -3,7 +3,7 @@ import {
BlobUploadMethod,
completeBlobUploadMutation,
createBlobUploadMutation,
getBlobUploadPartUrlMutation,
getBlobUploadPartUrlQuery,
setBlobMutation,
workspaceBlobQuotaQuery,
} from '@affine/graphql';
@@ -128,10 +128,12 @@ test('falls back to graphql and aborts when multipart upload fails', async () =>
},
};
}
if (query === getBlobUploadPartUrlMutation) {
if (query === getBlobUploadPartUrlQuery) {
return {
getBlobUploadPartUrl: {
uploadUrl: 'https://upload.example.com/part',
workspace: {
blobUploadPartUrl: {
uploadUrl: 'https://upload.example.com/part',
},
},
};
}