summaryrefslogtreecommitdiff
path: root/app/routes/api.image.ts
AgeCommit message (Collapse)AuthorLines
2026-06-17Fix image proxy 400 for application/octet-stream responsesyyamashita-5/+20
GCS-backed Active Storage (omatsuri.tech, used by rinky.info venues) returns application/octet-stream instead of image/*. Detect actual image type from magic bytes (JPEG/PNG/GIF/WebP) and serve with correct Content-Type. Also add X-Content-Type-Options: nosniff. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-17Add image proxy endpoint to avoid mixed content issuesyyamashita-0/+74
Serve external event images through /api/image?url=<encoded> so HTTP image URLs from venue sites are fetched server-side and delivered over HTTPS. Validates Content-Type is image/*, blocks private IPs (SSRF), and caches responses in memory (24h TTL, 200-entry LRU). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>