Update all (major)#114
Open
renovate[bot] wants to merge 1 commit into
Open
Conversation
auto-merge was automatically disabled
October 17, 2023 18:45
Pull request was closed
60d859a to
9658d5d
Compare
9658d5d to
62a0b2d
Compare
62a0b2d to
9498f21
Compare
9498f21 to
c86f4b8
Compare
c86f4b8 to
63de7e6
Compare
ea1d0ec to
8732cda
Compare
8732cda to
de378ad
Compare
de378ad to
c176512
Compare
c176512 to
4062b81
Compare
4062b81 to
5f3ebae
Compare
5f3ebae to
0e2d0c7
Compare
0e2d0c7 to
6bdb4d1
Compare
6bdb4d1 to
c59cebc
Compare
c59cebc to
6db7d48
Compare
6db7d48 to
3d6a8f6
Compare
3d6a8f6 to
6cbd611
Compare
6cbd611 to
9fca9f2
Compare
9fca9f2 to
ba5e9a2
Compare
ba5e9a2 to
fcbc913
Compare
dbb0041 to
0bd35c8
Compare
9298586 to
03a3172
Compare
9f5c0c3 to
cc92ec4
Compare
cc92ec4 to
5c38fa1
Compare
9f81659 to
948c2cd
Compare
8f953be to
42d11a4
Compare
42d11a4 to
96dc4a9
Compare
96dc4a9 to
5139460
Compare
5139460 to
139894c
Compare
139894c to
c9514e1
Compare
c9514e1 to
8258850
Compare
8258850 to
5dfd3ad
Compare
5dfd3ad to
4e91d49
Compare
4e91d49 to
c92558b
Compare
ae4c8d0 to
63e70fe
Compare
63e70fe to
0588cc6
Compare
0588cc6 to
1d473f0
Compare
1d473f0 to
62ee86a
Compare
62ee86a to
cc4d29f
Compare
5cf217d to
84667ef
Compare
e36f3c9 to
80be1f4
Compare
80be1f4 to
4081637
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
v3→v67.8.2→8.32.0Release Notes
actions/checkout (actions/checkout)
v6.0.2Compare Source
v6.0.1Compare Source
v6.0.0Compare Source
v6Compare Source
v5.0.1Compare Source
What's Changed
Full Changelog: actions/checkout@v5...v5.0.1
v5.0.0Compare Source
What's Changed
v2.327.1
Release Notes
Make sure your runner is updated to this version or newer to use this release.
Full Changelog: actions/checkout@v4...v5.0.0
v5Compare Source
v4.3.1Compare Source
What's Changed
Full Changelog: actions/checkout@v4...v4.3.1
v4.3.0Compare Source
What's Changed
New Contributors
Full Changelog: actions/checkout@v4...v4.3.0
v4.2.2Compare Source
url-helper.tsnow leverages well-known environment variables by @jww3 in #1941isGhesby @jww3 in #1946v4.2.1Compare Source
v4.2.0Compare Source
v4.1.7Compare Source
v4.1.6Compare Source
v4.1.5Compare Source
user.emailto be41898282+github-actions[bot]@​users.noreply.github.comby @cory-miller in #1707v4.1.4Compare Source
extensions.worktreeConfigwhen disablingsparse-checkoutby @jww3 in #1692v4.1.3Compare Source
sparse-checkoutby @jww3 in #1656actions/checkoutversion inupdate-main-version.ymlby @jww3 in #1650v4.1.2Compare Source
sparse-checkoutoption is not present @dscho in #1598v4.1.1Compare Source
v4.1.0Compare Source
v4.0.0Compare Source
v4Compare Source
v3.6.0Compare Source
v3.5.3Compare Source
v3.5.2Compare Source
v3.5.1Compare Source
v3.5.0Compare Source
v3.4.0Compare Source
v3.3.0Compare Source
v3.2.0Compare Source
v3.1.0Compare Source
saveStateandgetStategithub-server-urlinputv3.0.2Compare Source
set-safe-directoryv3.0.1Compare Source
safe.directorygotenberg/gotenberg (gotenberg/gotenberg)
v8.32.0: 8.32.0Compare Source
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
v8.29.1: 8.29.1Compare Source
Bug Fix (Chromium)
Assets were no longer being correctly loaded in HTML files. This is now fixed. Thanks @ARawles-GFSC for the heads up!
v8.29.0: 8.29.0Compare Source
Security Fixes⚠️
/forms/pdfengines/metadata/writeendpoint allowed users to passFileNameandDirectorypseudo-tags in the metadata JSON, enabling file rename/move to arbitrary paths. User-supplied metadata is now filtered through a blocklist before being passed to ExifTool.file://Sub-Resource Restriction: When converting HTML/Markdown viafile://, sub-resources are now restricted to the request's working directory, preventing cross-request file access in/tmp.New Features
OpenTelemetry
OTEL_TRACES_EXPORTER,OTEL_METRICS_EXPORTER,OTEL_LOGS_EXPORTER,OTEL_EXPORTER_OTLP_ENDPOINT, etc.). Every HTTP request gets a span. External tool calls (Chromium, LibreOffice, QPDF, pdfcpu, pdftk, ExifTool, webhook delivery, download-from) create child spans. Trace context is propagated to outbound HTTP calls via W3C headers.slog-based structured logging with OTEL log bridge. Supports auto/JSON/text formats with optional GCP-compatible field names.server.addressspan attribute uses the actual binary path (e.g.,/usr/bin/qpdf) instead of the software name.--api-disable-root-route-telemetry,--api-disable-debug-route-telemetry,--api-disable-version-route-telemetry,--prometheus-disable-route-telemetry. The existing--api-disable-health-check-route-telemetrydefault changed fromfalsetotrue.Chromium
--chromium-idle-shutdown-timeoutflag (default:0s, disabled) to automatically stop Chromium after a configurable idle period, reclaiming memory on low-traffic servers. The process re-launches lazily on the next request.skipNetworkAlmostIdleEventform field (default:true). When set tofalse, Gotenberg waits for a "network almost idle" event (at most 2 open connections for 500ms) before conversion. This provides a middle ground between the existingskipNetworkIdleEvent(strict, 0 connections) and no wait at all — useful for pages with long-polling or analytics connections that never fully close.LibreOffice
initialView,initialPage,magnification,zoom,pageLayout,firstPageOnLeft,resizeWindowToInitialPage,centerWindow,openInFullScreenMode,displayPDFDocumentTitle,hideViewerMenubar,hideViewerToolbar,hideViewerWindowControls,useTransitionEffects,openBookmarkLevels.--libreoffice-idle-shutdown-timeoutflag (default:0s, disabled), same behavior as Chromium.Webhook
Gotenberg-Webhook-Events-Urlheader. When set, structured JSON events (webhook.success,webhook.error) are POSTed after each webhook operation, withcorrelationIdandtimestamp. Additive: existingGotenberg-Webhook-UrlandGotenberg-Webhook-Error-Urlcontinue to work unchanged.Security & Networking
--chromium-allow-list,--chromium-deny-list,--webhook-allow-list,--webhook-deny-list,--webhook-error-allow-list,--webhook-error-deny-list,--api-download-from-allow-list,--api-download-from-deny-list) now accept multiple regex patterns via string slices. Existing single-value configurations continue to work.Bug Fixes
singlePageMargin Accounting (#1046): ThesinglePageoption now correctly accounts for top/bottom margins when calculating page height, fixing content overflow on tall pages.Deprecated Flags
--log-format--log-std-format--log-enable-gcp-fields--log-std-enable-gcp-fields--api-trace-header--api-correlation-id-header--api-disable-health-check-logging--api-disable-health-check-route-telemetry--prometheus-disable-route-logging--prometheus-disable-route-telemetryAll deprecated flags continue to work.
Chore
go.uber.org/multierrwith stdliberrors.Join.actions/checkoutto v6 in all GitHub Actions.Thanks
Thanks to @dkrizic (#814) and @jbdelhommeau (#1489) for requesting OpenTelemetry/tracing support, @eht16 (#1316), @nh2 (#1023), @Frozen666 (#1046), @vofflan (#1500), @danxmoran (#1394), and @janaka (#1473) for their issue reports and feature requests!
This release represents a significant amount of work: OpenTelemetry integration, security fixes, new features, and hundreds of integration tests. If Gotenberg is useful to you or your team, please consider sponsoring the project. Your support helps keep development going.
v8.28.0: 8.28.0Compare Source
New Features
PDF Engines
POST /forms/pdfengines/watermarkroute. Applies a watermark (behind page content) to one or more PDF files. Supportstext,image, orpdfsources. Also available as optional form fields on Chromium, LibreOffice, merge, and split routes. Configurable via--pdfengines-watermark-engines(default:pdfcpu,pdftk).POST /forms/pdfengines/stamproute. Applies a stamp (on top of page content) to one or more PDF files. Same source types and integration points as watermark. Configurable via--pdfengines-stamp-engines(default:pdfcpu,pdftk).POST /forms/pdfengines/rotateroute. Rotates pages by 90°, 180°, or 270° with optional page selection. Also available as optional form fields (rotateAngle,rotatePages) on all composite routes. Configurable via--pdfengines-rotate-engines(default:pdfcpu, pdftk).POST /forms/pdfengines/bookmarks/readroute. Returns the hierarchical bookmark outline from one or more PDF files as JSON. Configurable via--pdfengines-read-bookmarks-engines(default:pdfcpu).POST /forms/pdfengines/bookmarks/writeroute. Accepts either a flat list (applied to all files) or a filename-keyed map. Configurable via--pdfengines-write-bookmarks-engines(default:pdfcpu, pdftk).bookmarksform field for custom bookmarks with automatic page-offset shifting, and anautoIndexBookmarksoption to extract and reindex existing bookmarks from input files.LibreOffice
nativeWatermarkText,nativeWatermarkColor,nativeWatermarkFontHeight,nativeWatermarkRotateAngle,nativeWatermarkFontName, andnativeTiledWatermarkText.API
downloadFromJSON schema with afieldproperty ("watermark","stamp","embedded", or"") to route downloaded files to the appropriate form field bucket. The existingembeddedboolean is preserved for backward compatibility.Chore
146.0.7680.153-1.v8.27.0: 8.27.0Compare Source
New Features
Chromium
CHROMIUM_MAX_CONCURRENCY. Thanks @TomBrouws!CHROMIUM_RESTART_AFTERto 100.emulatedMediaFeaturesform field. This allows users to pass a JSON array to simulate specific CSS media features, such asprefers-color-scheme: darkorprefers-reduced-motion. Thanks @danxmoran!Misc
TZenvironment variable. Thanks @davpsh!Bug Fixes
Chore
145.0.7632.109.26.2.0.1.26.0.v8.26.0: 8.26.0Compare Source
New Features
Chromium
waitForSelector: as an alternative to waiting on an expression, this allows users to wait for a specific node matching a selector to become visible in the HTML / at the remote URL before converting to PDF - thanks @danxmoran!ignoreResourceHttpStatusDomains: exclude resources fromfailOnResourceHttpStatusCodeschecks based on their hostname - thanks @frostmark!Prometheus
--prometheus-metrics-pathto customize the metrics route path - thanks @davpsh!Bug Fix
Chore
144.0.7559.96.1.25.5(thanks @jmendes-alto).v8.25.1: 8.25.1Compare Source
Bug Fixes
Chromium
net::ERR_HTTP2_PROTOCOL_ERRORto the list of events for thefailOnResourceLoadingFailedfeature. Thanks to @aW3st for the fix!Chore
Updated Go dependencies.
v8.25.0: 8.25.0Compare Source
New Features
Encrypt
This release adds the password protection feature to Chromium, LibreOffice, and PDF Engines modules.
Thanks @thoven87 for the work!
Embed Files
This feature enables the creation of PDFs compatible with standards like ZUGFeRD / Factur-X, which require embedding XML invoices and other files within the PDF.
Available on the Chromium, LibreOffice, and PDF Engines modules.
Thanks a lot @Jean-Beru for this feature!
Bug Fixes
--chromium-incognitois now deprecated and we ignore its value.Chore
142.0.7444.162.0.11.1.1.25.4.v8.24.0: 8.24.0Compare Source
New Features
New Architecture - ppc64le
We now support the
linux/ppc64learchitecture. Thanks @roy20021 for the help!LibreOffice Hyphenation Support
Hyphenation is now supported in LibreOffice, improving text formatting and readability. Thanks @omni-htg for the work!
Chore
141.0.7390.v2.051.v8.23.2: 8.23.2Compare Source
Bug Fix
Build
This release removes the UPX compression stage, which was intended to reduce binary size but is causing startup panics in some environments - thanks @lobeck for the heads up! See #1333 for more details.
Chore
Updated Go dependencies.
v8.23.1: 8.23.1Compare Source
Bug Fix
Chromium
The new version of Chromium fixes #1239 - better compression for images, resulting in smaller PDF.
Thanks @VeiaG, @CmCarti, and @zocario for the help!
Chore
140.0.7339.127-1.25.8.1-1.v8.23.0: 8.23.0Compare Source
New Feature
MathJaX Support
This release adds MatchJaX support for markdown conversion with the Chromium module. Thanks @zekizz for the heads up!
Bug Fixes
AWS Lambda (Beta)
A few changes based on feedback from @brettjenkins:
AWS_LWA_INVOKE_MODEuses now thebufferedvalue.Chromium
Hypen data are now located in
/opt/gotenberg. Thanks @PureKrome, @raraworks, and @SanderBlom!Chore
Updated Go dependencies.
v8.22.0: 8.22.0Compare Source
New Features
Webhook Sync Mode
New flag
--webhook-enable-sync-mode(or environment variableWEBHOOK_ENABLE_SYNC_MODE) to enable synchronous mode for webhooks.This is especially useful in serverless environments. Thanks @ynarwal!
Cloud Run
This image is now preconfigured for Cloud Run with the following:
PORTenvironment variable provided by Cloud Run.AWS Lambda
We now provide a dedicated Docker image tag, available on both
linux/amd64andlinux/arm64architectures:This image is preconfigured for AWS Lambda:
AWS_LWA_PORTenvironment variable provided by AWS Lambda.Thanks @ynarwal and @sefij!
Bug Fix
Chromium
Chore
139.0.7258.127-1(all platforms). Note: thelinux/amd64variant now also uses Chromium instead of Google Chrome stable.0.11.0.2.048.1.25.v8.21.1: 8.21.1Compare Source
This release fixes fonts issues.
See #1218 and #1230 for more details - thanks @DoPri and @scott-the-programmer for the help!
Chore
137.0.7151.103/68(all platforms).v8.21.0: 8.21.0Compare Source
👶 Newborn at home, but weirdly found some time for a new release!
New Features
Docker
Chromium
GOTENBERG_OUTPUT_FILENAMEheader – thanks @zach-goldberg for the idea!generateTaggedPdf, which may yield better results if you prioritize accessibility over strict (and sometimes hacky) PDF/UA compliance.Bug Fixes
Chromium
--no-zygoteand--disable-dev-shm-usageflags – see issue #1177.Webhook
/forms/pdfengines/metadata/readroute.Chore
136.0.7103.113(all platforms).v8.20.1: 8.20.1Compare Source
Bug Fix
The previous release revealed a bug that could randomly result in
500 Internal Server Errorresponses when using the split feature. This has now been fixed.v8.20.0: 8.20.0Compare Source
New Features
You can now disable the building of debug data using the new
--gotenberg-build-debug-dataflag (default:true)or the
GOTENBERG_BUILD_DEBUG_DATAenvironment variable. This can significantly improve startup time in environments like Google Cloud Run.Thanks @ChocoChipset for the contribution!
You can now override the
Content-Dispositionheader when using the webhook feature.Thanks @stephentgrammer!
Bug Fix
Thanks @JhnBer!
Chore
135.0.7049.84(all platforms).v8.19.1: 8.19.1Compare Source
Bug Fixes
This release includes two bug fixes for the Chromium module:
A minor issue in a dependency was causing generated PDFs to be tagged by default. That’s no longer the case.
Thanks to @dani for the heads-up and @kenshaw for the resolution!
The
printBackgroundform field now works as expected.Thanks @Welteam for reporting the issue!
Chore
135.0.7049.52(amd64only).v8.19.0: 8Configuration
📅 Schedule: (UTC)
🚦 Automerge: Enabled.
♻ 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 was generated by Mend Renovate. View the repository job log.