mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-08 20:42:43 +00:00
Invert the inbound-documents surface from an OCR inbox into a document library: a file can be stored without any AI provider, and extraction becomes an opt-in action on top. - Migration 0222: add `title` + `document_date` columns, a `(user_id, document_date)` index, the richer kind taxonomy (lab/imaging/prescription/insurance/vaccination), and a STORED status made the column default. The status enum is recreated so the new value can be set as the default within the migration transaction; kind values use ADD VALUE. Nullable columns, no backfill. - POST /api/documents/inbound is now store-only: bounded multipart read, magic-byte MIME sniff, AES-256-GCM at rest, persisted as STORED with no provider/consent/budget call and no egress. - POST /api/documents/inbound/[id]/extract carries the relocated extraction gauntlet (resolve provider, consent, rate-limit, budget, run, reconcile, stage facts) against an already-stored row; absent a provider it 422s the enhancement only and leaves the stored document intact. - PATCH /api/documents/inbound/[id] edits title/kind/documentDate field-by-field, owner-scoped by session userId. - GET /api/documents/inbound gains search, kind filter, documentDate range, sort, and keyset pagination via the parameter-bound query builder. - Extend the validation schemas + DTO, regenerate the OpenAPI contract, and add route tests for the store/extract/edit/list paths.
863 KiB
863 KiB