No description
PO/receipt attachments were uploaded via a browser presigned PUT straight to R2 (POST /api/files/sign -> PUT uploadUrl -> linkDocument). That direct browser->R2 PUT only succeeds when the bucket carries a CORS policy allowing PUT from the portal origin; in production that policy was missing, so the browser silently blocked the PUT, linkDocument never ran, and no PODocument row was created -- "documents uploaded but not visible anywhere" (0 PODocument rows in prod/staging). Route uploads through a server action (uploadPoDocuments) that writes the file with uploadBuffer and creates the PODocument row atomically -- the same pattern the crewing module already uses for CV/crew-document uploads, and within the 10mb serverActions.bodySizeLimit. This removes the R2-CORS dependency and guarantees a created row always has its stored file. Removes the now-dead presigned path (lib/upload-files.ts, app/actions/link-document.ts, api/files/sign/route.ts). Adds an integration test that drives the action against a real DB and asserts the PODocument row is created and surfaced by the exact include the PO detail page renders from (i.e. the attachment is visible). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| .claude | ||
| .forgejo | ||
| App | ||
| automation | ||
| Docs | ||
| EpfoService | ||
| GstService | ||
| PdfService | ||
| Progress | ||
| static | ||
| Wireframe | ||
| .gitattributes | ||
| .gitignore | ||
| CHANGELOG.md | ||
| ecosystem.config.js | ||
| generate_po.py | ||
| inspect_po.py | ||
| test-report-2026-05-17.md | ||
Docs — retired (moved to the wiki)
The design, architecture, and test documents that used to live here have been migrated to the project wiki and removed from the repo. The wiki is the living reference going forward.
Wiki: https://git.pelagiamarine.com/shad0w/pelagia-portal/wiki
(working clone: pelagia-portal.wiki/ alongside this repo).
Where each retired doc went
| Retired file | Now in the wiki |
|---|---|
01-design-document.md |
System/Architecture, Product/Workflows (user stories), Product/Design-System, Overview/Open-Questions |
02-architecture.md |
System/Architecture (+ System/Data-Model, Ops/Deployment-and-Operations, Build-and-Run/Environment-Variables) |
03-open-questions.md |
Overview/Open-Questions |
DESIGN.md |
Product/Workflows, Product/Pages-and-Navigation, Product/Design-System |
TEST_PLAN.md |
Quality/Test-Plan |
e2e-test-framework.md |
Quality/E2E-Test-Framework |
e2e-test-plan.md |
Quality/E2E-Test-Plan |
PLAYRIGHT_TEST_DESIGN.md |
Quality/Playwright-Test-Design |
The wiki's on-disk folder layout (Overview / Build-and-Run / System / Product / Quality / Ops) mirrors its sidebar hierarchy.
Keep current behaviour documented in the wiki, not here. Other authoritative in-repo sources remain:
App/CLAUDE.md,App/README.md,automation/README.md, andCHANGELOG.md.