resyncDocuments
Reprocess documents matching specific criteria to update them after schema changes or configuration adjustments.
Instructions
Reprocesses documents that match the specified filter criteria. Useful for updating after schema changes.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| namespaceId | No | ||
| documentIds | No | ||
| tenantId | No | ||
| filterConfig | Yes |
Implementation Reference
- src/index.ts:524-568 (registration)Registers the MCP tool named 'resyncDocuments' with input schema and handler function that processes parameters and calls the SourceSync client's resyncDocuments method.server.tool( 'resyncDocuments', 'Reprocesses documents that match the specified filter criteria. Useful for updating after schema changes.', ResyncDocumentsSchema.shape, async (params: any) => { return safeApiCall(async () => { const { namespaceId, documentIds, tenantId, filterConfig } = params // Create a client with the provided parameters const client = createClient({ namespaceId, tenantId }) // Add documentIds to filter if provided and not already in filter if (documentIds && documentIds.length > 0 && !filterConfig.documentIds) { filterConfig.documentIds = documentIds } // Call the resyncDocuments method with properly structured parameters return await client.resyncDocuments({ filterConfig: { ...filterConfig, // Convert string enum values to their SourceSync enum equivalents documentTypes: filterConfig.documentTypes?.map( (type: string) => SourceSyncDocumentType[ type as keyof typeof SourceSyncDocumentType ], ), documentIngestionSources: filterConfig.documentIngestionSources?.map( (source: string) => SourceSyncIngestionSource[ source as keyof typeof SourceSyncIngestionSource ], ), documentIngestionStatuses: filterConfig.documentIngestionStatuses?.map( (status: string) => SourceSyncIngestionStatus[ status as keyof typeof SourceSyncIngestionStatus ], ), }, }) }) }, )
- src/sourcesync.ts:543-557 (handler)The core implementation of resyncDocuments in the SourceSyncApiClient class, which sends a POST request to /v1/documents/resync with the filterConfig.public async resyncDocuments({ filterConfig, }: Omit< SourceSyncResyncDocumentsRequest, 'namespaceId' >): Promise<SourceSyncResyncDocumentsResponse> { return this.client .url(`/v1/documents/resync`) .json({ namespaceId: this.namespaceId, filterConfig, } satisfies SourceSyncResyncDocumentsRequest) .post() .json<SourceSyncResyncDocumentsResponse>() }
- src/schemas.ts:413-418 (schema)Zod schema definition for the input parameters of the resyncDocuments tool.export const ResyncDocumentsSchema = z.object({ namespaceId: namespaceIdSchema.optional(), documentIds: z.array(z.string()).optional(), tenantId: tenantIdSchema, filterConfig: FilterConfigSchema, })
- src/sourcesync.types.ts:649-662 (schema)TypeScript type definitions for the SourceSyncResyncDocumentsRequest and SourceSyncResyncDocumentsResponse used by the client.export type SourceSyncResyncDocumentsRequest = { namespaceId: string filterConfig: SourceSyncDocumentFilterConfig } export type SourceSyncResyncDocumentsResponse = SourceSyncApiResponse<{ itemsQueued: number itemsSkipped: number documents: { id: string status: 'QUEUED_FOR_RESYNC' | 'NOT_ELIGIBLE_FOR_RESYNC' error: string | null }[] }>