github Stirling-Tools/Stirling-PDF v1.3.0
1.3.0 Advanced Redaction, Security enhancement and code improvements

latest release: v1.3.1
6 hours ago

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 #3936
  • feat(audit): introduce structured Audit API with export, stats, and cleanup endpoints by @Ludy87 in #4217
  • feat(common,core,proprietary): remove unused injections, enhance type safety, and improve test mocks by @Ludy87 in #4213
  • feat(ssrf): enhance private IP detection and IPv6 handling by @Ludy87 in #4191
  • feat(database,Jwt): relocate backups and Jwt-keys to config/backup and add Enterprise cleanup endpoints by @Ludy87 in #4225
  • feat: add annotation option to PDF to image by @Frooodle in #4365
  • feat(misc): Add font color option for page numbers; improve alignment & robustness by @Ludy87 in #4334
  • feat: Add Lombok @Getter and @Setter annotations to reduce boilerplate code in multiple classes by @balazs-szucs in #4321
  • feat(convert): PDF conversion with unoconvert fallback soffice by @Ludy87 in #4316
  • feat(database): make backup schedule configurable via system keys by @Ludy87 in #4251
  • feat(security): add PFX alias for PKCS12; accept .crt/.cer/.der certs & .key keys; add certificate-signing tests by @Ludy87 in #4297
  • feat(common): add ChecksumUtils for MD5/SHA*/CRC32/Adler32 with Base64 and multi-algorithm support by @Ludy87 in #4261

Minor Enhancements

  • JWT Authentication by @DarioGii in #3921
  • 🤖 format everything with pre-commit by stirlingbot by @stirlingbot[bot] in #4175
  • Update 3rd Party Licenses by @stirlingbot[bot] in #4184
  • fix(h2): refine SQL condition check for custom database flag by @Ludy87 in #4216
  • refactor(tests): move & expand TextFinder/RedactController tests; fix TextFinder empty search-term handling; update token filtering API by @Ludy87 in #4264
  • Update 3rd Party Licenses by @stirlingbot[bot] in #4247
  • fix(downloader): reset progress bar after completion by @Ludy87 in #4192
  • fix(config): recreate settings.yml if missing or below minimal size threshold by @Ludy87 in #4166
  • PdfContainer: zero-pad numeric suffix in nameAndArchiveFiles by @adityaruplaha in #4265
  • Update 3rd Party Licenses by @stirlingbot[bot] in #4278
  • refactor(ssrf): default enum MEDIUM prevents OFF=false by @Ludy87 in #4280
  • 🤖 format everything with pre-commit by stirlingbot by @stirlingbot[bot] in #4185
  • fix(api): prevent MultipartFile binding errors in StampController by @Ludy87 in #4331
  • test(common): add dedicated unit tests for FileInfo and InputStreamTemplateResource by @Ludy87 in #4140
  • Replace uses of Arrays.asList() with either List.of() or Collections.singletonList() by @balazs-szucs in #4219
  • Update 3rd Party Licenses by @stirlingbot[bot] in #4385
  • 🤖 format everything with pre-commit by stirlingbot by @stirlingbot[bot] in #4375
  • fix(security): prevent NPE on logout when JWT service is unavailable by @Ludy87 in #4390
  • refactor: standardize MIME handling via Spring MediaType by @Ludy87 in #4389
  • perf(core): Stream responses and unify temp file lifecycle across controllers by @Ludy87 in #4330

Docker Updates

  • build(deps): bump gradle/actions from 4.4.1 to 4.4.2 by @dependabot[bot] in #4177
  • build(deps): bump actions/checkout from 4.2.2 to 4.3.0 by @dependabot[bot] in #4180
  • build(gradle): include all subprojects in license report generation by @Ludy87 in #4170
  • deps: Pin Python dev dependencies and lock hashes to remediate security alert 302 by @Ludy87 in #4173
  • build(deps): bump actions/checkout from 4.3.0 to 5.0.0 by @dependabot[bot] in #4194
  • build(deps): bump actions/setup-java from 4.7.1 to 5.0.0 by @dependabot[bot] in #4269

Translation Changes

  • Update Hungarian translation for new update related strings by @balazs-szucs in #4152
  • 🌐 Sync Translations + Update README Progress Table by @stirlingbot[bot] in #4174
  • Update messages_it_IT.properties by @albanobattistella in #4183
  • Update messages_tr_TR.properties by @turkaysoftware in #4274
  • fix(i18n): standardize {filename} placeholder in addPageNumbers.customNumberDesc across all translations by @Ludy87 in #4204
  • Update and improve the zh-TW Traditional Chinese translation by @PeterDaveHello in #4164
  • 🌐 Sync Translations + Update README Progress Table by @stirlingbot[bot] in #4277
  • 🌐 Sync Translations + Update README Progress Table by @stirlingbot[bot] in #4374
  • Update messages_it_IT.properties by @albanobattistella in #4285
  • Update messages_tr_TR.properties by @turkaysoftware in #4384

Other Changes

  • 🌐 Sync Translations + Update README Progress Table by @stirlingbot[bot] in #4159
  • chore(labeler): add new 'v2' label and expand matching rules by @Ludy87 in #4172
  • build(deps): bump github/codeql-action from 3.29.7 to 3.29.8 by @dependabot[bot] in #4178
  • build(deps): bump actions/download-artifact from 4.3.0 to 5.0.0 by @dependabot[bot] in #4179
  • build(deps): bump actions/ai-inference from 1.2.7 to 1.2.8 by @dependabot[bot] in #4181
  • build(deps): bump edu.sc.seis.launch4j from 3.0.7 to 4.0.0 by @dependabot[bot] in #4182
  • build(deps): bump actions/dependency-review-action from 4.7.1 to 4.7.2 by @dependabot[bot] in #4230
  • build(deps): bump jwtVersion from 0.12.6 to 0.12.7 by @dependabot[bot] in #4229
  • build(deps): bump github/codeql-action from 3.29.8 to 3.29.10 by @dependabot[bot] in #4231
  • refactor(build): centralize security disable condition in shared Gradle property by @Ludy87 in #4209
  • chore(ci): include testing/** in file change detection for docker-compose-tests workflow by @Ludy87 in #4206
  • build(deps): bump org.springdoc:springdoc-openapi-starter-webmvc-ui from 2.8.9 to 2.8.11 by @dependabot[bot] in #4273
  • build(deps): bump org.springframework.boot from 3.5.4 to 3.5.5 by @dependabot[bot] in #4272
  • build(deps): bump github/codeql-action from 3.29.10 to 3.29.11 by @dependabot[bot] in #4271
  • build(deps): bump org.springframework.boot:spring-boot-dependencies from 3.5.4 to 3.5.5 by @dependabot[bot] in #4268
  • build(deps): bump springSecuritySamlVersion from 6.5.2 to 6.5.3 by @dependabot[bot] in #4227
  • build(deps): bump io.swagger.core.v3:swagger-core-jakarta from 2.2.35 to 2.2.36 by @dependabot[bot] in #4226
  • build(deps): bump io.micrometer:micrometer-core from 1.15.2 to 1.15.3 by @dependabot[bot] in #4190
  • ci(workflow): simplify PR deployment by removing redundant repo/ref lookup by @Ludy87 in #4266
  • build(gradle): replace deprecated outputFile with destinationFile in writeVersion task by @Ludy87 in #4167
  • build(deps): bump jwtVersion from 0.12.7 to 0.13.0 by @dependabot[bot] in #4270
  • build(deps): bump org.springdoc:springdoc-openapi-starter-webmvc-ui from 2.8.11 to 2.8.12 by @dependabot[bot] in #4356
  • build(deps): bump github/codeql-action from 3.29.11 to 3.30.0 by @dependabot[bot] in #4355
  • build(deps): bump actions/dependency-review-action from 4.7.2 to 4.7.3 by @dependabot[bot] in #4353
  • build(deps): bump org.sonarqube from 6.2.0.5505 to 6.3.1.5724 by @dependabot[bot] in #4352
  • build(deps): bump com.bucket4j:bucket4j_jdk17-core from 8.14.0 to 8.15.0 by @dependabot[bot] in #4279
  • build(deps): bump org.panteleyev.jpackageplugin from 1.7.3 to 1.7.5 by @dependabot[bot] in #4347
  • build(deps): bump jakarta.mail:jakarta.mail-api from 2.1.3 to 2.1.4 by @dependabot[bot] in #4351
  • fix(ci:testdriver): conditionally run frontend tests based on file changes by @Ludy87 in #4064
  • Bump project version from 1.2.0 to 1.3.0 by @Frooodle in #4383

New Contributors

Please note release artifacts also contain the commit
e5da635

Full Changelog: v1.2.0...v1.3.0

Don't miss a new Stirling-PDF release

NewReleases is sending notifications on new releases.