# Data Model: API Image Proxy **Branch**: `002-api-image-proxy` | **Date**: 2026-05-03 ## Summary This feature introduces no new entities and no database schema changes. The change is entirely in the *retrieval path* for image file content: - The `Image` entity's `storage_key` field is used as the S3 object key to fetch content from storage. - The `mime_type` field is used to set the `Content-Type` response header. - The `hash` field (SHA-256) is used to set the `ETag` response header. All three fields are already present on the `Image` entity per the existing data model in `specs/001-reaction-image-board/plan.md`. ## StorageBackend interface change The `StorageBackend` abstract interface (`api/app/storage/backend.py`) gains one method and loses one: | Method | Change | Notes | |--------|--------|-------| | `get_presigned_url(key, expires_in_seconds)` | **Removed** | No callers remain after this feature | | `get(key: str) -> bytes` | **Added** | Returns full object content as bytes | This is an interface change, not a data model change. The database schema is unaffected.