- Shipped
- November 13, 2026 at 10:55 AM UTC
- Author
- Kamo
- Commit
- d9ef257
DL2.7 — watermark and controls on sign.<org>/<locale>/d/<token>: - The viewer's mark (email + time) is tiled whole (cells sized from the text, so nothing is clipped), dark with a pale halo so it reads over pages, photos and video; it now also covers text, CSV and the page-thumbnail rail. - Print of a watermarked link renders every page with pdf.js and burns the mark into the page images (a CSS background is dropped by the browser's default print settings); Ctrl+P runs the same marked print. - Download or print turned off: a Protected chip says what is off and, honestly, that this discourages copying but can't stop screenshots. Ctrl+P / Ctrl+S answer with that note, the browser's own print menu prints one plain line, copy/cut, context menu, text selection and image drag are off. DL2.8 — Require Signature Before Viewing: - SIGNATURE_REQUIRED draws a Sign To Open gate. Signed in: one button, the agreement opens in a new tab and this page opens the document itself when the signature lands. Anyone link: name + email, the e-sign invitation goes to that address (it proves it), the page waits and polls. - /api/doc/<token>/signature relays DocsService and keeps its ticket in an HttpOnly per-link cookie (KDOCSIG_<hash>), forwarded as X-Kamo-Doc-Signer on every doc call; the browser never sees it. Only a same-host signing link is passed on. - The e-sign finish screen offers Open The Document to a browser that came to sign for a doc. Without DocsService's signature API the gate says signing isn't ready and to contact the sender. Fix: the doc BFF awaited res.body.cancel() on a non-JSON upstream error, which hangs under Next's fetch — a 404 thumbnail held its connection for ~90 s and starved the page's other requests.
