Julien Neuhart
4e9f63004d
feat(otel): add OpenTelemetry support
2026-03-27 16:28:45 +01:00
Julien Neuhart
08088c15f4
feat(chromium): skip or waits for networkIdle2 event
2026-03-27 11:01:39 +01:00
Julien Neuhart
8625a4e899
fix(webhook/downloadFrom): better default security and DX for allow / deny lists
2026-03-27 10:52:04 +01:00
Julien Neuhart
06b2b2e10c
fix(chromium): better default security and DX for allow / deny lists
2026-03-27 09:47:21 +01:00
Julien Neuhart
bd6d92be9b
fix(supervisor): queue slot - second request hitting a busy node now gets a 429 immediately, pushing backpressure to a load balancer, if any
2026-03-26 21:24:51 +01:00
Julien Neuhart
ed22f1e5e6
refactor(supervisor): better orchestration of processes for conversion requests
2026-03-26 21:24:51 +01:00
Julien Neuhart
8e3acc8d0a
docs(agents): better (?) organization of context files
2026-03-26 21:24:51 +01:00
Julien Neuhart
410c1dfd7f
fix(pdfengines): single file for watermark/stamp, and add the feature to the downloadFrom one
2026-03-18 23:22:31 +01:00
Julien Neuhart
0663e5f92b
feat(pdfengines): add rotate feature
2026-03-18 22:36:20 +01:00
Julien Neuhart
21e300fcec
fix(pdfengines): better workflow when applying PDF/A or PDF/UA compliance
2026-03-18 15:24:31 +01:00
Julien Neuhart
1e26fdd35b
fix(libreoffice): set EmbedStandardFonts to true when applying PDF/A or PDF/UA compliance
2026-03-18 13:45:01 +01:00
Julien Neuhart
19db80bc2e
feat(pdfengines): add watermark and stamp feature
2026-03-18 04:46:12 +01:00
Julien Neuhart
59f96358c4
feat(pdfengines): new form field autoIndexBookmarks for the merge route
2026-03-13 09:36:47 +01:00
Julien Neuhart
874e78c6cd
fix(pdfengines): correctly update the indexes if the bookmarks form field (map format) is given
2026-03-13 09:36:47 +01:00
Julien Neuhart
caea81501d
test(integration): add bookmarks routes
2026-03-13 09:36:47 +01:00
Julien Neuhart
1578253fb1
feat(pdfengines): add read bookmarks pdfcpu implementation
2026-03-13 09:36:47 +01:00
Julien Neuhart
fec6437c5d
feat(pdfengines): add bookmarks read route
2026-03-13 09:36:47 +01:00
Julien Neuhart
edff24913a
feat(pdfengines): add bookmarks write pdfcpu implementation
2026-03-13 09:36:47 +01:00
Julien Neuhart
5120b49639
feat(pdfengines): add bookmarks write route and update the merge route with this feature
2026-03-13 09:36:47 +01:00
Julien Neuhart
57e1b7efda
chore(golangci-lint): bump golangci-lint to v2.10.1
2026-02-21 17:54:46 +01:00
Julien Neuhart
2baa59cb3a
refactor(gofix): modernize
2026-02-20 21:21:19 +01:00
Daniel Moran
82401bdfdd
feat(chromium): add support for emulated media features in Chromium ( #1474 )
...
Closes https://github.com/gotenberg/gotenberg/issues/1460
It can be easier to print a "clean" PDF of some pages if you emulate
media features like `prefers-reduced-motion`. Add support for that
emulation.
2026-02-17 20:16:28 +01:00
Tom Brouws
12c25a2d21
feat(chromium): re-add concurrency support for Chromium ( #1467 )
...
* feat: add concurrency support to ProcessSupervisor
- Replace the single-slot mutex channel with a configurable semaphore to
allow multiple concurrent tasks.
- Add drain logic to ensure all active
tasks complete before process restarts.
* feat: add chromium-max-concurrency flag
- Add a --chromium-max-concurrency flag (1-6) to the Chromium module to
control how many conversions run in parallel.
- Update LibreOffice to pass maxConcurrency=1 as LibreOffice only supports
a single concurrent conversion.
* test: add integration tests for concurrent Chromium conversions
- Add concurrent request support to the integration test framework with
new step definitions for sending parallel requests and asserting on all
responses.
- Add a feature file for concurrent HTML to PDF conversions.
2026-02-13 10:00:58 +01:00
David
37757315d0
feat(Dockerfile): manage system time zone ( #1465 )
...
* displays timezone in debug information
* fixes cs
* fixes debug_test.go
2026-02-13 09:59:23 +01:00
Julien Neuhart
f57ecb6ef2
fix(exiftool): remove derived tags to prevent side effects when writing metadata ( fixes #1463 )
2026-01-29 17:25:09 +01:00
Adam Romanek
463bb2f91c
fix(webhook): detach context from request lifecycle to prevent cancellation in async mode
2026-01-26 09:11:48 +01:00
Adam Romanek
e14cab0c8b
fix(api): propagate request context to stop processing on client disconnect
2026-01-26 09:11:48 +01:00
Daniel Moran
3220ca4140
feat(chromium): add waitForSelector option to Chromium conversions ( #1446 )
...
* Add `waitForSelector` option to Chromium conversions
Closes #960
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.
* Fix style / prettify
2026-01-17 14:57:10 +01:00
David
92de0cf6fe
feat(prometheus): add new flag --prometheus-metrics-path
2026-01-14 10:04:57 +01:00
markfrost
0b211c39eb
feat(chromium): add IgnoreResourceHttpStatusDomains option to filter out resources based on their hostnames ( #1434 )
...
* Introduced `IgnoreResourceHttpStatusDomains` option to filter out resources based on their hostnames
- Introduced `IgnoreResourceHttpStatusDomains` option to filter out resources based on their hostnames during HTTP status code checks.
- Updated relevant functions to handle domain normalization and matching.
- Enhanced the form data handling to include the new option.
- Added integration test scenario to verify the functionality of ignoring specified domains.
* Updated the `normalizeDomains` function to initialize the `normalized` slice with a predefined capacity based on the input `domains` slice length, improving memory allocation efficiency.
2025-12-25 15:36:45 +01:00
Julien Neuhart
8b9858aa66
fix(chromium): resource intensive health check
2025-12-03 22:34:39 +01:00
Alex Weston
15fdc99ec0
fix(chromium): add net::ERR_HTTP2_PROTOCOL_ERROR in the EventLoadingFailed list
2025-11-21 21:30:03 +01:00
Julien Neuhart
b2c3187690
fix(chromium): better native errors handling
2025-11-15 15:10:09 +01:00
Julien Neuhart
f9ad8bd2d5
test(integration): add more tags, complete embed feature tests suite, fix order with metadata
2025-11-13 22:08:28 +01:00
Hubert Lenoir
a0ee800002
feat(pdfengines): add embed feature
2025-11-05 13:57:23 +01:00
Julien Neuhart
0e6bb27ecf
fix(chromium): add missing wrapped error
2025-10-24 14:49:54 +00:00
Julien Neuhart
83fdc01df1
fix(chromium): accept case-insensitive values for the cookies' sameSite attribute - closes #1331
2025-10-24 14:46:14 +00:00
Julien Neuhart
c7ccabc6cb
fix(chromium): mark the flag --chromium-incognito as deprecated and ignore its value
2025-10-24 14:03:17 +00:00
Julien Neuhart
d6ebc7f230
chore(pdfengines): better custom error message if invalid args
2025-09-04 14:49:04 +02:00
Julien Neuhart
0ad6623e24
fix(pdgengines): encrypt behavior accross different engines
2025-09-04 14:49:04 +02:00
Julien Neuhart
ba944f9dc2
chore: slight improvement of the encrypt feature to be more in line with others features
2025-09-04 14:49:04 +02:00
Stevenson Michel
99307befdd
feat: add PDF encryption feature ( #1217 )
...
* Adding PDF encryption option
* LibreOffice
* QPDF
* PDFtk
* pdfcpu
* Update pkg/modules/pdfengines/pdfengines.go
Co-authored-by: Julien Neuhart <neuhart.julien@gmail.com >
* npx prettier
* go fmt
* PR comments
* Update test/integration/scenario/scenario.go
Co-authored-by: Julien Neuhart <neuhart.julien@gmail.com >
* renamed ProtectWithPassword to encrypt
* more clean up
* Use the same input path as requested
* This commit completes the encryption implementation
* Clean up. Added webhook, disable route and download from tests
---------
Co-authored-by: Julien Neuhart <neuhart.julien@gmail.com >
2025-09-04 14:49:04 +02:00
Julien Neuhart
3dd9ce1fcd
feat(chromium): add MathJaX support
2025-08-29 21:06:20 +02:00
Julien Neuhart
d496cbfb53
fix(sort): better sorting algorithm - fixes #1287
2025-08-12 21:21:03 +02:00
Julien Neuhart
db8f0ad9ee
fix(chromium): hypen-data now work everytime
2025-08-12 20:54:53 +02:00
Julien Neuhart
02ad6c7834
feat(webhook): switch to --webhook-enable-sync-mode flag instead of header
2025-08-09 16:17:27 +02:00
Yash Narwal
fc11f557fa
feat(webhook) add support for sync upload with webhook url ( #1233 )
...
* Add support for having sync upload with webhook url
* Update tests
* Make SendOutputFileParams interface private
* Make interface params private
2025-08-08 09:25:46 +02:00
RJ Sampson
f299f3ed20
fix(chromium): Enable GPU support
...
Chromium 139 is set to deprecate the Swiftshader backend entirely:
https://chromestatus.com/feature/5166674414927872
And 138 doesn't provide fallback without explicitly enabling it,
breaking functionality such as WebGL in Gotenberg
Re-enable GPU support to work around this
Signed-off-by: RJ Sampson <rj.sampson@chainguard.dev >
2025-08-06 10:31:00 +02:00
Julien Neuhart
6ff5109b00
fix(integration): non-working scenarios because of a remote service down
2025-08-03 18:02:35 +02:00
Julien Neuhart
aa58615650
fix(api): outpout filename as path - fixes #1227
2025-06-06 15:14:06 +00:00