import type { ApiServer } from '../ApiServer'; import type { PodLookupRepository } from '../../identity/drizzle/PodLookupRepository'; export interface PodManagementHandlerOptions { /** Pod 存储根目录 */ rootDir: string; /** 验证 IdP service token */ verifyServiceToken: (token: string) => Promise; /** 可选:限制允许的 pod 名称正则 */ podNameRegex?: RegExp; /** 可选:创建 CSS-compatible Pod 数据,而不是只创建裸目录 */ provisioningService?: { createPod(input: CreatePodRequest): Promise<{ podUrl: string; webId?: string; }>; }; /** SP-local Pod lookup used by Cloud consent to scope account WebIDs. */ podLookupRepository?: Pick & Partial>; /** Canonical storage root for this SP; lookup responses are fail-closed to this root. */ storageProviderBaseUrl?: string; /** Derived from the long-lived SP service token; never from per-request access tokens. */ receiptSigningSecret?: string; } export interface CreatePodRequest { /** Pod 名称(通常是用户名) */ podName: string; /** Owner WebID,Cloud IDP + Local SP 时应为 Cloud WebID */ webId?: string; /** 可选:初始资源 */ initialResources?: Record; } export interface CreatePodResponse { success: boolean; podUrl: string; webId?: string; provisionReceipt?: string; message: string; } export interface DeletePodResponse { success: boolean; message: string; } /** * Pod Management Handler * * SP (Storage Provider) 端供 IdP 调用的 API。 * 用于创建/删除/查询 Pod 目录。 * * 端点 (Solid Storage Provision Protocol): * - POST /provision/pods - 创建 Pod * - GET /provision/pods/:podName - 查询 Pod * - DELETE /provision/pods/:podName - 删除 Pod * * 认证: * - 使用 IdP service token (Bearer) * - 验证 token 是否来自信任的 IdP */ export declare function registerPodManagementRoutes(server: ApiServer, options: PodManagementHandlerOptions): void;