US01-05 — Generate and Serve Managed Thumbnails #5

Closed
opened 2026-07-13 13:10:38 +02:00 by domverse · 3 comments
Owner

Source specification: delivery_backlog/stories/US01-05-thumbnail-service.md

US01-05 — Generate and Serve Managed Thumbnails

Epic: E01

As a reviewer, I want safe, correctly oriented previews so I can compare photos without
exposing arbitrary filesystem paths.

Acceptance criteria

  • Donor decode, orientation, resize, and HEIC behavior is reused where compatible.
  • Thumbnails are requested by asset ID, cached atomically, quota-managed, and
    invalidated when source identity changes.
  • Corrupt, oversized, missing, and unsupported inputs produce bounded typed errors.
  • Requests cannot escape configured roots or access excluded paths.

Automated tests

  • Golden tests assert orientation, dimensions, transparency handling, and cache keys.
  • Integration tests cover concurrent generation, corruption, invalidation, eviction,
    and path attacks.

Dependencies

  • US01-03
Source specification: [delivery_backlog/stories/US01-05-thumbnail-service.md](https://git.domverse-berlin.eu/domverse/photoanalyzer/src/branch/main/delivery_backlog/stories/US01-05-thumbnail-service.md) # US01-05 — Generate and Serve Managed Thumbnails Epic: [E01](https://git.domverse-berlin.eu/domverse/photoanalyzer/src/branch/main/delivery_backlog/E01-shared-identity-inventory.md) As a reviewer, I want safe, correctly oriented previews so I can compare photos without exposing arbitrary filesystem paths. ## Acceptance criteria - Donor decode, orientation, resize, and HEIC behavior is reused where compatible. - Thumbnails are requested by asset ID, cached atomically, quota-managed, and invalidated when source identity changes. - Corrupt, oversized, missing, and unsupported inputs produce bounded typed errors. - Requests cannot escape configured roots or access excluded paths. ## Automated tests - Golden tests assert orientation, dimensions, transparency handling, and cache keys. - Integration tests cover concurrent generation, corruption, invalidation, eviction, and path attacks. ## Dependencies - US01-03
domverse added this to the E01 — Shared Identity and Inventory milestone 2026-07-13 13:10:38 +02:00
domverse added the area/filesystemtype/featurearea/backendpriority/normal labels 2026-07-13 13:10:38 +02:00
domverse added a new dependency 2026-07-13 13:11:14 +02:00
domverse added a new dependency 2026-07-13 13:11:15 +02:00
domverse added a new dependency 2026-07-13 13:11:16 +02:00
domverse added this to the Photo Analyzer Delivery project 2026-07-13 13:19:43 +02:00
domverse added the status/backlog label 2026-07-13 13:52:44 +02:00
domverse added status/in-progress and removed status/backlog labels 2026-07-15 21:16:56 +02:00
domverse self-assigned this 2026-07-15 21:16:56 +02:00
Author
Owner

Claimed for implementation on branch us/US01-05-generate-and-serve-managed-thumbnails.

Claimed for implementation on branch `us/US01-05-generate-and-serve-managed-thumbnails`.
domverse added status/review and removed status/in-progress labels 2026-07-15 21:27:28 +02:00
Author
Owner

Submitted for review: #50

Tests passed:

  • work_item/scripts/python -m unittest discover -s work_item/tests -v
  • work_item/scripts/python -m pytest tests -q
  • work_item/scripts/python -m pytest tests/unit tests/integration -q
Submitted for review: https://git.domverse-berlin.eu/domverse/photoanalyzer/pulls/50 Tests passed: - `work_item/scripts/python -m unittest discover -s work_item/tests -v` - `work_item/scripts/python -m pytest tests -q` - `work_item/scripts/python -m pytest tests/unit tests/integration -q`
domverse added status/done and removed status/review labels 2026-07-15 21:27:43 +02:00
Author
Owner

Completed and merged via PR #50.

Completed and merged via PR #50.
domverse moved this to Done in Photo Analyzer Delivery on 2026-08-16 11:58:09 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Reference: domverse/photoanalyzer#5