v1.3.0
Stirling-Tools/Stirling-PDFv1.3.0Sep 5, 2025by Frooodle
AI Summary
Significant update featuring advanced redaction, security enhancements, database improvements, and JWT authentication.
Key Highlights
- Auto-redact for text removal on True PDFs
- PDF to Image with annotations/highlights support
- Font color option for page numbers
- PFX alias for PKCS12 certificates
- JWT Authentication support
New Features
- Configurable backup schedules
- SSRF enhancement (private IP detection and IPv6 handling)
- Lombok annotations to reduce boilerplate code
Full Release Notes
<!-- Release notes generated using configuration in .github/release.yml at main -->
Been a few weeks since our last release, we have been making amazing progress on our future UI refresh and will have a demo to show everyone soon.
Major changes:
- Auto redact to support text removal on PDFs without the need for image conversion (Huge thanks to @balazs-szucs)
- PDF to Image to support shwoing annotations, highlights etc
- Add font color option for page numbers
- PFX alias for PKCS12
- Split PDF enhanced with better file number padding
- Several settings/database enhancements
- Many optimisations and refactors to improve stability and performance
- Several dependency updates
As always, thanks to all the open source community and in particular @Ludy87 for a massive 28 of these PRs in this release
## What's Changed
### Enhancements
* feat: Auto-redact to support text removal on True PDFs/non-custom encoded PDFs, JUnit tests for RedactController, and TextFinder by @balazs-szucs in https://github.com/Stirling-Tools/Stirling-PDF/pull/3936
* feat(audit): introduce structured Audit API with export, stats, and cleanup endpoints by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4217
* feat(common,core,proprietary): remove unused injections, enhance type safety, and improve test mocks by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4213
* feat(ssrf): enhance private IP detection and IPv6 handling by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4191
* feat(database,Jwt): relocate backups and Jwt-keys to `config/backup` and add Enterprise cleanup endpoints by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4225
* feat: add annotation option to PDF to image by @Frooodle in https://github.com/Stirling-Tools/Stirling-PDF/pull/4365
* feat(misc): Add font color option for page numbers; improve alignment & robustness by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4334
* feat: Add Lombok @Getter and @Setter annotations to reduce boilerplate code in multiple classes by @balazs-szucs in https://github.com/Stirling-Tools/Stirling-PDF/pull/4321
* feat(convert): PDF conversion with unoconvert fallback soffice by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4316
* feat(database): make backup schedule configurable via system keys by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4251
* feat(security): add PFX alias for PKCS12; accept .crt/.cer/.der certs & .key keys; add certificate-signing tests by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4297
* feat(common): add `ChecksumUtils` for MD5/SHA*/CRC32/Adler32 with Base64 and multi-algorithm support by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4261
### Minor Enhancements
* JWT Authentication by @DarioGii in https://github.com/Stirling-Tools/Stirling-PDF/pull/3921
* 🤖 format everything with pre-commit by stirlingbot by @stirlingbot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4175
* Update 3rd Party Licenses by @stirlingbot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4184
* fix(h2): refine SQL condition check for custom database flag by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4216
* refactor(tests): move & expand TextFinder/RedactController tests; fix TextFinder empty search-term handling; update token filtering API by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4264
* Update 3rd Party Licenses by @stirlingbot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4247
* fix(downloader): reset progress bar after completion by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4192
* fix(config): recreate settings.yml if missing or below minimal size threshold by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4166
* PdfContainer: zero-pad numeric suffix in nameAndArchiveFiles by @adityaruplaha in https://github.com/Stirling-Tools/Stirling-PDF/pull/4265
* Update 3rd Party Licenses by @stirlingbot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4278
* refactor(ssrf): default enum MEDIUM prevents OFF=false by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4280
* 🤖 format everything with pre-commit by stirlingbot by @stirlingbot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4185
* fix(api): prevent `MultipartFile` binding errors in `StampController` by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4331
* test(common): add dedicated unit tests for FileInfo and InputStreamTemplateResource by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4140
* Replace uses of `Arrays.asList()` with either List.of() or Collections.singletonList() by @balazs-szucs in https://github.com/Stirling-Tools/Stirling-PDF/pull/4219
* Update 3rd Party Licenses by @stirlingbot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4385
* 🤖 format everything with pre-commit by stirlingbot by @stirlingbot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4375
* fix(security): prevent NPE on logout when JWT service is unavailable by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4390
* refactor: standardize MIME handling via Spring `MediaType` by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4389
* perf(core): Stream responses and unify temp file lifecycle across controllers by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4330
### Docker Updates
* build(deps): bump gradle/actions from 4.4.1 to 4.4.2 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4177
* build(deps): bump actions/checkout from 4.2.2 to 4.3.0 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4180
* build(gradle): include all subprojects in license report generation by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4170
* deps: Pin Python dev dependencies and lock hashes to remediate security alert 302 by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4173
* build(deps): bump actions/checkout from 4.3.0 to 5.0.0 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4194
* build(deps): bump actions/setup-java from 4.7.1 to 5.0.0 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4269
### Translation Changes
* Update Hungarian translation for new update related strings by @balazs-szucs in https://github.com/Stirling-Tools/Stirling-PDF/pull/4152
* :globe_with_meridians: Sync Translations + Update README Progress Table by @stirlingbot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4174
* Update messages_it_IT.properties by @albanobattistella in https://github.com/Stirling-Tools/Stirling-PDF/pull/4183
* Update messages_tr_TR.properties by @turkaysoftware in https://github.com/Stirling-Tools/Stirling-PDF/pull/4274
* fix(i18n): standardize `{filename}` placeholder in `addPageNumbers.customNumberDesc` across all translations by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4204
* Update and improve the zh-TW Traditional Chinese translation by @PeterDaveHello in https://github.com/Stirling-Tools/Stirling-PDF/pull/4164
* :globe_with_meridians: Sync Translations + Update README Progress Table by @stirlingbot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4277
* :globe_with_meridians: Sync Translations + Update README Progress Table by @stirlingbot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4374
* Update messages_it_IT.properties by @albanobattistella in https://github.com/Stirling-Tools/Stirling-PDF/pull/4285
* Update messages_tr_TR.properties by @turkaysoftware in https://github.com/Stirling-Tools/Stirling-PDF/pull/4384
### Other Changes
* :globe_with_meridians: Sync Translations + Update README Progress Table by @stirlingbot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4159
* chore(labeler): add new 'v2' label and expand matching rules by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4172
* build(deps): bump github/codeql-action from 3.29.7 to 3.29.8 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4178
* build(deps): bump actions/download-artifact from 4.3.0 to 5.0.0 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4179
* build(deps): bump actions/ai-inference from 1.2.7 to 1.2.8 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4181
* build(deps): bump edu.sc.seis.launch4j from 3.0.7 to 4.0.0 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4182
* build(deps): bump actions/dependency-review-action from 4.7.1 to 4.7.2 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4230
* build(deps): bump jwtVersion from 0.12.6 to 0.12.7 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4229
* build(deps): bump github/codeql-action from 3.29.8 to 3.29.10 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4231
* refactor(build): centralize security disable condition in shared Gradle property by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4209
* chore(ci): include `testing/**` in file change detection for `docker-compose-tests` workflow by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4206
* build(deps): bump org.springdoc:springdoc-openapi-starter-webmvc-ui from 2.8.9 to 2.8.11 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4273
* build(deps): bump org.springframework.boot from 3.5.4 to 3.5.5 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4272
* build(deps): bump github/codeql-action from 3.29.10 to 3.29.11 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4271
* build(deps): bump org.springframework.boot:spring-boot-dependencies from 3.5.4 to 3.5.5 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4268
* build(deps): bump springSecuritySamlVersion from 6.5.2 to 6.5.3 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4227
* build(deps): bump io.swagger.core.v3:swagger-core-jakarta from 2.2.35 to 2.2.36 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4226
* build(deps): bump io.micrometer:micrometer-core from 1.15.2 to 1.15.3 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4190
* ci(workflow): simplify PR deployment by removing redundant repo/ref lookup by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4266
* build(gradle): replace deprecated `outputFile` with `destinationFile` in `writeVersion` task by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4167
* build(deps): bump jwtVersion from 0.12.7 to 0.13.0 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4270
* build(deps): bump org.springdoc:springdoc-openapi-starter-webmvc-ui from 2.8.11 to 2.8.12 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4356
* build(deps): bump github/codeql-action from 3.29.11 to 3.30.0 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4355
* build(deps): bump actions/dependency-review-action from 4.7.2 to 4.7.3 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4353
* build(deps): bump org.sonarqube from 6.2.0.5505 to 6.3.1.5724 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4352
* build(deps): bump com.bucket4j:bucket4j_jdk17-core from 8.14.0 to 8.15.0 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4279
* build(deps): bump org.panteleyev.jpackageplugin from 1.7.3 to 1.7.5 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4347
* build(deps): bump jakarta.mail:jakarta.mail-api from 2.1.3 to 2.1.4 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4351
* fix(ci:testdriver): conditionally run frontend tests based on file changes by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4064
* Bump project version from 1.2.0 to 1.3.0 by @Frooodle in https://github.com/Stirling-Tools/Stirling-PDF/pull/4383
## New Contributors
* @turkaysoftware made their first contribution in https://github.com/Stirling-Tools/Stirling-PDF/pull/4274
**Full Changelog**: https://github.com/Stirling-Tools/Stirling-PDF/compare/v1.2.0...v1.3.0