feat: shared link list (#14200)

#### PR Dependency Tree


* **PR #14200** 👈

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

## Release Notes

* **New Features**
* Added a "Shared Links" panel to workspace management, enabling admins
to view all published documents within a workspace
* Added publication date tracking for published documents, now displayed
alongside shared links

* **Chores**
  * Removed deprecated `publicPages` field; use `publicDocs` instead

<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-02 21:07:41 +08:00
committed by GitHub
parent 9f96633b33
commit 60de882a30
13 changed files with 264 additions and 33 deletions

View File

@@ -26,6 +26,11 @@ query adminWorkspace(
snapshotSize
blobCount
blobSize
sharedLinks {
docId
title
publishedAt
}
members(skip: $memberSkip, take: $memberTake, query: $memberQuery) {
id
name

View File

@@ -190,6 +190,11 @@ export const adminWorkspaceQuery = {
snapshotSize
blobCount
blobSize
sharedLinks {
docId
title
publishedAt
}
members(skip: $memberSkip, take: $memberTake, query: $memberQuery) {
id
name

View File

@@ -96,6 +96,7 @@ export interface AdminWorkspace {
owner: Maybe<WorkspaceUserType>;
public: Scalars['Boolean']['output'];
publicPageCount: Scalars['Int']['output'];
sharedLinks: Array<AdminWorkspaceSharedLink>;
snapshotCount: Scalars['Int']['output'];
snapshotSize: Scalars['SafeInt']['output'];
}
@@ -116,6 +117,13 @@ export interface AdminWorkspaceMember {
status: WorkspaceMemberStatus;
}
export interface AdminWorkspaceSharedLink {
__typename?: 'AdminWorkspaceSharedLink';
docId: Scalars['String']['output'];
publishedAt: Maybe<Scalars['DateTime']['output']>;
title: Maybe<Scalars['String']['output']>;
}
export enum AdminWorkspaceSort {
BlobCount = 'BlobCount',
BlobSize = 'BlobSize',
@@ -3142,8 +3150,6 @@ export interface WorkspaceType {
* @deprecated use [WorkspaceType.doc] instead
*/
publicPage: Maybe<DocType>;
/** @deprecated use [WorkspaceType.publicDocs] instead */
publicPages: Array<DocType>;
/** quota of workspace */
quota: WorkspaceQuotaType;
/** Get recently updated docs of a workspace */
@@ -3378,6 +3384,12 @@ export type AdminWorkspaceQuery = {
email: string;
avatarUrl: string | null;
} | null;
sharedLinks: Array<{
__typename?: 'AdminWorkspaceSharedLink';
docId: string;
title: string | null;
publishedAt: string | null;
}>;
members: Array<{
__typename?: 'AdminWorkspaceMember';
id: string;