wulf-pulse/app/api/mobile
lorentz 4978780962 feat(08-01): add /api/mobile/engagement/user/[userId]/photo proxy route
- Proxies Microsoft Graph user photo bytes to authenticated mobile clients
- requireAuth() is first call — unauthenticated requests get 401 before Graph
- 503 when MSGRAPH_* env not configured (isMsgraphConfigured gate, D-26)
- 400 for malformed userId (path traversal denylist, permissive per VARCHAR(255))
- 404 neutral response when user has no photo (no userId oracle)
- 200 with Cache-Control: private, max-age=3600 on success (D-25)
- 502 neutral response on Graph upstream errors (no token/user leakage)
2026-05-07 20:41:07 -04:00
..
analyzer/feed feat(06-01): add GET /api/mobile/analyzer/feed endpoint 2026-05-03 21:25:01 -04:00
dashboard feat(07.1-03): user-tz day boundaries on /api/(mobile/)dashboard(/overview) 2026-05-07 08:02:52 -04:00
engagement feat(08-01): add /api/mobile/engagement/user/[userId]/photo proxy route 2026-05-07 20:41:07 -04:00
finance feat(07.1-03): user-tz boundaries on /api/mobile/finance + engagement; auth-gate finance 2026-05-07 08:04:47 -04:00
tickets feat(04-01): rewrite /api/mobile/tickets with cursor pagination and exported interfaces 2026-05-03 17:59:54 -04:00