shoc-backend/SeaHaven.Services
Alexandre Brandizzi 7e4db749d0 fix(work-orders): enforce a file allowlist on completion-doc upload (SH-337)
The completion-document endpoint persisted whatever file it received: the
only checks were non-null, non-empty, and a 30 MB request limit. Its sibling
media endpoint has enforced a MIME allowlist, MIME-to-extension pairing, and
a magic-byte signature check since SH-116.

Validate before the file reaches storage, so a rejected upload leaves nothing
behind. An undetermined content type is accepted only alongside a .pdf name
and a %PDF- signature, because the browser leaves File.type empty when the OS
cannot classify the file and the completion-doc dialog already allows that.
2026-09-08 21:24:10 -03:00
..
Configuration feat(uplifts): complete SH-101 approval lifecycle 2026-08-11 08:58:19 -03:00
Constants fix(work-orders): satisfy producer contract review 2026-07-27 16:33:06 -03:00
DependencyInjection fix(work-orders): satisfy producer contract review 2026-07-27 16:33:06 -03:00
DTOs fix(work-orders): accept image/jpg MIME and expose board MediaCount (#107) 2026-09-09 00:10:52 +00:00
Exceptions feat(work-orders): isolate phase 2 inline edit with optimistic concurrency 2026-07-07 11:26:13 -03:00
Helpers fix(work-orders): enforce a file allowlist on completion-doc upload (SH-337) 2026-09-08 21:24:10 -03:00
Implementation fix(work-orders): accept image/jpg MIME and expose board MediaCount (#107) 2026-09-09 00:10:52 +00:00
Interfaces fix: omit unmapped sites from work order options (#89) 2026-08-26 16:39:25 -04:00
Validation fix(work-orders): keep location account server-owned and forward create cancellation 2026-08-26 10:00:02 -03:00
SeaHaven.Services.csproj refactor: enforce backend boundaries and optimize dispatch (#30) 2026-07-24 17:35:34 -03:00