Files
pokemon-inventory/docs/IMAGES.md
T
fragginwagon c728016dec feat: establish auth listing and image vertical slices
Includes MFA-capable authentication, session and CSRF security, password recovery, listing lifecycle and ownership rules, inventory image metadata, local ImageStorage, migrations, tests, and implementation status documentation. Verification: npm test (62 passing) and integration suite (14 passing).
2026-09-08 17:32:03 -04:00

96 lines
1.7 KiB
Markdown

# Image Management
## Requirements
Multiple images are core functionality.
Use cases include:
- card front/back
- corners
- edges/whitening
- holographic details
- merchandise angles
- defects/details
## Workflow
`Upload → Validate → Store Original → Queue Processing → Generate Derivatives → Complete`
Support:
- multiple-file upload
- drag/drop
- preview
- reorder
- primary image
- delete
- add images later
Image count is configurable.
## Storage
Images are not stored in PostgreSQL.
Use an `ImageStorage` abstraction.
Initial:
- Docker-mounted local storage
Future:
- S3-compatible object storage
The API uses an `ImageStorage` contract with `put`, `get`, and `delete`
operations. The current local adapter rejects absolute and traversal paths and
does not overwrite an existing key. It stores bytes outside PostgreSQL; image
metadata remains in `inventory_images`.
## Processing
Validate:
- MIME type
- file signature where practical
- size
- image dimensions
- configured image count
Generate:
- thumbnail
- medium
- large/responsive derivatives
Modern formats such as WebP/AVIF may be used where appropriate.
Retain originals where practical.
## Metadata
Store:
- storage key
- original filename
- MIME type
- file size
- dimensions
- alt text
- order
- primary flag
- processing status
- timestamps
## Alt text
Generate an initial suggestion automatically, but require the seller to be able to review/edit it.
Do not invent details not visible or supplied by the seller.
## Accessibility
Public galleries must support:
- keyboard operation
- accessible controls
- visible focus
- meaningful names
- focus management
- screen-reader-friendly state
Primary images power cards, search results, homepage previews, and social/share metadata.