Array of provider entities to search
Search query string
Optionaloptions: SearchAcrossProvidersOptionsOptional search configuration including user contexts for OAuth providers
A promise that resolves to aggregated results grouped by provider
// Search across Google Drive and Dropbox
const providers = [googleDriveProvider, dropboxProvider];
const userContexts = new Map([
[googleDriveProvider.ID, { userID: currentUser.ID, contextUser }],
[dropboxProvider.ID, { userID: currentUser.ID, contextUser }]
]);
const result = await searchAcrossProviders(providers, 'quarterly report', {
maxResultsPerProvider: 25,
fileTypes: ['pdf', 'docx'],
providerUserContexts: userContexts
});
// Process results by provider
for (const providerResult of result.providerResults) {
if (providerResult.success) {
console.log(`${providerResult.providerName}: ${providerResult.results.length} results`);
} else {
console.log(`${providerResult.providerName}: ${providerResult.errorMessage}`);
}
}
Searches for files across multiple storage providers in parallel.
This utility function enables searching for files across multiple storage providers simultaneously. Each provider is queried in parallel using Promise.allSettled, ensuring that failures in one provider don't affect results from others.
Providers that don't support search (SupportsSearch = false) will return a result with success=false and an appropriate error message rather than being silently skipped.