feat(server): auto index all workspaces to indexer (#12205)

close CLOUD-207

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit

- **New Features**
  - Introduced automated periodic indexing of workspaces with a new job type and a scheduled cron job running every 30 seconds.
  - Added a unique sequential identifier (`sid`) and an "indexed" flag to workspaces to track indexing status.
- **Improvements**
  - Enhanced workspace indexing to handle missing workspaces and snapshots distinctly and selectively index documents.
  - Added ability to query workspaces after a given identifier with result limits.
- **Bug Fixes**
  - Improved error handling and logging during workspace indexing operations.
- **Tests**
  - Expanded test coverage for workspace indexing and auto-indexing, including scheduling and edge cases.
- **Chores**
  - Updated data models and schema to support new workspace fields and indexing features.
  - Enhanced mock data utilities to allow custom timestamps.
  - Improved type safety and flexibility in document snapshot retrieval.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
fengmk2
2025-05-19 04:39:38 +00:00
parent 34686f3d85
commit a34c3ea200
8 changed files with 211 additions and 13 deletions
@@ -11,6 +11,7 @@ export type MockDocSnapshotInput = {
workspaceId: string;
docId?: string;
blob?: Uint8Array;
updatedAt?: Date;
};
export type MockedDocSnapshot = Snapshot;
@@ -32,7 +33,7 @@ export class MockDocSnapshot extends Mocker<
workspaceId: input.workspaceId,
blob: input.blob,
createdAt: new Date(),
updatedAt: new Date(),
updatedAt: input.updatedAt ?? new Date(),
createdBy: input.user.id,
updatedBy: input.user.id,
},