@arolariu/website / lib/actions/scans/uploadScan / uploadScan
Function: uploadScan()
uploadScan(
input):UploadScanOutput
Defined in: lib/actions/scans/uploadScan.ts:123
Uploads a standalone scan to Azure Blob Storage.
Parameters
input
UploadScanInput
Upload parameters
Returns
UploadScanOutput
Object with HTTP status and created Scan entity
Remarks
Execution Context: Server-side only (Next.js server action).
Authentication: Automatically fetches user from auth service.
Blob Naming: scans/{userIdentifier}/{scanId}_{timestamp}.{extension}
This structure enables efficient listing of scans by user.
Metadata Stored:
userIdentifier: Owner's user ID for filteringscanId: Unique scan identifieruploadedAt: ISO timestamp of uploadoriginalFileName: Original filename from uploadstatus: Scan lifecycle status
Side Effects: Emits OpenTelemetry spans for tracing.
Throws
When authentication fails
Throws
When blob upload fails
Example
const {status, scan} = await uploadScan({
base64Data: base64EncodedFile,
fileName: "receipt.jpg",
mimeType: "image/jpeg"
});
if (status === 201) {
scansStore.addScan({...scan, cachedAt: new Date()});
}