Infrastructure low complexity backend
0
Dependencies
0
Dependents
0
Entities
0
Integrations

Description

S3-compatible object store integration responsible for durable storage of compressed receipt images. Handles presigned URL generation for secure client-direct upload, lifecycle policies for retention, and provides the storage URLs that are persisted in the expense_receipts table.

Feature: Receipt Photo Upload

image-storage

Sources & reasoning

The feature stores images in an S3-compatible managed object store and persists the resulting URL in expense_receipts. This infrastructure component encapsulates the object store contract, presigned URL generation, and retention policy so the upload service has a stable interface independent of the specific provider.

No source references — this artifact was included based on reasoning alone (see above).

Responsibilities

  • Accept compressed image blobs via presigned upload URLs
  • Generate presigned GET URLs for secure retrieval in admin portal
  • Enforce retention and access policies per organisation
  • Provide storage URL returned to the upload service on success

Interfaces

generatePresignedUploadUrl(key: String, contentType: String) -> String
generatePresignedGetUrl(key: String, expirySeconds: int) -> String
deleteObject(key: String) -> void