Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update all (major) #114

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Update all (major) #114

wants to merge 1 commit into from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Sep 4, 2023

This PR contains the following updates:

Package Type Update Change
actions/checkout action major v3 -> v4
gotenberg/gotenberg major 7.8.2 -> 8.16.0

Release Notes

actions/checkout (actions/checkout)

v4

Compare Source

gotenberg/gotenberg (gotenberg/gotenberg)

v8.16.0: 8.16.0

Compare Source

New Features

Flattening Annotations

Thanks to @​chakalov, this release brings a new multipart/form-data route for flattening PDFs:

POST /forms/pdfengines/flatten

This feature is also available to the following routes via a new form field flatten (boolean):

  • /forms/libreoffice/convert
  • /forms/pdfengines/merge
  • /forms/pdfengines/split
Chromium Restart Strategy

The new default value for the --chromium-restart-after flag is 10, helping stabilizing the memory usage of your Gotenberg instances.

[!TIP]
Set this value to 0 for previous behavior.

Thanks @​HarryGogonis, @​michalschroeder and @​Fank for the help! See #​987 for more details.

New Log Field log_type

The logs have now a new field log_type to help differentiating entries (either application or access).

Dummy Root Route

Thanks to @​nktnet1, a new root route (e.g., /) prints a welcome message with a link to the documentation.

Faster CI / Latest Chromium Version for armhf

The releasing of a new Docker image of Gotenberg has been drastically reduced, from approximately 1 hour to less than 5 minutes, thanks to arm64 GitHub runners. This also allows for the latest Chromium version on the armhf variant.

Misc

[!CAUTION]
/version route is now behind the basic authentication if enabled.

Chore

  • Updates Chromium to version 132.0.6834.110/160.
  • Updates Go dependencies.

v8.15.3: 8.15.3

Compare Source

Fix

Switches from info to debug a logging entry about stuck Chromium processes being killed.

Chore

Updates Go dependencies.

v8.15.2: 8.15.2

Compare Source

New Feature

This release improves the cleanup process for both LibreOffice and Chromium when they are restarted, and makes Chromium’s restart strategy (e.g., --chromium-restart-after) more effective.

Chore

Updates Go dependencies.


You may now sponsor this open-source project. Thanks ❤️

v8.15.1: 8.15.1

Compare Source

Fix

The PDF/A and PDF/UA conversion is broken in version 8.15.0 for the Chromium and LibreOffice routes. This release fixes this issue. Thanks @​starwalkn for the heads up!


You may now sponsor this open-source project. Thanks ❤️

v8.15.0: 8.15.0

Compare Source

Happy Holidays! 🎅 🎁 🎄

New Features

Split Route

This release brings a new multipart/form-data route for splitting PDF files:

POST /forms/pdfengines/split

It accepts the following form fields:

Key Description Default
splitMode Either intervals or pages. Required
splitSpan Either the intervals or the page ranges to extract, depending on the selected mode. Required
splitUnify Specify whether to put extracted pages into a single file or as many files as there are page ranges. Only works with pages mode. false

Thanks @​ps73, @​nodecentral, @​markitosgv, @​wjkoh!

Split Chromium PDFs

The multipart/form-data routes from the Chromium module also accepts the previous form fields for splitting the resulting PDF.

Split LibreOffice PDFs

In the same manner, the multipart/form-data route from the LibreOffice module accepts the previous form fields for splitting the resulting PDFs.

Chore

  • Updates Chromium to version 131.0.6778.204/139 (except for armhf).
  • Updates Go dependencies.

You may now sponsor this open-source project. Thanks ❤️

v8.14.1: 8.14.1

Compare Source

Fix

Keywords metadata (ExifTool PDF Engine)

The Keywords metadata is now correctly handled by ExifTool.

Thanks @​ABAG603 for the heads up!


You may now sponsor this open-source project. Thanks ❤️

v8.14.0: 8.14.0

Compare Source

New Feature

Generate Document Outline (Chromium)

The new form field generateDocumentOutline embeds the document outline into the PDF if set to true.

Thanks @​nktnet1 for the contribution!

Chore

Updates Go dependencies.


You may now sponsor this open-source project. Thanks ❤️

v8.13.0: 8.13.0

Compare Source

New Features

Select PDF Engines per Feature

You may now select PDF engines for each feature thanks to new flags:

  • --pdfengines-merge-engines - Set the PDF engines and their order for the merge feature (default qpdf,pdfcpu,pdftk).
  • --pdfengines-convert-engines - Set the PDF engines and their order for the convert feature (default libreoffice-pdfengine).
  • --pdfengines-read-metadata-engines - Set the PDF engines and their order for the read metadata feature (default exiftool).
  • --pdfengines-write-metadata-engines - Set the PDF engines and their order the write metadata feature (default exiftool).

⚠️ The flag --pdfengines-engines is deprecated.

Fail On Resource HTTP Status Codes (Chromium)

Like failOnHttpStatusCodes, the new failOnResourceHttpStatusCodes form field tells Gotenberg to return a 409 Conflict response if the HTTP status code from at least one resource is not acceptable.

Resource Network Errors (Chromium)

The new form field failOnResourceLoadingFailed tells Gotenberg to return a 409 Conflict if Chromium encounters any of the following network errors while attempting to load a resource:

  • net::ERR_CONNECTION_CLOSED
  • net::ERR_CONNECTION_RESET
  • net::ERR_CONNECTION_REFUSED
  • net::ERR_CONNECTION_ABORTED
  • net::ERR_CONNECTION_FAILED
  • net::ERR_NAME_NOT_RESOLVED
  • net::ERR_INTERNET_DISCONNECTED
  • net::ERR_ADDRESS_UNREACHABLE
  • net::ERR_BLOCKED_BY_CLIENT
  • net::ERR_BLOCKED_BY_RESPONSE
  • net::ERR_FILE_NOT_FOUND

Chore

  • Updates Chromium to version 130.0.6723.91 (except for armhf).
  • Updates Go dependencies.

You may now sponsor this open-source project. Thanks ❤️

v8.12.0: 8.12.0

Compare Source

New Features

Bind IP

The new flag --api-bind-ip allows to set the IP address the API should bind to for incoming connections, instead of the default 0.0.0.0.

For instance: --api-bind-ip=127.0.0.1.

Thanks @​dani for the suggestion!

Scope Extra HTTP Headers (Chromium)

You can add an optional scope token to a header value to restrict its application using a regular expression.

For instance:

curl \
--request POST http://localhost:3000/forms/chromium/convert/url \
--form url=https://my.url \
--form-string 'extraHttpHeaders={"X-Scoped-Header":"value;scope=https?:\\/\\/([a-zA-Z0-9-]+\\.)*domain\\.com\\/.*"}' \
-o my.pdf

This new scope token is only processed by Gotenberg and is never sent with the header value.

Thanks @​forg002-ctrl and @​OsoianMarcel for the help!

pdfcpu CLI

In earlier versions of Gotenberg, we used the pdfcpu Golang library directly. However, there wasn't a clean way to terminate the process in case of a timeout, which could lead to resource leaks. We now rely on the pdfcpu CLI, allowing us to effectively handle timeouts, resulting in a more stable PDF engine.

Chore

Updates Go dependencies.


You may now sponsor this open-source project. Thanks ❤️

v8.11.1: 8.11.1

Compare Source

Fix

Webhook Duplicate Trace IDs

Webhook callbacks returned duplicate trace IDs when there were multiple requests pending. This is now fixed.

Thanks @​lrakauskas for the heads up!

Chore

  • Updates Noto Color Emoji to Unicode 16.0.
  • Updates LibreOffice to version 24.8.2.
  • Updates Go dependencies.

You may now sponsor this open-source project. Thanks ❤️

v8.11.0: 8.11.0

Compare Source

New Features

Body Limit

You may now set a body limit for multipart/form-data requests, including files downloaded via the downloadFrom form field.
To enable this feature, set the --api-body-limit flag with a string value like 500KB, 5MB, 5GB, etc. There is no limit by default.

New skipNetworkIdleEvent default value (Chromium)

By default, Gotenberg does not wait anymore for the network idle event, significantly speeding up the conversion process. Although Chromium triggers this event heuristically, it is often — if not always — fired too late for page rendering.

Chore

Updates Go dependencies.


You may now sponsor this open-source project. Thanks ❤️

v8.10.0: 8.10.0

Compare Source

New Features

Download from URLs

All multipart/form-data routes now accept a form field downloadFrom.

This field accepts a JSON string (e.g., [{"url":"http://localhost:80/","extraHttpHeaders":{"X-Foo":"Bar"}}]) and attempts to download each entry (file) in parallel. URLs MUST return a Content-Disposition header with a filename parameter.

You can configure its behavior using the following flags:

  • --api-download-from-allow-list - Set the allowed URLs for the download from feature using a regular expression.
  • --api-download-from-deny-list - Set the denied URLs for the download from feature using a regular expression
  • --api-download-from-max-retry - Set the maximum number of retries for the download from feature.
  • --api-disable-download-from - Disable the download from feature.

Thanks @​aldenquimby, @​tcarsuzanlandytech and @​callumgarven for the help!

Convert Files with a Password (LibreOffice)

The route /forms/libreoffice/convert now accepts a password form field, allowing conversion of password-protected documents.

Thanks @​markusberg for the suggestion!

Health Check with HEAD Method

The /health route now accepts the HEAD method. The only difference from the GET method is that the response body will be empty.

Thanks @​omni-htg for the suggestion!

Fixes

Blank PDF on Errors (Chromium)

The Chromium module now correctly returns a 400 Bad Request if the browser encounters one of the following errors:

  • net::ERR_CONNECTION_CLOSED
  • net::ERR_CONNECTION_RESET
  • net::ERR_CONNECTION_REFUSED
  • net::ERR_CONNECTION_ABORTED
  • net::ERR_CONNECTION_FAILED
  • net::ERR_NAME_NOT_RESOLVED
  • net::ERR_INTERNET_DISCONNECTED
  • net::ERR_ADDRESS_UNREACHABLE
  • net::ERR_BLOCKED_BY_CLIENT
  • net::ERR_BLOCKED_BY_RESPONSE

Thanks @​eMerzh for the suggestion!

Error Logging Leaking "File Already Closed"

In some scenarios, such as when using the QPDF engine, the logger was logging irrelevant errors.

Chore

  • Updates Chromium to version 129.0.6668.58 (except for armhf).
  • Updates Go dependencies.

You may now sponsor this open-source project. Thanks ❤️

v8.9.2: 8.9.2

Compare Source

Chore

  • Updates Chromium to version 128.0.6613.113/119 (except for armhf).
  • Updates Go dependencies.
  • Updates Go to version 1.23.

You may now sponsor this open-source project. Thanks ❤️

v8.9.1: 8.9.1

Compare Source

Fix

The PDF/A and PDF/UA conversions have been broken since version 8.8.0 when used via /forms/chromium/{url/html/markdown} and /forms/pdfengines/convert, as they did not use the same defaults as /forms/libreoffice/convert. Thanks to @​luisforra for the heads up!

Chore

Updates Go dependencies.


You may now sponsor this open-source project. Thanks ❤️

v8.9.0: 8.9.0

Compare Source

New Feature

The LibreOffice module now automatically retries a conversion if a core dumped error occurs. This enhancement helps mitigate random failures. Special thanks to @​giamma for the assistance!

Chore

  • Updates Chromium to version 127.0.6533.72 on amd64.
  • Updates Go dependencies.

You may now sponsor this open-source project. Thanks ❤️

v8.8.1: 8.8.1

Compare Source

Fix

The PDF/UA conversion now correctly claims UA conformity. Thanks @​lennartb- for the heads up!

Chore

Updates Go dependencies.


You may now sponsor this open-source project. Thanks ❤️

v8.8.0: 8.8.0

Compare Source

New Features

Process Management

Previously, auto-restarts happened at the start of a request, causing noticeable latency.
Now, processes restart after a request, reducing or eliminating latency when the system isn't fully loaded.

Courtesy of @​MaxLap.

Chromium

A conversion now fails with a 400 Bad Request response when Chromium encounters ERR_CONNECTION_REFUSED. Thanks to @​Neirda24 for the heads up!

LibreOffice

Introducing a bunch of new form fields:

Page properties

Key Description Default
allowDuplicateFieldNames Specify whether multiple form fields exported are allowed to have the same field name. false
exportBookmarks Specify if bookmarks are exported to PDF. true
exportBookmarksToPdfDestination Specify that the bookmarks contained in the source LibreOffice file should be exported to the PDF file as Named Destination. false
exportPlaceholders Export the placeholders fields visual markings only. The exported placeholder is ineffective. false
exportNotes Specify if notes are exported to PDF. false
exportNotesPages Specify if notes pages are exported to PDF. Notes pages are available in Impress documents only. false
exportOnlyNotesPages Specify, if the form field exportNotesPages is set to true, if only notes pages are exported to PDF. false
exportNotesInMargin Specify if notes in margin are exported to PDF. false
convertOooTargetToPdfTarget Specify that the target documents with .od[tpgs] extension, will have that extension changed to .pdf when the link is exported to PDF. The source document remains untouched. false
exportLinksRelativeFsys Specify that the file system related hyperlinks (file:// protocol) present in the document will be exported as relative to the source document location. false
exportHiddenSlides Export, for LibreOffice Impress, slides that are not included in slide shows. false
skipEmptyPages Specify that automatically inserted empty pages are suppressed. This option is active only if storing Writer documents. false
addOriginalDocumentAsStream Specify that a stream is inserted to the PDF file which contains the original document for archiving purposes. false

Images

Key Description Default
quality Specify the quality of the JPG export. A higher value produces a higher-quality image and a larger file. Between 1 and 100. 90
maxImageResolution If the form field reduceImageResolution is set to true, tell if all images will be reduced to the given value in DPI. Possible values are: 75, 150, 300, 600 and 1200. 300

Fixes

  • The routes /health and /version are no longer protected by basic authentication. Thanks to @​MaikuMori for the heads up!
  • The form field reduceImageResolution has been reset to its actual default value (e.g., false).

Chore

  • Updates Chromium to version 126.0.6478.126 (except for armhf).
  • Updates LibreOffice to version 24.2.4.
  • Updates Go dependencies.

You may now sponsor this open-source project. Thanks ❤️

v8.7.0: 8.7.0

Compare Source

New Features
Chromium

New form field userAgent for overriding the default User-Agent HTTP header. Thanks @​wjkoh for the help!

LibreOffice

Two new form fields to tweak image conversion perfomance:

  • losslessImageCompression - Allow turning lossless compression on or off (default to false).
  • reduceImageResolution - Allow turning on or off image resolution reduction (default to true).

Courtesy of @​garethjudson!

Chore
  • Updates Go dependencies.

v8.6.0: 8.6.0

Compare Source

New Feature

TLS support 🚀

  • --api-tls-cert-file - path to the TLS/SSL certificate file.
  • --api-tls-key-file - path to the TLS/SSL key file.

Thanks @​jonasgeiler!

Chore
  • Updates Go dependencies.

v8.5.1: 8.5.1

Compare Source

New Feature

If a terminal is attached and the TZ environment variable is set, the logging entries will use the specified timezone. Thanks @​jaime-pineiro-imatia!

Chore
  • Updates Chromium to version 125.0.6422 (except for armhf).
  • Updates LibreOffice to version 24.2.3.
  • Updates Go dependencies.

v8.5.0: 8.5.0

Compare Source

New Features
API

New /version endpoint that displays the currently running version of Gotenberg.

This closes #​856. Thanks @​Jaben and @​stumpylog!

Chromium

The screenshot routes now accepts the following form fields:

  • width - The device screen width in pixels (default to 800).
  • height - The device screen height in pixels (default to 600).
  • clip - Define whether to clip the screenshot according to the device dimensions (default to false).

This resolves #​816. Thanks @​rslinckx for the assistance!

Chore
  • Updates Chromium to version 124.0.6367.78 (except for armhf and arm64).
  • Updates Go dependencies.

v8.4.0: 8.4.0

Compare Source

New Features
API

You may now enable basic authentication with --api-enable-basic-auth. Gotenberg will look for the GOTENBERG_API_BASIC_AUTH_USERNAME and GOTENBERG_API_BASIC_AUTH_PASSWORD environment variables.

This resolves #​684.

Chromium

Now supports specifying cookies to the Chromium cookie jar thanks to the cookies form field. This form field is a JSON-formatted array with items accepting the following keys:

  • name (required)
  • value (required)
  • domain (required)
  • path
  • secure - boolean
  • httpOnly - boolean
  • sameSite - accepted values are Strict, Lax or None

Special thanks to @​Sungq1990 for the assistance. This resolves issue #​658.

LibreOffice

Introducing a new form field singlePageSheets (boolean) - This setting determines whether to render the entire spreadsheet as a single page. Thanks to @​mrbech!

Chore
  • Updates Chromium to version 123.0.6312.105 (except for armhf).
  • Updates Go dependencies.

v8.3.0: 8.3.0

Compare Source

New Features
ExifTool

ExifTool's new PDF engine introduces the capability to read and write PDF metadata.

You can now input metadata using the metadata form field for the routes below:

  • /forms/chromium/convert
  • /forms/libreoffice/convert
  • /forms/pdfengines/merge

The metadata field accepts JSON-formatted values, including types: boolean, int, float, string, and strings.

Additionally, two new routes are available:

  • /forms/pdfengines/metadata/read - Retrieves the metadata of specified PDFs, returning a JSON formatted response with the structure filename => metadata.
  • /forms/pdfengines/metadata/write - Allows writing specified metadata to one or more PDFs.

Kudos to @​piyushsriv for the contribution! This resolves issue #​207.

Chromium

Now supports specifying paper size and margins in various units such as 72pt, 96px, 1in, 25.4mm, 2.54cm, or 6pc. The default unit is inches when not specified.

Special thanks to @​FrankHeijden for the assistance. This resolves issue #​591.

LibreOffice
  • Enhanced support for a wide range of file extensions, courtesy of @​roy20021. This resolves issue #​840.
  • Introducing a new form field exportFormFields (boolean) - This setting determines whether to export the form fields or to use the inputted/selected content of the fields. Thanks to @​mrbech!
Chore
  • Updates Go dependencies.

v8.2.2: 8.2.2

Compare Source

Fixes
Chromium

Chromium's default behavior has been updated to no longer generate tagged PDFs, resolving the issue of significantly larger file sizes. For those requiring tagged PDFs, please use the pdfua form field henceforth.

This issue identified in Gotenberg 8.2.1 has been addressed, thanks to @​fu-infotrack for bringing it to our attention! This resolves https://github.com/gotenberg/gotenberg/issues/831.

LibreOffice
  • In line with Chromium's update, LibreOffice has also ceased the generation of tagged PDFs to ensure consistency.
  • The issue causing 500 response errors during attempts to convert multiple PDFs into PDF/A and/or PDF/UA, introduced in Gotenberg 8.1.0, has been resolved. Special thanks to @​roy20021 for highlighting this problem! This addresses https://github.com/gotenberg/gotenberg/issues/835.
PDFcpu

The PDFcpu PDF engine previously experienced crashes under specific conditions. The latest release of PDFcpu addresses and corrects this issue. Special thanks to @​h4ckroot for identifying the problem and @​stefannovak for testing the release. This resolves https://github.com/gotenberg/gotenberg/issues/808.

Chore
  • Updates Go dependencies.
  • Updates Go to version 1.22.

v8.2.1: 8.2.1

Compare Source

Fixes
Chromium

~~The default behavior of Chromium no longer includes the generation of tagged PDFs, addressing issues with significantly larger file sizes. For tagged PDF requirements, please utilize the pdfua form field moving forward. A special shoutout to @​WillCohenInfotrack for the alert!~~

It seems that Chromium always generates tagged PDF, whatever the instruction sent. See https://github.com/gotenberg/gotenberg/issues/831.

Misc

Corrected an issue where the API mistakenly issued 501 Not Implemented responses. Thanks to @​stumpylog for pointing this out!

New Feature
LibreOffice

Adding basic support for macOS *.key files, thanks to the contribution from @​eMerzh.

Chore
  • Updates Go dependencies.

v8.2.0: 8.2.0

Compare Source

New Features
Chromium

Introducing a new form field named singlePage. This feature allows for the printing of PDFs where the content fits onto a single page. It addresses issue #​421. Special thanks to @​rslinckx and @​matthiscock for their contributions!

Chromium now also generates tagged PDFs by default.

LibreOffice

Adding basic support for macOS *.pages files. This enhancement addresses issue #​635 from @​AvnerCohen.

Misc

Improving the merge order functionality for better usability. Files are now sorted alphanumerically rather than by basic alphabetical order. For example, files named 1.pdf, 2a.pdf, 2b.pdf, 10.pdf, a.pdf will be sorted in this exact sequence, prioritizing numeric prefixes over letters. This update resolves issue #​805 from @​hazrul.

Chore
  • Updates Chromium to version 122.0.6261.57/.69 (except for armhf).
  • Updates Go dependencies.

v8.1.0: 8.1.0

Compare Source

⚠️ Security Update

This update addresses a critical security flaw which previously enabled unauthorized read access to the system files of a Gotenberg container. It is strongly advised to upgrade to this version, especially for those utilizing the Chromium module to process untrusted content.

A special thanks to @​filipochnik!

New Features
  • Introducing new configuration options: --chromium-max-queue-size and --libreoffice-max-queue-size. These settings allow Gotenberg to preemptively reject requests exceeding specified queue thresholds for Chromium and/or LibreOffice, issuing a 429 Too Many Requests response to mitigate overload situations, instead of deferring to a timeout response like 503 Service Unavailable. This improvement addresses issue #​463 from @​NathanLamSeekasia, thanks to @​timgrohmann!
  • Enhancements to .zip archive handling: original filenames are preserved in the output, eliminating the need for UUID-based naming conversions (e.g., document.docx to document.docx.pdf, file.pdf to file.pdf). This feature resolves issue #​771, thanks to @​chrishughes20!
Chore
  • Updates Go dependencies.

v8.0.3: 8.0.3

Compare Source

Chore
  • Updates Noto Color Emoji font to v2.042.
  • Updates Chromium to version 121.0.6167.160 (except for armhf).
  • Updates LibreOffice to version 24.2.0.3 (successor of version 7.6).
  • Updates Go dependencies.

v8.0.2: 8.0.2

Compare Source

Fix

The route /forms/libreoffice/convert now correctly returns a 400 Bad Request response if the form field pdfa is invalid.

Chore

Updates Go dependencies.

v8.0.1: 8.0.1

Compare Source

Fix

This release allows webp screenshot capture with Chromium, which was not working previously due to a... typo. Tests have been updated consequently.

v8.0.0: 8.0.0

Compare Source

Gotenberg 8 is now out 🎉

For users of 7.x, the transition to this version should be relatively smooth. Most significant changes were introduced in 7.10.x. This release primarily removes deprecated elements (flags, form fields, etc.) and introduces eagerly anticipated features for Chromium. Read on for detailed information.

Upgrade from v7

If you're upgrading from Gotenberg 7, it's recommended to begin with the latest 7.x version, specifically 7.10.2. Monitor the logs of your Gotenberg instances. Pay attention to warnings at startup and during runtime to identify deprecated features in use that will be unavailable in Gotenberg 8.

Refer to the following lists for deprecated elements:

Deprecated Flags
  • --api-read-timeout
  • --api-process-timeout
  • --api-write-timeout
  • --api-webhook-allow-list
  • --api-webhook-deny-list
  • --api-webhook-error-allow-list
  • --api-webhook-error-deny-list
  • --api-webhook-max-retry
  • --api-webhook-retry-min-wait
  • --api-webhook-retry-max-wait
  • --api-disable-webhook
  • --chromium-user-agent
  • --chromium-failed-starts-threshold
  • --uno-listener-start-timeout
  • --uno-listener-restart-threshold
  • --unoconv-disable-listener
Deprecated Form Fields
Deprecated Metrics
  • chromium_active_instances_count
  • chromium_failed_starts_count
  • unoconv_active_instances_count
  • libreoffice_listener_active_instances_count
  • unoconv_listener_active_instances_count
  • libreoffice_listener_queue_length
  • unoconv_listener_queue_length
  • pdftk_active_instances_count
  • qpdf_active_instances_count
New Chromium Features
  • You can capture full-page screenshots using the following three routes, which function similarly to their PDF equivalents:
    • POST /forms/chromium/screenshot/url
    • POST /forms/chromium/screenshot/html
    • POST /forms/chromium/screenshot/markdown
    • The following form fields are available: format ("png", "jpeg" or "webp"), quality (jpeg only, 0 to 100), omitBackground, optimizeForSpeed (optimize image encoding for speed not for resulting size).
    • The following features are also available: wait before rendering, emulated media type, custom HTTP headers, invalid HTTP status codes, console exceptions, performance mode.
  • New form field failOnHttpStatusCodes: return a 409 Conflict response if the HTTP status code from the main page is not acceptable - thanks @​TheRealPaco & @​jmvezic!
  • New form field skipNetworkIdleEvent: do not wait for Chromium network to be idle, allowing for faster conversions - thanks @​rreynier!
  • New flag --chromium-clear-cache: clear Chromium cache between each conversion - thanks @​low613!
  • New flag --chromium-clear-cookies: clear Chromium cookies between each conversion - thanks @​low613!

v7.10.2: 7.10.2

Compare Source

Fixes
  • Special characters issues with files - fixes #​730 & #​662 - thanks @​joernv & @​ramonmedeiros!
  • No more panic when a lot of requests are in the Chromium queue (did not appear with default behavior, i.e., no restart) - fixes #​753 - thanks @​low613!
  • LibreOffice 7.6 does not produce PDF/A-1a like earlier releases, but PDF/A-1b. A warning will appear in the logs if PDF/A-1a is requested. Note that LibreOffice was never producing real PDF/A-1a, they just make it clear now. Fixes #​746 - thanks @​stumpylog!
  • Do not start the API unless all modules are ready. New flag --api-start-timeout (default 30s) - fixes #​750 - thanks @​bahag-xvisnei!
Chore
  • Updates Chromium to version 120.0.6099.109 (except for armhf).
  • Updates LibreOffice to version 7.6.4.
  • Updates Go dependencies.

v7.10.1: 7.10.1

Compare Source

Fix

This release fixes a wrong type for the deprecated flag --uno-listener-restart-threshold that was causing panics when used.

v7.10.0: 7.10.0

Compare Source

This is the last minor release of Gotenberg 7 before version 8 🎉 See https://github.com/gotenberg/gotenberg/issues/710 for more details.

⚠️ The Chromium and LibreOffice modules behavior is changing with this release; consider reading the details below to have a better understanding.

New Feature

New form field pdfua: PDF for Universal Access for optimal accessibility. Available for:

  • /forms/chromium/convert/*
  • /forms/libreoffice/convert
  • /forms/pdfengines/convert
  • /forms/pdfengines/merge

Closes https://github.com/gotenberg/gotenberg/issues/621 - thanks @​giamma!

Fixes
Chromium

There were memory leaks due to defunct processes. As each conversion was starting a Chromium process, it was adding up quickly overtime. Alas, the issue is still upstream and it is recommended to have a long-running browser to handle conversions.

⚠️ There is now a single Chromium browser that handles all conversions. It manages them one by one, like the LibreOffice process in stateful mode. Under heavy load, you should consider increasing the number of Gotenberg instance.

Please note that this only mitigates the memory leaks; according to your metrics, consider restarting your Gotenberg instances from time to time.

New flags:

  • --chromium-restart-after - Number of conversions after which Chromium will automatically restart. Set to 0 to disable this feature (default 0).
  • --chromium-auto-start - Automatically launch Chromium upon initialization if set to true; otherwise, Chromium will start at the time of the first conversion (default false).
  • --chromium-start-timeout - Maximum duration to wait for Chromium to start or restart (default 10s).

New metrics:

  • chromium_requests_queue_size - Current number of Chromium conversion requests waiting to be treated.
  • chromium_restarts_count - Current number of Chromium restarts.

Fixes https://github.com/gotenberg/gotenberg/issues/642 - thanks @​petternordlanderhelo & @​JulienWeintraub!

LibreOffice

Newer versions of LibreOffice were unstable in stateful mode due to the abrupt deletion of their user profile directory. The "cleaning" system of files have been updated so that it now works with the latest LibreOffice version available on Debian.

⚠️ There is no more a stateless mode with LibreOffice, it now works the same way as the new version of the Chromium module.

New flags:

  • --libreoffice-restart-after - Number of conversions after which LibreOffice will automatically restart. Set to 0 to disable this feature (default 10).
  • --libreoffice-auto-start - Automatically launch LibreOffce upon initialization if set to true; otherwise, LibreOffice will start at the time of the first conversion (default false).
  • --libreoffice-start-timeout - Maximum duration to wait for LibreOffice to start or restart (default 10s).

New metrics:

  • libreoffice_requests_queue_size - Current number of LibreOffice conversion requests waiting to be treated.
  • libreoffice_restarts_count - Current number of LibreOffice restarts.

Fixes https://github.com/gotenberg/gotenberg/issues/576 - thanks @​PierreSchwang!

Deprecations
Chromium

Form field

  • userAgent

Flag:

  • chromium-failed-starts-threshold

Metrics:

  • chromium_active_instances_count
  • chromium_failed_starts_count
LibreOffice

Flags:

  • uno-listener-start-timeout
  • uno-listener-restart-threshold

Metrics:

  • unoconv_active_instances_count
  • libreoffice_listener_active_instances_count
  • libreoffice_listener_queue_length
PDF Engines
  • pdfa now replaces the pdfFormat and nativePdfFormat form fields.
Misc

⚠️ The following modules have been renamed:

  • uno -> libreoffice-api
  • uno-pdfengine -> libreoffice-pdfengine
Chore
  • Updates base image to Debian 12 bookworm.
  • Updates Go dependencies.
  • Blocks Chromium to version 116.0.5845.180-1 for armhf variant, updates to 119.0.6045.159 for others.
  • Updates LibreOffice to version 7.5.8.2.
  • Updates Noto Emoji to version 2.040 (Unicode 15.1).

v7.9.2: 7.9.2

Compare Source

Chore
  • Updates Golang to 1.21.
  • Updates Go dependencies.
  • Updates golangci-lint to v1.54.2.
  • Updates Google Chrome to version 117.0.5938.88 (116.0.5845.180 for armhf and i386).

v7.9.1: 7.9.1

Compare Source

Fix

Updates PDFcpu to v0.4.2 - fixes #​644 - thanks @​hhrutter & @​loremaps

v7.9.0: 7.9.0

Compare Source

New Feature

Adds a new flag --log-fields-prefix that prepends a prefix to each field in the logs (see #​659) - thanks @​JulienWeintraub!

Chore
  • Updates Go dependencies.
  • Updates Google Chrome to version 115.0.5790.98 for amd64 variant, 114.0.5735.198-1 for others.

v7.8.3: 7.8.3

Compare Source

New Features

  • The Chromium module now provides an health check. After a number of consecutive failed starts, defined by the property chromium-failed-starts-threshold (default 5), the /health route will return a 503 Service Unavailable error - thanks @​spewu!
  • Better graceful shutdown, on Kubernetes (see #​649) - thanks @​kevin-lindsay-1!

Chore

  • Updates Go dependencies.
  • Updates Google Chrome to version 113.0.5672.126 for amd64 variant, 112.0.5615.138-1 for others.

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot enabled auto-merge (rebase) September 4, 2023 17:16
@renovate renovate bot changed the title Update actions/checkout action to v4 Update actions/checkout action to v4 - autoclosed Oct 17, 2023
@renovate renovate bot closed this Oct 17, 2023
auto-merge was automatically disabled October 17, 2023 18:45

Pull request was closed

@renovate renovate bot deleted the renovate/major-all branch October 17, 2023 18:45
@renovate renovate bot changed the title Update actions/checkout action to v4 - autoclosed Update actions/checkout action to v4 Oct 19, 2023
@renovate renovate bot reopened this Oct 19, 2023
@renovate renovate bot restored the renovate/major-all branch October 19, 2023 10:11
@renovate renovate bot force-pushed the renovate/major-all branch from 60d859a to 9658d5d Compare October 19, 2023 10:11
@renovate renovate bot force-pushed the renovate/major-all branch from 9658d5d to 62a0b2d Compare January 4, 2024 19:38
@renovate renovate bot changed the title Update actions/checkout action to v4 Update all (major) Jan 4, 2024
@renovate renovate bot force-pushed the renovate/major-all branch from 62a0b2d to 9498f21 Compare January 8, 2024 17:51
@renovate renovate bot force-pushed the renovate/major-all branch from 9498f21 to c86f4b8 Compare January 18, 2024 14:17
@renovate renovate bot force-pushed the renovate/major-all branch from c86f4b8 to 63de7e6 Compare February 7, 2024 15:34
@renovate renovate bot force-pushed the renovate/major-all branch 2 times, most recently from ea1d0ec to 8732cda Compare February 24, 2024 00:57
@renovate renovate bot force-pushed the renovate/major-all branch from 8732cda to de378ad Compare March 4, 2024 13:39
@renovate renovate bot force-pushed the renovate/major-all branch from de378ad to c176512 Compare March 15, 2024 19:50
@renovate renovate bot enabled auto-merge (rebase) March 20, 2024 12:18
@renovate renovate bot force-pushed the renovate/major-all branch from c176512 to 4062b81 Compare March 23, 2024 22:39
@renovate renovate bot force-pushed the renovate/major-all branch from 4062b81 to 5f3ebae Compare April 11, 2024 15:26
@renovate renovate bot force-pushed the renovate/major-all branch from 5f3ebae to 0e2d0c7 Compare April 25, 2024 17:30
@renovate renovate bot force-pushed the renovate/major-all branch from 0e2d0c7 to 6bdb4d1 Compare May 22, 2024 11:12
@renovate renovate bot force-pushed the renovate/major-all branch from 6bdb4d1 to c59cebc Compare June 4, 2024 18:24
@renovate renovate bot force-pushed the renovate/major-all branch from c59cebc to 6db7d48 Compare June 13, 2024 11:36
@renovate renovate bot force-pushed the renovate/major-all branch from 6db7d48 to 3d6a8f6 Compare July 3, 2024 19:48
@renovate renovate bot force-pushed the renovate/major-all branch from 3d6a8f6 to 6cbd611 Compare July 18, 2024 15:25
@renovate renovate bot force-pushed the renovate/major-all branch from 6cbd611 to 9fca9f2 Compare July 29, 2024 12:37
@renovate renovate bot force-pushed the renovate/major-all branch from 9fca9f2 to ba5e9a2 Compare August 11, 2024 15:34
@renovate renovate bot force-pushed the renovate/major-all branch from ba5e9a2 to fcbc913 Compare September 3, 2024 13:59
@renovate renovate bot force-pushed the renovate/major-all branch from fcbc913 to f355597 Compare September 21, 2024 10:07
@renovate renovate bot force-pushed the renovate/major-all branch 2 times, most recently from a745d24 to d869d27 Compare October 6, 2024 12:27
@renovate renovate bot force-pushed the renovate/major-all branch from d869d27 to 6cb6e7f Compare October 11, 2024 16:21
@renovate renovate bot force-pushed the renovate/major-all branch from 6cb6e7f to e8aa9ea Compare November 5, 2024 19:53
@renovate renovate bot force-pushed the renovate/major-all branch 2 times, most recently from 3e50053 to 18c32f5 Compare November 21, 2024 14:48
@renovate renovate bot force-pushed the renovate/major-all branch 3 times, most recently from 5e7c79c to 6c4240c Compare December 25, 2024 23:01
@renovate renovate bot force-pushed the renovate/major-all branch from 6c4240c to dbb0041 Compare January 6, 2025 10:18
@renovate renovate bot force-pushed the renovate/major-all branch from dbb0041 to 0bd35c8 Compare January 30, 2025 01:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants