dragonflight/services/mam-api/src
ZGaetano 03aa7a0673 fix(video): revert S3 redirect — RustFS rejects range+Origin; proxy with cache headers
S3 at broadcastmgmt.cloud (RustFS/openresty) returns 403 on range
requests that include an Origin header on presigned URLs. The HMAC
signature only covers 'host' in X-Amz-SignedHeaders, so the browser's
cross-origin Origin header breaks signature validation.

Reverted: /stream and /video no longer redirect to signed S3 URLs.

Fixed: /video now pipes through Node with:
  Cache-Control: private, max-age=3600
  ETag and Last-Modified forwarded from S3

This means the browser caches video segments for 1h. On seek the
browser checks its cache first — only uncached byte ranges hit the
server. Combined with the 1.5Mbps proxy (was 4Mbps), seeks should
be responsive for clips under ~10 minutes.
2026-05-26 17:40:02 +00:00
..
ampp feat: AMPP folder sync integration — pre-create folder hierarchy on upload, expose lookup endpoint for Script Task: client.js 2026-04-18 13:42:07 -04:00
db feat: server-side filmstrip worker + fix scheduler crash + fix clip freeze 2026-05-26 16:39:44 +00:00
middleware feat(mam-api): add auth middleware with session and Bearer token support 2026-05-18 12:45:15 -04:00
routes fix(video): revert S3 redirect — RustFS rejects range+Origin; proxy with cache headers 2026-05-26 17:40:02 +00:00
s3 fix: close all 24 open issues (#40–#94) 2026-05-26 14:10:44 +00:00
tasks feat(server): temp segments cleanup task 2026-05-24 12:43:08 -04:00
index.js feat(server): temp segments cleanup task 2026-05-24 12:43:08 -04:00
scheduler.js feat: server-side filmstrip worker + fix scheduler crash + fix clip freeze 2026-05-26 16:39:44 +00:00