feat: image ingestion and serving - #14
Merged
Merged
Conversation
…enditions Uploads are cleaned at the container level so the compressed image data stays byte-for-byte the original: JPEG APPn and COM segments and PNG text, EXIF and time chunks are dropped, keeping JFIF and ICC; capture time and orientation are extracted first. Formats browsers cannot show are re-encoded as JPEG and marked as such. Blobs are written atomically under a hash-keyed tree with a free-space guard; renditions (2048, 1024, 256 px) are upright, metadata-free progressive JPEGs. Signed-off-by: Jose David <josedalmena@gmail.com>
Images belong to a person and record role, modality, hash, size, orientation, source format, whether they were re-encoded and the capture time; renditions are unique per image and kind. Signed-off-by: Jose David <josedalmena@gmail.com>
… see them Owners and managers upload (size, pixel and free-space limits; unsupported files refused); everyone with access to the person fetches the original or a rendition with immutable private caching and ETags; deletion moves the image to the trash. Signed-off-by: Jose David <josedalmena@gmail.com>
…nd limits Signed-off-by: Jose David <josedalmena@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Third Phase 1 slice: photographs.
POST /api/persons/{id}/images(multipart; role, modality, capture time override),GET /api/persons/{id}/images,GET /api/images/{id},GET /api/images/{id}/{original|full|preview|thumb}withETag/304 andprivate, immutablecaching,DELETEto the trash. Access follows the person's owner/manager/viewer roles.alembic checkclean on both.