Table of Contents

**@arolariu/website**


@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 filtering
  • scanId: Unique scan identifier
  • uploadedAt: ISO timestamp of upload
  • originalFileName: Original filename from upload
  • status: 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()});
}