Update Paperless-ngx #326
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "renovate/paperless-ngx"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This PR contains the following updates:
8.29.1→8.32.02.20.13→2.20.15Release Notes
gotenberg/gotenberg (docker.io/gotenberg/gotenberg)
v8.32.0: 8.32.0Compare Source
Breaking Changes & Security Fixes ⚠️
Reverted SSRF defaults (breaking vs 8.31.0). 8.31.0 blocked private-IP destinations by default, which broke deployments running Gotenberg inside a private network. 8.32.0 restores the 8.30.x permissive defaults. Operators with internet-facing APIs opt into the strict posture via the new flags below.
Rejected
file://at/forms/chromium/convert/url. Submittingurl=file:///tmp/...used to let an unauthenticated caller enumerate the request working directory and read other in-flight uploads as rendered PDFs. The route now returns HTTP 400 for anyfile://URL.Required uploaded file for
image/pdfstamp and watermark sources. Twelve callsites acceptedstampSource=pdforwatermarkSource=pdfwith an expression pointing at any path the Gotenberg process could open, even when no file was uploaded. Handlers now return HTTP 400 unless the caller uploaded a matching file.Scoped
file://sub-resources to the request working directory. Crafted HTML could reference another request'sfile:///tmp/<reqdir>/.... The CDP request handler now restrictsfile://sub-resources to the current request's directory./convert/urland/screenshot/urlreject everyfile://sub-resource outright.Hardened Chromium against DNS rebinding. A short-TTL DNS authority could return a public IP at validation and a private IP at connect. A loopback HTTP / CONNECT proxy now sits between Chromium and the network, resolves DNS once, and pins the dial to the resolved IP. Skipped when
--chromium-proxy-serveror--chromium-host-resolver-rulesis set.Filtered LibreOffice outbound fetches through a proxy. Uploaded OOXML, RTF, and ODF files can embed external URLs that LibreOffice's libcurl resolves below every Go-side SSRF filter. LibreOffice now routes every outbound fetch through an in-process forward proxy on the same
gotenberg.DecideOutboundpath Chromium and webhook delivery use. See the four new flags below.Recovered webhook async panics. High-concurrency webhooks could panic the async goroutine and crash the whole process. The goroutine now snapshots the request context and recovers any future panic through the existing error path.
New Features
LibreOffice outbound URL filtering. Four flags mirror the Chromium and webhook layout:
--libreoffice-allow-list,--libreoffice-deny-list,--libreoffice-deny-private-ips,--libreoffice-deny-public-ips. All default permissive.IP-class filtering on four modules.
chromium,webhook,api-download-from, andlibreofficeeach accept matchingdeny-private-ipsanddeny-public-ipsflags. All default tofalse.--chromium-deny-private-ips--chromium-deny-public-ips--webhook-deny-private-ips--webhook-deny-public-ips--api-download-from-deny-private-ipsdownloadFromURLs resolving to a non-public IP.--api-download-from-deny-public-ipsdownloadFromURLs resolving to a public IP.--libreoffice-deny-private-ips--libreoffice-deny-public-ipsA URL matching
--*-allow-listskips the IP-class check. A URL matching--*-deny-listis always rejected. Setting bothdeny-private-ips=trueanddeny-public-ips=truerejects every URL unless the allow-list matches.Bug Fixes
Charts print as blank rectangles (#1531, #1532, #1534, #1535):
chromedp v0.15.0suspended the BeginFrame-driven callback dispatch loop underemulatedMediaType=print.requestAnimationFrame,ResizeObserver,IntersectionObserver, CSStransitionend, and CSSanimationendall stopped firing. Pinningchromedpback tov0.14.2restores native dispatch.LibreOffice cached an unrecoverable first-start error (#1538): A short
--libreoffice-start-timeouttimed out the first request, then every subsequent request returned the same cached error until the container restarted. The lazy-start path now retries on failure.Chore
pdfcputov0.12.0.exiftoolinvocation. Removes the GPL-3.0go-exiftooldependency.1.26.2.Thanks
Thanks to @Jalliuz (#1527) for reporting the 8.31.0 sub-resource regression. @notscottsmith (#1531), @spoltix (#1532), @rdelott-work (#1534), and @sillyas2010 (#1535) narrowed down the chromedp print-mode regression. @sillyas2010 also published the reproducer that pinned the bisect. @JeremyReist2 (#1536) flagged the
go-exiftoolGPL-3.0 license. @doronbehar (#1537) requested the pdfcpu upgrade. @mlafon (#1538) reported the LibreOffice supervisor cached-error bug.v8.31.0: 8.31.0Compare Source
Breaking Changes & Security Fixes ⚠️
thecodingmachine/gotenbergimages. Pull fromgotenberg/gotenberginstead.--webhook-deny-listnow defaults to a regex blocking loopback, RFC1918, link-local, and IPv6 unique-local ranges. Override the flag to call internal hosts.System:tags). Strips control characters and line breaks from/forms/pdfengines/metadata/writepayloads. DropsSystem:-prefixed tags. Blocks argument smuggling and filesystem pseudo-tag abuse.New Features
embedsMetadatato every route acceptingembeds(Chromium HTML/URL/Markdown, LibreOffice convert, PDF Engines merge/split/embed). Pass a JSON object keyed by filename with per-file fields (mimeType,relationship, etc.) - thanks @Jean-Beru!Bug Fixes
Deprecated Flags
--webhook-error-allow-list--webhook-allow-list--webhook-error-deny-list--webhook-deny-listOld flags still work.
Chore
v8.30.1: 8.30.1Compare Source
Another release, another bug fixes 🫥
Bug Fixes
chromiumonly variants now start correctly - thanks @agross!v8.30.0: 8.30.0Compare Source
New Features
Docker Image Variants
gotenberg/gotenberg:8.30.0-chromium): Drops LibreOffice, python3, and hyphenation packages. ~30% smaller than the full image.gotenberg/gotenberg:8.30.0-libreoffice): Drops Chromium and its dependencies. ~38% smaller than the full image.Pick the variant that matches your workload. The full image (
gotenberg/gotenberg:8.30.0) still ships everything.Leaner Docker Image
The full image is ~13% smaller than 8.29.0. The font stack was simplified from 30+ packages down to 8, covering Latin, Greek, Cyrillic, CJK, and most world scripts through Noto, plus color emoji.
fonts-noto-corefonts-noto-cjkfonts-noto-color-emojifonts-dejavufonts-crosextra-carlitofonts-crosextra-caladeafonts-liberationfonts-liberation2Microsoft Core Fonts (
ttf-mscorefonts-installer) are not shipped due to licensing constraints. The image includes metric-compatible replacements instead: Carlito for Calibri, Caladea for Cambria, and Liberation for Arial, Times New Roman, and Courier New. These preserve document layout in most cases.Installing Additional Fonts
Build a custom Dockerfile to add fonts. Common scenarios:
Microsoft Core Fonts (you accept the Microsoft EULA):
Specialized script fonts for richer glyph sets, better hinting, or traditional typefaces beyond the basic Noto coverage:
fonts-hosny-amirifonts-bengfonts-saraifonts-sil-abyssinicafonts-samyak-gujrfonts-lohit-guruculmusfonts-lohit-kndafonts-samyak-mlymfonts-sil-padaukfonts-lklug-sinhalafonts-samyak-tamlfonts-telufonts-thai-tlwgWebhook
Gotenberg-Webhook-Error-UrlNow Optional: WhenGotenberg-Webhook-Events-Urlis set,Gotenberg-Webhook-Error-Urlis no longer required. Error handling flows through the events URL instead.Gotenberg-Webhook-Error-Urlis deprecated but continues to work.Bug Fixes
Chore
paperless-ngx/paperless-ngx (ghcr.io/paperless-ngx/paperless-ngx)
v2.20.15: Paperless-ngx v2.20.15Compare Source
paperless-ngx 2.20.15
Bug Fixes
All App Changes
4 changes
v2.20.14: Paperless-ngx v2.20.14Compare Source
paperless-ngx 2.20.14
Bug Fixes
All App Changes
7 changes
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR has been generated by Renovate Bot.
cddd4687cbto2e213d076eView command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.