Marcel
0ec86220d3
feat(backend): add POST /api/admin/backfill-file-hashes endpoint
- DocumentRepository: findByFileHashIsNullAndFilePathIsNotNull()
- AnnotationRepository: findByDocumentIdAndFileHashIsNull()
- FileService: downloadFileBytes() downloads raw bytes from S3 for hashing
- AnnotationService: backfillAnnotationFileHashForDocument() sets hash on null-hash annotations
- DocumentService: backfillFileHashes() iterates documents with null hash,
downloads bytes, computes SHA-256, saves doc, then propagates hash to annotations
- AdminController: POST /api/admin/backfill-file-hashes delegates to DocumentService
Closes #56
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 17:32:29 +01:00
..
2026-03-17 13:33:02 +00:00
2026-03-15 11:47:58 +01:00
2026-03-24 17:32:29 +01:00
2026-03-15 11:47:58 +01:00
2026-03-19 12:03:14 +01:00
2026-03-15 11:47:58 +01:00
2026-03-15 11:47:58 +01:00
2026-03-17 13:33:02 +00:00
2026-03-24 08:25:54 +01:00