feat: add PDF password protection - #209
Conversation
|
@Pawankumar3210 is attempting to deploy a commit to the Mithun Srinivas' projects Team on Vercel. A member of the Team first needs to authorize it. |
|
This is a big one @Pawankumar3210, thank you. Password-protecting a PDF fully in the browser is exactly the kind of thing most tools do server-side, and you did it right: qpdf compiled to WebAssembly with the worker and wasm served from our own origin, AES-256 encryption, no CDN. Loading the engine through This closes the biggest gap we had, the whole Security category. Merging now since every check is green. One tiny thing for a future pass, not blocking: a couple of the progress messages have a stray character where an ellipsis should be. Worth a quick tidy next time. Thanks for taking on a hard one! |
Which issue does this close?
Closes #83
What changed
Added a new Protect PDF operation at
src/operations/protect-pdf/.The tool lets users select a PDF, enter and confirm a password, and download an encrypted PDF. It uses
qpdf-runwith locally bundled qpdf WebAssembly and runs entirely in the browser.The implementation follows DoxDock's plugin pattern and reuses the shared Dropzone, Progress, Note, DownloadButton, and useJob components.
Acceptance criteria
Checklist
connect-src 'self').npm run buildpasses locally.Proof
Tested the generated PDF with a real PDF reader using a real PDF file:
npm test→ 40/40 tests passed.npm run build→ passed.