You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Mount the one unauthenticated read route OUTSIDE the /api auth router. A live token resolves via validateShare to exactly one document, rendered inline (application/pdf) through the existing documentHtml -> renderPdf path; unknown/expired/revoked tokens return a plain 404 "link expired or invalid" HTML page carrying no document data. Adds a dependency-free per-IP fixed-window rate limiter to blunt token brute-forcing. renderPdf is injected so the route is TDD-tested without launching Chrome. Public reads write no audit; the token is never logged. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
1 week ago | |
|---|---|---|
| .. | ||
| scripts | 2 weeks ago | |
| src | 1 week ago | |
| test | 1 week ago | |
| build-server.mjs | 2 weeks ago | |
| package.json | 2 weeks ago | |
| schema.sql | 2 weeks ago | |
| tsconfig.json | 2 weeks ago | |