Skip to content

Conversation

@Ludy87
Copy link
Collaborator

@Ludy87 Ludy87 commented Jan 6, 2026

Description of Changes

This pull request updates the CI/CD workflows and Gradle configuration to improve build reproducibility, security, and external dependency management. The main changes include standardizing Gradle setup across workflows, securely injecting Maven credentials, and enabling Gradle build caching. There are also minor improvements to dependency version management and plugin repository configuration.

CI/CD Workflow Improvements:

  • Standardized Gradle setup across all GitHub Actions workflows by explicitly adding a Setup Gradle step using gradle/actions/setup-gradle@v5.0.0 and specifying Gradle version 8.14. This replaces previous usages and ensures consistency. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16]

  • Enabled Gradle build cache (--build-cache) for all build-related commands in workflows, improving build performance and consistency. Also removed unnecessary clean commands before builds to further optimize workflow times. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13]

Security and Dependency Management:

  • Injected Maven credentials (MAVEN_USER, MAVEN_PASSWORD, MAVEN_PUBLIC_URL) as environment variables in all relevant workflow steps, supporting secure access to private or custom Maven repositories. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15]

  • Added a pluginManagement block in settings.gradle to allow Gradle plugins to be resolved from a custom Maven repository if specified by environment variables, increasing flexibility for plugin sourcing.

Build and Dependency Versioning:

  • Updated app/proprietary/build.gradle to use the bouncycastleVersion variable for the Bouncy Castle dependency version, improving maintainability and consistency of dependency versioning.

Workflow Trigger Improvements:

  • Expanded the file path triggers in .github/workflows/sync_files_v2.yml to include additional Gradle build files, ensuring the workflow runs when any core build files are changed.

Checklist

General

Documentation

Translations (if applicable)

UI Changes (if applicable)

  • Screenshots or videos demonstrating the UI changes are attached (e.g., as comments or direct attachments in the PR)

Testing (if applicable)

  • I have tested my changes locally. Refer to the Testing Guide for more details.

Added 'cache: "gradle"' to all Java setup steps across multiple GitHub Actions workflows to improve build performance by leveraging Gradle's dependency caching.
Copilot AI review requested due to automatic review settings January 6, 2026 12:16
@dosubot dosubot bot added the size:S This PR changes 10-29 lines ignoring generated files. label Jan 6, 2026
@stirlingbot stirlingbot bot added Docker Pull requests that update Docker code API API-related issues or pull requests Github Devtools Development tools chore Routine tasks or maintenance that don't modify src or test files ci Changes to CI configuration files and scripts labels Jan 6, 2026
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds Gradle dependency caching to GitHub Actions workflows to improve CI build performance by reusing previously built dependencies and outputs across workflow runs.

Key changes:

  • Added cache: "gradle" to all actions/setup-java steps across 10 workflow files
  • Updated Java version from "17" to "21" in PR-Demo-Comment-with-react.yml to align with other workflows

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
.github/workflows/build.yml Added Gradle caching to 5 different jobs (build-variants, openapi-docs, licenses, docker-build, gradle-wrapper-validation)
.github/workflows/PR-Demo-Comment-with-react.yml Added Gradle caching and corrected Java version from 17 to 21 in deploy-pr job
.github/workflows/frontend-backend-licenses-update.yml Added Gradle caching to backend-licenses job
.github/workflows/multiOSReleases.yml Added Gradle caching to all 3 platform-specific jobs (linux, windows, macos)
.github/workflows/pre_commit.yml Added Gradle caching to pre-commit build job
.github/workflows/push-docker-v2.yml Added Gradle caching to push job
.github/workflows/push-docker.yml Added Gradle caching to push job
.github/workflows/swagger.yml Added Gradle caching to generate job
.github/workflows/tauri-build.yml Added Gradle caching to build-tauri job
.github/workflows/testdriver.yml Added Gradle caching to deploy job

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Replaced 'clean build' with 'build --build-cache' in all GitHub Actions workflows to improve build performance by leveraging Gradle's build cache. Also set 'max-parallel: 2' in relevant build matrices. Added TypeScript global typings for Google Drive Picker integration.
@dosubot dosubot bot added size:M This PR changes 30-99 lines ignoring generated files. and removed size:S This PR changes 10-29 lines ignoring generated files. labels Jan 6, 2026
Replaces the use of the 'cache: gradle' option in Java setup steps with explicit 'Setup Gradle' steps using gradle/actions/setup-gradle@v5.0.0 and sets gradle-version to 8.14 across all relevant workflows. This standardizes Gradle setup and improves workflow consistency.
@dosubot dosubot bot added size:L This PR changes 100-499 lines ignoring generated files. and removed size:M This PR changes 30-99 lines ignoring generated files. labels Jan 6, 2026
@stirlingbot stirlingbot bot added the Gradle Pull requests that update Gradle code label Jan 6, 2026
Removed Oracle Maven repository and added Maven Central.
@stirlingbot stirlingbot bot removed the Gradle Pull requests that update Gradle code label Jan 6, 2026
@Ludy87 Ludy87 added the Priority: High Issues or pull requests with high priority label Jan 6, 2026
Ludy87 added 2 commits January 6, 2026 16:00
Introduces logic to use a local Maven repository if present and adds a 'vendorAllDeps' Gradle task to copy all resolved external dependencies and their POMs into './maven-repo'. Also updates googleJavaFormatVersion to 1.33.0 and ensures local repo is included in repositories for main and subprojects.
Ludy87 added 5 commits January 7, 2026 23:23
Eliminated steps for setting up JDK 21, Gradle, generating Maven dependencies, and committing them in the sync_files_v2 workflow. This streamlines the workflow by focusing only on Python setup and related tasks.
Added console output in build.gradle to indicate whether MAVEN_PUBLIC_URL is set or defaulting to Maven Central. Also applied minor formatting changes in settings.gradle for readability.
Sets MAVEN_USER, MAVEN_PASSWORD, and MAVEN_PUBLIC_URL as environment variables for the test job in the GitHub Actions workflow. This enables the test scripts to access Maven repositories requiring authentication.
@Ludy87 Ludy87 marked this pull request as draft January 8, 2026 00:20
Ludy87 added 9 commits January 8, 2026 19:30
Centralizes Maven repository URL and credentials handling using Gradle's ext properties. Updates repository definitions to use consistent syntax, improves authentication setup, and removes redundant repository blocks. Also updates settings.gradle to align with new repository and authentication configuration.
Added missing slashes when concatenating Maven repository URLs in build.gradle and settings.gradle to ensure correct path formation.
Changed usage of 'MAVEN_USER_PASSWORD' to 'MAVEN_PASSWORD' in build.gradle and settings.gradle for consistency with environment variable naming.
Uncommented the mavenCentral() repository in the build.gradle file to allow dependency resolution from Maven Central.
Updated multiple GitHub Actions workflow files to remove the explicit '--build-cache' flag from Gradle commands. This simplifies the build steps and relies on Gradle's default caching behavior.
@Ludy87 Ludy87 marked this pull request as ready for review January 8, 2026 22:03
Updated the workflow to support additional branches (master, main, testMain), unified and simplified tag generation for Docker image variants, and upgraded several GitHub Actions to newer versions. Removed redundant steps for test branches, improved conditional logic for signing and building images, and enhanced maintainability by consolidating tag and label handling.
Removed push-docker-v2.yml and merged its logic into push-docker.yml. The updated workflow now supports additional branches (V2-master, testMain), uses a more powerful runner, updates action versions, and unifies the build and signing steps for latest, fat, and ultra-lite Docker image variants. This streamlines maintenance and ensures all Docker image variants are built and signed consistently across relevant branches.
@stirlingbot
Copy link
Contributor

stirlingbot bot commented Jan 18, 2026

✅ Frontend License Check Passed

All frontend licenses have been validated and no compatibility warnings were detected.

The frontend license report has been updated successfully.

@stirlingbot
Copy link
Contributor

stirlingbot bot commented Jan 18, 2026

✅ Backend License Check Passed

All backend dependencies have valid and allowed licenses.

The backend license report has been updated successfully.

@Frooodle Frooodle merged commit 8bb8074 into main Jan 19, 2026
35 checks passed
@Frooodle Frooodle deleted the gradle_cache_20260106 branch January 19, 2026 19:03
renovate bot added a commit to sdwilsh/ansible-playbooks that referenced this pull request Jan 22, 2026
… docker tag to v2

##### [\`2.3.1\`](https://github.com/Stirling-Tools/Stirling-PDF/releases/tag/v2.3.1)

Several bug fixes , including

- Scroll bar not showing correctly in settings menu
- Automate menus showing options correctly

and several other change,s such as SVG to PDF conversion and performance changes throughout app

#### What's Changed

##### Enhancements

- feat(conversion): add SVG to PDF conversion functionality by [@balazs-szucs](https://github.com/balazs-szucs) in [#5431](https://github.com/Stirling-Tools/Stirling-PDF/pull/5431)
- feat(pipeline): improve file processing with resource management and temp file handling by [@balazs-szucs](https://github.com/balazs-szucs) in [#5488](https://github.com/Stirling-Tools/Stirling-PDF/pull/5488)
- feat(admin): add tessdata language management for OCR and download support by [@Ludy87](https://github.com/Ludy87) in [#5519](https://github.com/Stirling-Tools/Stirling-PDF/pull/5519)

##### Minor Enhancements

- :globe\_with\_meridians: Sync Translations + Update README Progress Table by [@stirlingbot](https://github.com/stirlingbot)\[bot] in [#5489](https://github.com/Stirling-Tools/Stirling-PDF/pull/5489)
- 🤖 format everything with pre-commit by stirlingbot by [@stirlingbot](https://github.com/stirlingbot)\[bot] in [#5484](https://github.com/Stirling-Tools/Stirling-PDF/pull/5484)
- \[V2] fix(automation): enhance parameter handling and default values across operations, fix error in ManyToOne tools by [@balazs-szucs](https://github.com/balazs-szucs) in [#5123](https://github.com/Stirling-Tools/Stirling-PDF/pull/5123)
- scrollbar fixes by [@Frooodle](https://github.com/Frooodle) in [#5529](https://github.com/Stirling-Tools/Stirling-PDF/pull/5529)
- Fix hook ordering for endpoint name resolution by [@Frooodle](https://github.com/Frooodle) in [#5517](https://github.com/Stirling-Tools/Stirling-PDF/pull/5517)
- fix(automation): add zIndex and withinPortal props to dropdown components for improved UI consistency by [@balazs-szucs](https://github.com/balazs-szucs) in [#5527](https://github.com/Stirling-Tools/Stirling-PDF/pull/5527)
- refactor: remove legacy Thymeleaf web UI controllers and templates by [@Ludy87](https://github.com/Ludy87) in [#5406](https://github.com/Stirling-Tools/Stirling-PDF/pull/5406)
- fix(pipeline): avoid bad multipart by letting RestTemplate set boundary by [@Ludy87](https://github.com/Ludy87) in [#5522](https://github.com/Stirling-Tools/Stirling-PDF/pull/5522)
- chore(i18n): update and expand Dutch (nl-NL) translations by [@Stephan-P](https://github.com/Stephan-P) in [#5355](https://github.com/Stirling-Tools/Stirling-PDF/pull/5355)
- Update Italian translations by [@albanobattistella](https://github.com/albanobattistella) in [#5508](https://github.com/Stirling-Tools/Stirling-PDF/pull/5508)

##### Docker Updates

- chore(ci): enable Gradle dependency caching across GitHub workflows by [@Ludy87](https://github.com/Ludy87) in [#5400](https://github.com/Stirling-Tools/Stirling-PDF/pull/5400)
- build(deps): bump actions/checkout from 4.2.2 to 6.0.1 by [@dependabot](https://github.com/dependabot)\[bot] in [#5465](https://github.com/Stirling-Tools/Stirling-PDF/pull/5465)

##### Development Tools

- build(deps-dev): bump stylelint-config-standard from 39.0.1 to 40.0.0 in /devTools by [@dependabot](https://github.com/dependabot)\[bot] in [#5504](https://github.com/Stirling-Tools/Stirling-PDF/pull/5504)

##### Other Changes

- build(deps): bump actions/download-artifact from 6.0.0 to 7.0.0 by [@dependabot](https://github.com/dependabot)\[bot] in [#5503](https://github.com/Stirling-Tools/Stirling-PDF/pull/5503)
- build(deps): bump reportlab from 4.4.5 to 4.4.9 in /testing/cucumber by [@dependabot](https://github.com/dependabot)\[bot] in [#5505](https://github.com/Stirling-Tools/Stirling-PDF/pull/5505)

---
##### [\`2.3.0\`](https://github.com/Stirling-Tools/Stirling-PDF/releases/tag/v2.3.0)

Several important bug fixes in this release related to

- File conversion threading
- Non-roman alphabet files processing incorrectly
- Desktop app bugs (Lots more fixes coming!)
- And many others!

We also have some really cool features introduced such as

- Telegram bot (In Connections menu or settings.yml)
- PDF to EPUB and AZW3
- MSG support

#### What's Changed

##### Enhancements

- feat(build): enhance JaCoCo reporting with coverage summary and enforce thresholds by [@Ludy87](https://github.com/Ludy87) in [#5352](https://github.com/Stirling-Tools/Stirling-PDF/pull/5352)
- feat(ui): prevent self-modification in People management and highlight current user by [@Ludy87](https://github.com/Ludy87) in [#5441](https://github.com/Stirling-Tools/Stirling-PDF/pull/5441)
- feat(conversion): refactor EML parser to use Simple Java Mail library and add MSG support by [@balazs-szucs](https://github.com/balazs-szucs) in [#5427](https://github.com/Stirling-Tools/Stirling-PDF/pull/5427)
- feat(conversion): add PDF to EPUB/AZW3 conversion support and settings by [@balazs-szucs](https://github.com/balazs-szucs) in [#5434](https://github.com/Stirling-Tools/Stirling-PDF/pull/5434)

##### Minor Enhancements

- build(ci): pin base container images, switch npm install to npm ci, and harden EML error handling by [@Ludy87](https://github.com/Ludy87) in [#5353](https://github.com/Stirling-Tools/Stirling-PDF/pull/5353)
- 🤖 format everything with pre-commit by stirlingbot by [@stirlingbot](https://github.com/stirlingbot)\[bot] in [#5426](https://github.com/Stirling-Tools/Stirling-PDF/pull/5426)
- Updated ga-IE translations and added keys to ignore list by [@aindriu80](https://github.com/aindriu80) in [#5178](https://github.com/Stirling-Tools/Stirling-PDF/pull/5178)
- fix(api): return JSON responses for admin settings + API key endpoints to prevent Tauri client parse errors by [@Ludy87](https://github.com/Ludy87) in [#5437](https://github.com/Stirling-Tools/Stirling-PDF/pull/5437)
- Update Backend 3rd Party Licenses by [@stirlingbot](https://github.com/stirlingbot)\[bot] in [#5363](https://github.com/Stirling-Tools/Stirling-PDF/pull/5363)
- build(deps): bump node from 20-alpine to 25-alpine in /docker/frontend by [@dependabot](https://github.com/dependabot)\[bot] in [#5311](https://github.com/Stirling-Tools/Stirling-PDF/pull/5311)
- build(deps): bump nginx from `8491795` to `c083c37` in /docker/frontend by [@dependabot](https://github.com/dependabot)\[bot] in [#5448](https://github.com/Stirling-Tools/Stirling-PDF/pull/5448)
- build(deps): bump globals from 16.5.0 to 17.0.0 in /frontend by [@dependabot](https://github.com/dependabot)\[bot] in [#5413](https://github.com/Stirling-Tools/Stirling-PDF/pull/5413)
- Add Telegram bot integration for pipeline processing by [@Ludy87](https://github.com/Ludy87) in [#5185](https://github.com/Stirling-Tools/Stirling-PDF/pull/5185)
- Update Backend 3rd Party Licenses by [@stirlingbot](https://github.com/stirlingbot)\[bot] in [#5458](https://github.com/Stirling-Tools/Stirling-PDF/pull/5458)
- translations by [@Frooodle](https://github.com/Frooodle) in [#5469](https://github.com/Stirling-Tools/Stirling-PDF/pull/5469)
- :globe\_with\_meridians: Sync Translations + Update README Progress Table by [@stirlingbot](https://github.com/stirlingbot)\[bot] in [#5473](https://github.com/Stirling-Tools/Stirling-PDF/pull/5473)
- fix(auth): remove unnecessary authentication requirement from SignatureController by [@balazs-szucs](https://github.com/balazs-szucs) in [#5477](https://github.com/Stirling-Tools/Stirling-PDF/pull/5477)
- Make controls sticky by [@reecebrowne](https://github.com/reecebrowne) in [#5478](https://github.com/Stirling-Tools/Stirling-PDF/pull/5478)
- fix: update broken enterprise docs link from /Pro to /Paid-Offerings by [@krizhnaa](https://github.com/krizhnaa) in [#5471](https://github.com/Stirling-Tools/Stirling-PDF/pull/5471)
- Libre threads by [@Frooodle](https://github.com/Frooodle) in [#5303](https://github.com/Stirling-Tools/Stirling-PDF/pull/5303)

##### Docker Updates

- build(deps): bump docker/setup-qemu-action from 3.6.0 to 3.7.0 by [@dependabot](https://github.com/dependabot)\[bot] in [#5326](https://github.com/Stirling-Tools/Stirling-PDF/pull/5326)
- build(deps): bump step-security/harden-runner from 2.12.1 to 2.14.0 by [@dependabot](https://github.com/dependabot)\[bot] in [#5324](https://github.com/Stirling-Tools/Stirling-PDF/pull/5324)
- ci(build): scope Docker layer cache per artifact to avoid cross-contamination by [@Ludy87](https://github.com/Ludy87) in [#5453](https://github.com/Stirling-Tools/Stirling-PDF/pull/5453)
- build(deps): bump alpine from 3.22.2 to 3.23.2 in /docker/backend by [@dependabot](https://github.com/dependabot)\[bot] in [#5316](https://github.com/Stirling-Tools/Stirling-PDF/pull/5316)
- build(deps): bump alpine from 3.22.1 to 3.23.2 in /docker/embedded by [@dependabot](https://github.com/dependabot)\[bot] in [#5319](https://github.com/Stirling-Tools/Stirling-PDF/pull/5319)
- build(deps): bump debian from `1c25564` to `449673e` in /docker/embedded by [@dependabot](https://github.com/dependabot)\[bot] in [#5357](https://github.com/Stirling-Tools/Stirling-PDF/pull/5357)
- build(deps): bump docker/setup-buildx-action from 3.11.1 to 3.12.0 by [@dependabot](https://github.com/dependabot)\[bot] in [#5463](https://github.com/Stirling-Tools/Stirling-PDF/pull/5463)
- Docker use latest libreoffice and fonts by [@Frooodle](https://github.com/Frooodle) in [#5482](https://github.com/Stirling-Tools/Stirling-PDF/pull/5482)

##### Translation Changes

- 🤖 format everything with pre-commit by stirlingbot by [@stirlingbot](https://github.com/stirlingbot)\[bot] in [#5462](https://github.com/Stirling-Tools/Stirling-PDF/pull/5462)

##### Other Changes

- fix(ci): read workflow\_dispatch PR number from inputs.pr in PR auto-deploy workflow by [@Ludy87](https://github.com/Ludy87) in [#5380](https://github.com/Stirling-Tools/Stirling-PDF/pull/5380)
- build(deps): bump github/codeql-action from 4.31.5 to 4.31.10 by [@dependabot](https://github.com/dependabot)\[bot] in [#5449](https://github.com/Stirling-Tools/Stirling-PDF/pull/5449)
- build(deps): bump pypdf from 6.4.0 to 6.6.0 in /testing/cucumber by [@dependabot](https://github.com/dependabot)\[bot] in [#5422](https://github.com/Stirling-Tools/Stirling-PDF/pull/5422)
- build(deps): bump io.micrometer:micrometer-core from 1.16.0 to 1.16.1 by [@dependabot](https://github.com/dependabot)\[bot] in [#5358](https://github.com/Stirling-Tools/Stirling-PDF/pull/5358)
- Update user login conditions in workflow by [@Frooodle](https://github.com/Frooodle) in [#5457](https://github.com/Stirling-Tools/Stirling-PDF/pull/5457)
- fix(core): reinstall frontend dependencies when iconify package is missing by [@Ludy87](https://github.com/Ludy87) in [#5432](https://github.com/Stirling-Tools/Stirling-PDF/pull/5432)
- fix(translations): improve translation merger CLI and sync missing UI strings across locales by [@Ludy87](https://github.com/Ludy87) in [#5309](https://github.com/Stirling-Tools/Stirling-PDF/pull/5309)
- build(deps): bump urllib3 from 2.5.0 to 2.6.3 in /testing/cucumber in the pip group across 1 directory by [@dependabot](https://github.com/dependabot)\[bot] in [#5456](https://github.com/Stirling-Tools/Stirling-PDF/pull/5456)
- build(deps): bump docker/login-action from 3.4.0 to 3.6.0 by [@dependabot](https://github.com/dependabot)\[bot] in [#5464](https://github.com/Stirling-Tools/Stirling-PDF/pull/5464)

#### New Contributors

- [@krizhnaa](https://github.com/krizhnaa) made their first contribution in [#5471](https://github.com/Stirling-Tools/Stirling-PDF/pull/5471)

**Full Changelog**: <https://github.com/Stirling-Tools/Stirling-PDF/compare/v2.2.1...v2.3.0>

<!-- Release notes generated using configuration in .github/release.yml at v2.3.0 -->

#### What's Changed

##### Enhancements

- feat(build): enhance JaCoCo reporting with coverage summary and enforce thresholds by [@Ludy87](https://github.com/Ludy87) in [#5352](https://github.com/Stirling-Tools/Stirling-PDF/pull/5352)
- feat(ui): prevent self-modification in People management and highlight current user by [@Ludy87](https://github.com/Ludy87) in [#5441](https://github.com/Stirling-Tools/Stirling-PDF/pull/5441)
- feat(conversion): refactor EML parser to use Simple Java Mail library and add MSG support by [@balazs-szucs](https://github.com/balazs-szucs) in [#5427](https://github.com/Stirling-Tools/Stirling-PDF/pull/5427)
- feat(conversion): add PDF to EPUB/AZW3 conversion support and settings by [@balazs-szucs](https://github.com/balazs-szucs) in [#5434](https://github.com/Stirling-Tools/Stirling-PDF/pull/5434)

##### Minor Enhancements

- build(ci): pin base container images, switch npm install to npm ci, and harden EML error handling by [@Ludy87](https://github.com/Ludy87) in [#5353](https://github.com/Stirling-Tools/Stirling-PDF/pull/5353)
- 🤖 format everything with pre-commit by stirlingbot by [@stirlingbot](https://github.com/stirlingbot)\[bot] in [#5426](https://github.com/Stirling-Tools/Stirling-PDF/pull/5426)
- Updated ga-IE translations and added keys to ignore list by [@aindriu80](https://github.com/aindriu80) in [#5178](https://github.com/Stirling-Tools/Stirling-PDF/pull/5178)
- fix(api): return JSON responses for admin settings + API key endpoints to prevent Tauri client parse errors by [@Ludy87](https://github.com/Ludy87) in [#5437](https://github.com/Stirling-Tools/Stirling-PDF/pull/5437)
- Update Backend 3rd Party Licenses by [@stirlingbot](https://github.com/stirlingbot)\[bot] in [#5363](https://github.com/Stirling-Tools/Stirling-PDF/pull/5363)
- build(deps): bump node from 20-alpine to 25-alpine in /docker/frontend by [@dependabot](https://github.com/dependabot)\[bot] in [#5311](https://github.com/Stirling-Tools/Stirling-PDF/pull/5311)
- build(deps): bump nginx from `8491795` to `c083c37` in /docker/frontend by [@dependabot](https://github.com/dependabot)\[bot] in [#5448](https://github.com/Stirling-Tools/Stirling-PDF/pull/5448)
- build(deps): bump globals from 16.5.0 to 17.0.0 in /frontend by [@dependabot](https://github.com/dependabot)\[bot] in [#5413](https://github.com/Stirling-Tools/Stirling-PDF/pull/5413)
- Add Telegram bot integration for pipeline processing by [@Ludy87](https://github.com/Ludy87) in [#5185](https://github.com/Stirling-Tools/Stirling-PDF/pull/5185)
- Update Backend 3rd Party Licenses by [@stirlingbot](https://github.com/stirlingbot)\[bot] in [#5458](https://github.com/Stirling-Tools/Stirling-PDF/pull/5458)
- translations by [@Frooodle](https://github.com/Frooodle) in [#5469](https://github.com/Stirling-Tools/Stirling-PDF/pull/5469)
- :globe\_with\_meridians: Sync Translations + Update README Progress Table by [@stirlingbot](https://github.com/stirlingbot)\[bot] in [#5473](https://github.com/Stirling-Tools/Stirling-PDF/pull/5473)
- fix(auth): remove unnecessary authentication requirement from SignatureController by [@balazs-szucs](https://github.com/balazs-szucs) in [#5477](https://github.com/Stirling-Tools/Stirling-PDF/pull/5477)
- Make controls sticky by [@reecebrowne](https://github.com/reecebrowne) in [#5478](https://github.com/Stirling-Tools/Stirling-PDF/pull/5478)
- fix: update broken enterprise docs link from /Pro to /Paid-Offerings by [@krizhnaa](https://github.com/krizhnaa) in [#5471](https://github.com/Stirling-Tools/Stirling-PDF/pull/5471)
- Libre threads by [@Frooodle](https://github.com/Frooodle) in [#5303](https://github.com/Stirling-Tools/Stirling-PDF/pull/5303)

##### Docker Updates

- build(deps): bump docker/setup-qemu-action from 3.6.0 to 3.7.0 by [@dependabot](https://github.com/dependabot)\[bot] in [#5326](https://github.com/Stirling-Tools/Stirling-PDF/pull/5326)
- build(deps): bump step-security/harden-runner from 2.12.1 to 2.14.0 by [@dependabot](https://github.com/dependabot)\[bot] in [#5324](https://github.com/Stirling-Tools/Stirling-PDF/pull/5324)
- ci(build): scope Docker layer cache per artifact to avoid cross-contamination by [@Ludy87](https://github.com/Ludy87) in [#5453](https://github.com/Stirling-Tools/Stirling-PDF/pull/5453)
- build(deps): bump alpine from 3.22.2 to 3.23.2 in /docker/backend by [@dependabot](https://github.com/dependabot)\[bot] in [#5316](https://github.com/Stirling-Tools/Stirling-PDF/pull/5316)
- build(deps): bump alpine from 3.22.1 to 3.23.2 in /docker/embedded by [@dependabot](https://github.com/dependabot)\[bot] in [#5319](https://github.com/Stirling-Tools/Stirling-PDF/pull/5319)
- build(deps): bump debian from `1c25564` to `449673e` in /docker/embedded by [@dependabot](https://github.com/dependabot)\[bot] in [#5357](https://github.com/Stirling-Tools/Stirling-PDF/pull/5357)
- build(deps): bump docker/setup-buildx-action from 3.11.1 to 3.12.0 by [@dependabot](https://github.com/dependabot)\[bot] in [#5463](https://github.com/Stirling-Tools/Stirling-PDF/pull/5463)
- Docker use latest libreoffice and fonts by [@Frooodle](https://github.com/Frooodle) in [#5482](https://github.com/Stirling-Tools/Stirling-PDF/pull/5482)

##### Translation Changes

- 🤖 format everything with pre-commit by stirlingbot by [@stirlingbot](https://github.com/stirlingbot)\[bot] in [#5462](https://github.com/Stirling-Tools/Stirling-PDF/pull/5462)

##### Other Changes

- fix(ci): read workflow\_dispatch PR number from inputs.pr in PR auto-deploy workflow by [@Ludy87](https://github.com/Ludy87) in [#5380](https://github.com/Stirling-Tools/Stirling-PDF/pull/5380)
- build(deps): bump github/codeql-action from 4.31.5 to 4.31.10 by [@dependabot](https://github.com/dependabot)\[bot] in [#5449](https://github.com/Stirling-Tools/Stirling-PDF/pull/5449)
- build(deps): bump pypdf from 6.4.0 to 6.6.0 in /testing/cucumber by [@dependabot](https://github.com/dependabot)\[bot] in [#5422](https://github.com/Stirling-Tools/Stirling-PDF/pull/5422)
- build(deps): bump io.micrometer:micrometer-core from 1.16.0 to 1.16.1 by [@dependabot](https://github.com/dependabot)\[bot] in [#5358](https://github.com/Stirling-Tools/Stirling-PDF/pull/5358)
- Update user login conditions in workflow by [@Frooodle](https://github.com/Frooodle) in [#5457](https://github.com/Stirling-Tools/Stirling-PDF/pull/5457)
- fix(core): reinstall frontend dependencies when iconify package is missing by [@Ludy87](https://github.com/Ludy87) in [#5432](https://github.com/Stirling-Tools/Stirling-PDF/pull/5432)
- fix(translations): improve translation merger CLI and sync missing UI strings across locales by [@Ludy87](https://github.com/Ludy87) in [#5309](https://github.com/Stirling-Tools/Stirling-PDF/pull/5309)
- build(deps): bump urllib3 from 2.5.0 to 2.6.3 in /testing/cucumber in the pip group across 1 directory by [@dependabot](https://github.com/dependabot)\[bot] in [#5456](https://github.com/Stirling-Tools/Stirling-PDF/pull/5456)
- build(deps): bump docker/login-action from 3.4.0 to 3.6.0 by [@dependabot](https://github.com/dependabot)\[bot] in [#5464](https://github.com/Stirling-Tools/Stirling-PDF/pull/5464)

#### New Contributors

- [@krizhnaa](https://github.com/krizhnaa) made their first contribution in [#5471](https://github.com/Stirling-Tools/Stirling-PDF/pull/5471)

**Full Changelog**: <https://github.com/Stirling-Tools/Stirling-PDF/compare/v2.2.1...v2.3.0>

---
##### [\`2.2.1\`](https://github.com/Stirling-Tools/Stirling-PDF/releases/tag/v2.2.1)

<!-- Release notes generated using configuration in .github/release.yml at main -->

This release has:

- Possible fix for selfhost connection issues from desktop app
- custom OCR languages fix
- hide login options based on selection
- Mobile QR scanner custom options (Found under connections in settings menu)

<img width="688" height="475" alt="image" src="https://github.com/user-attachments/assets/0038d56f-9a32-49a6-a1fe-7664c997e87d" />
#### What's Changed
##### Minor Enhancements
* Desktop self-hosted connection logging by @ConnorYoh in https://github.com/Stirling-Tools/Stirling-PDF/pull/5410
* 🤖 format everything with pre-commit by stirlingbot by @stirlingbot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/5367
* OCR fix and Mobile QR changes by @Frooodle in https://github.com/Stirling-Tools/Stirling-PDF/pull/5433
* hide login if login type disabled by @Frooodle in https://github.com/Stirling-Tools/Stirling-PDF/pull/5438
* fix(verify-pdf): verification to properly detect non-PDF/A documents with XMP metadata by @balazs-szucs in https://github.com/Stirling-Tools/Stirling-PDF/pull/5397
##### Other Changes
* new VPS by @Frooodle in https://github.com/Stirling-Tools/Stirling-PDF/pull/5430

**Full Changelog**: <https://github.com/Stirling-Tools/Stirling-PDF/compare/v2.2.0...v2.2.1>

<!-- Release notes generated using configuration in .github/release.yml at v2.2.1 -->

#### What's Changed

##### Minor Enhancements

- Desktop self-hosted connection logging by [@ConnorYoh](https://github.com/ConnorYoh) in [#5410](https://github.com/Stirling-Tools/Stirling-PDF/pull/5410)
- 🤖 format everything with pre-commit by stirlingbot by [@stirlingbot](https://github.com/stirlingbot)\[bot] in [#5367](https://github.com/Stirling-Tools/Stirling-PDF/pull/5367)
- OCR fix and Mobile QR changes by [@Frooodle](https://github.com/Frooodle) in [#5433](https://github.com/Stirling-Tools/Stirling-PDF/pull/5433)
- hide login if login type disabled by [@Frooodle](https://github.com/Frooodle) in [#5438](https://github.com/Stirling-Tools/Stirling-PDF/pull/5438)
- fix(verify-pdf): verification to properly detect non-PDF/A documents with XMP metadata by [@balazs-szucs](https://github.com/balazs-szucs) in [#5397](https://github.com/Stirling-Tools/Stirling-PDF/pull/5397)

##### Other Changes

- new VPS by [@Frooodle](https://github.com/Frooodle) in [#5430](https://github.com/Stirling-Tools/Stirling-PDF/pull/5430)

**Full Changelog**: <https://github.com/Stirling-Tools/Stirling-PDF/compare/v2.2.0...v2.2.1>

<!-- Release notes generated using configuration in .github/release.yml at v2.2.1 -->

#### What's Changed

##### Minor Enhancements

- Desktop self-hosted connection logging by [@ConnorYoh](https://github.com/ConnorYoh) in [#5410](https://github.com/Stirling-Tools/Stirling-PDF/pull/5410)
- 🤖 format everything with pre-commit by stirlingbot by [@stirlingbot](https://github.com/stirlingbot)\[bot] in [#5367](https://github.com/Stirling-Tools/Stirling-PDF/pull/5367)
- OCR fix and Mobile QR changes by [@Frooodle](https://github.com/Frooodle) in [#5433](https://github.com/Stirling-Tools/Stirling-PDF/pull/5433)
- hide login if login type disabled by [@Frooodle](https://github.com/Frooodle) in [#5438](https://github.com/Stirling-Tools/Stirling-PDF/pull/5438)
- fix(verify-pdf): verification to properly detect non-PDF/A documents with XMP metadata by [@balazs-szucs](https://github.com/balazs-szucs) in [#5397](https://github.com/Stirling-Tools/Stirling-PDF/pull/5397)

##### Other Changes

- new VPS by [@Frooodle](https://github.com/Frooodle) in [#5430](https://github.com/Stirling-Tools/Stirling-PDF/pull/5430)

**Full Changelog**: <https://github.com/Stirling-Tools/Stirling-PDF/compare/v2.2.0...v2.2.1>

---
##### [\`2.2.0\`](https://github.com/Stirling-Tools/Stirling-PDF/releases/tag/v2.2.0)

<!-- Release notes generated using configuration in .github/release.yml at main -->

Huge release! With this release we have fully integrated all remaining V1 codebase making us updated with the latest changes and bug fixes. Along with these changes we have also integrated various new features!

- Full Ebook conversions, EPUB, MOBI, CBR and others
- Full manual redaction
- Various new PDF compliancy conversions such as PDF/A-3B
- Auto background removal for signatures
- Auto crop mode (detects borders of files)
- Mobile phone scan complete with edge detection and descrewing (Lets you scan a QR code and upload photos from your phone!) (Must be enabled in connection settings)
- Desktop app to support SSO logins for selfhosted users

We have some additional changes which are API only but soon to be migrated to UI

- Full PDF file attachment management
- Improved PDF compliancy and standards checking

As well as these changes there are a ton of other optimisations and improvements in various tools across the board!

#### What's Changed

##### Enhancements

- feat(rotate): add keyboard shortcuts for rotating with arrow keys by [@balazs-szucs](https://github.com/balazs-szucs) in [#5294](https://github.com/Stirling-Tools/Stirling-PDF/pull/5294)
- feat(translations): add command to remove unused translation keys by [@Ludy87](https://github.com/Ludy87) in [#5292](https://github.com/Stirling-Tools/Stirling-PDF/pull/5292)

##### Minor Enhancements

- API mode UI by [@Frooodle](https://github.com/Frooodle) in [#5287](https://github.com/Stirling-Tools/Stirling-PDF/pull/5287)
- \[ImgBot] Optimize images by [@imgbot](https://github.com/imgbot)\[bot] in [#5290](https://github.com/Stirling-Tools/Stirling-PDF/pull/5290)
- Revert "\[ImgBot] Optimize images" by [@Frooodle](https://github.com/Frooodle) in [#5293](https://github.com/Stirling-Tools/Stirling-PDF/pull/5293)
- \[V2] feat(ocr): add option to invalidate digital signatures with warning tooltip by [@balazs-szucs](https://github.com/balazs-szucs) in [#5148](https://github.com/Stirling-Tools/Stirling-PDF/pull/5148)
- \[V2] feat(security): add PDF standards verification feature using veraPDF by [@balazs-szucs](https://github.com/balazs-szucs) in [#4874](https://github.com/Stirling-Tools/Stirling-PDF/pull/4874)
- added a flag to hide settings by [@EthanHealy01](https://github.com/EthanHealy01) in [#5263](https://github.com/Stirling-Tools/Stirling-PDF/pull/5263)
- \[V2] feat(attachments): add PDF/A-3b conversion, attachment listing, renaming, and deletion by [@balazs-szucs](https://github.com/balazs-szucs) in [#5304](https://github.com/Stirling-Tools/Stirling-PDF/pull/5304)
- \[V2] feat(convert): add eBook (EPUB, MOBI, AZW3, FB2) to PDF conversion options and UI by [@balazs-szucs](https://github.com/balazs-szucs) in [#5291](https://github.com/Stirling-Tools/Stirling-PDF/pull/5291)
- photo scan V2 by [@Frooodle](https://github.com/Frooodle) in [#5255](https://github.com/Stirling-Tools/Stirling-PDF/pull/5255)
- refactor(resource): improve resource management and exception safety across controllers and utilities by [@balazs-szucs](https://github.com/balazs-szucs) in [#5350](https://github.com/Stirling-Tools/Stirling-PDF/pull/5350)
- Feature/v2/redact by [@EthanHealy01](https://github.com/EthanHealy01) in [#5249](https://github.com/Stirling-Tools/Stirling-PDF/pull/5249)
- adding opacity to the PDFs so we can see the numbers and stamps better on the add PDF numbers and the add stamp tools by [@EthanHealy01](https://github.com/EthanHealy01) in [#5383](https://github.com/Stirling-Tools/Stirling-PDF/pull/5383)
- fix(certSign): accept .pfx/.p12 uploads for PKCS12 and ensure PFX files are included in form data by [@Ludy87](https://github.com/Ludy87) in [#5391](https://github.com/Stirling-Tools/Stirling-PDF/pull/5391)
- refactor(pdf): improve resource management, memory usage, and exception safety across controllers and utilities by [@balazs-szucs](https://github.com/balazs-szucs) in [#5379](https://github.com/Stirling-Tools/Stirling-PDF/pull/5379)
- fix(conversion): improve PDF/A conversion quality, color accuracy, and compliance by [@balazs-szucs](https://github.com/balazs-szucs) in [#5396](https://github.com/Stirling-Tools/Stirling-PDF/pull/5396)
- fix(Cert): ensure incremental save after PDF signing in CertSignController by [@Ludy87](https://github.com/Ludy87) in [#5390](https://github.com/Stirling-Tools/Stirling-PDF/pull/5390)
- Make stamp preview content private by [@jbrunton96](https://github.com/jbrunton96) in [#5392](https://github.com/Stirling-Tools/Stirling-PDF/pull/5392)
- Stop the "Open Files" button from disappearing at certain zoom levels by [@EthanHealy01](https://github.com/EthanHealy01) in [#5384](https://github.com/Stirling-Tools/Stirling-PDF/pull/5384)
- Chore/v2/improve uploads by [@reecebrowne](https://github.com/reecebrowne) in [#5351](https://github.com/Stirling-Tools/Stirling-PDF/pull/5351)
- Update frontend packages to latest minor version by [@jbrunton96](https://github.com/jbrunton96) in [#5401](https://github.com/Stirling-Tools/Stirling-PDF/pull/5401)
- Fix PDF editor by [@jbrunton96](https://github.com/jbrunton96) in [#5393](https://github.com/Stirling-Tools/Stirling-PDF/pull/5393)
- Optimise Tauri builds by [@jbrunton96](https://github.com/jbrunton96) in [#5404](https://github.com/Stirling-Tools/Stirling-PDF/pull/5404)
- Login-colour-fix-v2 by [@ConnorYoh](https://github.com/ConnorYoh) in [#5418](https://github.com/Stirling-Tools/Stirling-PDF/pull/5418)
- minor changes by [@Frooodle](https://github.com/Frooodle) in [#5419](https://github.com/Stirling-Tools/Stirling-PDF/pull/5419)
- Self-hosted desktop SSO by [@jbrunton96](https://github.com/jbrunton96) in [#5265](https://github.com/Stirling-Tools/Stirling-PDF/pull/5265)
- push docker by [@Frooodle](https://github.com/Frooodle) in [#5421](https://github.com/Stirling-Tools/Stirling-PDF/pull/5421)

##### Docker Updates

- build(deps): bump actions/setup-python from 6.0.0 to 6.1.0 by [@dependabot](https://github.com/dependabot)\[bot] in [#4992](https://github.com/Stirling-Tools/Stirling-PDF/pull/4992)
- build(deps): bump docker/metadata-action from 5.8.0 to 5.10.0 by [@dependabot](https://github.com/dependabot)\[bot] in [#5299](https://github.com/Stirling-Tools/Stirling-PDF/pull/5299)
- build(deps): bump debian from `7cb087f` to `1c25564` in /docker/embedded by [@dependabot](https://github.com/dependabot)\[bot] in [#5310](https://github.com/Stirling-Tools/Stirling-PDF/pull/5310)
- chore(ci): streamline GitHub workflows, labels, and license automation for main by [@Ludy87](https://github.com/Ludy87) in [#5356](https://github.com/Stirling-Tools/Stirling-PDF/pull/5356)
- OOM logs by [@Frooodle](https://github.com/Frooodle) in [#5405](https://github.com/Stirling-Tools/Stirling-PDF/pull/5405)

##### Development Tools

- build(deps): bump peter-evans/create-pull-request from 7.0.8 to 8.0.0 by [@dependabot](https://github.com/dependabot)\[bot] in [#5300](https://github.com/Stirling-Tools/Stirling-PDF/pull/5300)
- deps(ci): update Dependabot, pre-commit tooling, and testing dependencies by [@Ludy87](https://github.com/Ludy87) in [#5170](https://github.com/Stirling-Tools/Stirling-PDF/pull/5170)
- build(deps-dev): bump stylelint from 16.26.0 to 16.26.1 in /devTools by [@dependabot](https://github.com/dependabot)\[bot] in [#5314](https://github.com/Stirling-Tools/Stirling-PDF/pull/5314)

##### Other Changes

- Sync provider settings with settings.yml in config UI by [@Ludy87](https://github.com/Ludy87) in [#5270](https://github.com/Stirling-Tools/Stirling-PDF/pull/5270)
- Revert "Sync provider settings with settings.yml in config UI" by [@Frooodle](https://github.com/Frooodle) in [#5271](https://github.com/Stirling-Tools/Stirling-PDF/pull/5271)
- V1 merge by [@Frooodle](https://github.com/Frooodle) in [#5193](https://github.com/Stirling-Tools/Stirling-PDF/pull/5193)
- Bump logback from 1.5.21 to 1.5.22 by [@dependabot](https://github.com/dependabot)\[bot] in [#5281](https://github.com/Stirling-Tools/Stirling-PDF/pull/5281)
- \[V2] feat(pdfa): add PDF/A-3b option with updated descriptions and translations by [@balazs-szucs](https://github.com/balazs-szucs) in [#5286](https://github.com/Stirling-Tools/Stirling-PDF/pull/5286)
- build(deps): bump actions/ai-inference from 1.2.8 to 2.0.4 by [@dependabot](https://github.com/dependabot)\[bot] in [#5132](https://github.com/Stirling-Tools/Stirling-PDF/pull/5132)
- build(deps): bump actions/stale from 10.1.0 to 10.1.1 by [@dependabot](https://github.com/dependabot)\[bot] in [#5133](https://github.com/Stirling-Tools/Stirling-PDF/pull/5133)
- 🤖 format everything with pre-commit by stirlingbot by [@stirlingbot](https://github.com/stirlingbot)\[bot] in [#5144](https://github.com/Stirling-Tools/Stirling-PDF/pull/5144)
- build(deps): bump softprops/action-gh-release from 2.4.2 to 2.5.0 by [@dependabot](https://github.com/dependabot)\[bot] in [#5134](https://github.com/Stirling-Tools/Stirling-PDF/pull/5134)
- build(deps): bump bouncycastleVersion from 1.82 to 1.83 by [@dependabot](https://github.com/dependabot)\[bot] in [#5111](https://github.com/Stirling-Tools/Stirling-PDF/pull/5111)
- build(deps): bump com.squareup.okhttp3:okhttp-bom from 5.3.1 to 5.3.2 by [@dependabot](https://github.com/dependabot)\[bot] in [#4961](https://github.com/Stirling-Tools/Stirling-PDF/pull/4961)
- Revert "Revert "Sync provider settings with settings.yml in config UI"" by [@Frooodle](https://github.com/Frooodle) in [#5273](https://github.com/Stirling-Tools/Stirling-PDF/pull/5273)
- \[V2] feat(sign): add SVG support for signature image uploads by [@balazs-szucs](https://github.com/balazs-szucs) in [#5279](https://github.com/Stirling-Tools/Stirling-PDF/pull/5279)
- \[V2] feat(compress): add linearize option for fast web viewing by [@balazs-szucs](https://github.com/balazs-szucs) in [#5280](https://github.com/Stirling-Tools/Stirling-PDF/pull/5280)
- Cleanup/v2/text editor by [@EthanHealy01](https://github.com/EthanHealy01) in [#5169](https://github.com/Stirling-Tools/Stirling-PDF/pull/5169)
- \[V2] feat(split): add split mode options and custom page selection to section split by [@balazs-szucs](https://github.com/balazs-szucs) in [#5277](https://github.com/Stirling-Tools/Stirling-PDF/pull/5277)
- \[V2] feat(getPdfInfo): add attachment, embedded file, and image info display by [@balazs-szucs](https://github.com/balazs-szucs) in [#5278](https://github.com/Stirling-Tools/Stirling-PDF/pull/5278)
- build(deps): bump logback from 1.5.22 to 1.5.23 by [@dependabot](https://github.com/dependabot)\[bot] in [#5298](https://github.com/Stirling-Tools/Stirling-PDF/pull/5298)
- build(deps): bump imageioVersion from 3.12.0 to 3.13.0 by [@dependabot](https://github.com/dependabot)\[bot] in [#5295](https://github.com/Stirling-Tools/Stirling-PDF/pull/5295)
- \[V2] refactor(ui): replace native inputs with Mantine components by [@balazs-szucs](https://github.com/balazs-szucs) in [#4898](https://github.com/Stirling-Tools/Stirling-PDF/pull/4898)
- \[V2] feat(flatten): add optional rendering DPI parameter to settings in flatten by [@balazs-szucs](https://github.com/balazs-szucs) in [#5276](https://github.com/Stirling-Tools/Stirling-PDF/pull/5276)
- build(deps): bump actions/github-script from 7.0.1 to 8.0.0 by [@dependabot](https://github.com/dependabot)\[bot] in [#5302](https://github.com/Stirling-Tools/Stirling-PDF/pull/5302)
- \[V2] feat(crop): add auto-crop whitespace option to crop tool UI by [@balazs-szucs](https://github.com/balazs-szucs) in [#5275](https://github.com/Stirling-Tools/Stirling-PDF/pull/5275)
- \[V2] feat(convert): add eBook formats (EPUB, MOBI, AZW3, FB2) to supported formats list by [@balazs-szucs](https://github.com/balazs-szucs) in [#5307](https://github.com/Stirling-Tools/Stirling-PDF/pull/5307)
- 🤖 format everything with pre-commit by stirlingbot by [@stirlingbot](https://github.com/stirlingbot)\[bot] in [#5306](https://github.com/Stirling-Tools/Stirling-PDF/pull/5306)
- Update translation.toml by [@albanobattistella](https://github.com/albanobattistella) in [#5308](https://github.com/Stirling-Tools/Stirling-PDF/pull/5308)
- \[V2] feat(sign): add automatic white background removal for signature images by [@balazs-szucs](https://github.com/balazs-szucs) in [#5210](https://github.com/Stirling-Tools/Stirling-PDF/pull/5210)
- \[V2] feat(convert): add support for CBR to PDF and PDF to CBR conversions by [@balazs-szucs](https://github.com/balazs-szucs) in [#4833](https://github.com/Stirling-Tools/Stirling-PDF/pull/4833)
- fix(ci): correct pip --require-hashes usage in TOML check workflow by [@Ludy87](https://github.com/Ludy87) in [#5336](https://github.com/Stirling-Tools/Stirling-PDF/pull/5336)
- build(deps): bump org.sonarqube from 7.1.0.6387 to 7.2.2.6593 by [@dependabot](https://github.com/dependabot)\[bot] in [#5313](https://github.com/Stirling-Tools/Stirling-PDF/pull/5313)
- chore(ci): skip license bot actions for Dependabot PRs by [@Ludy87](https://github.com/Ludy87) in [#5368](https://github.com/Stirling-Tools/Stirling-PDF/pull/5368)
- Update CODEOWNERS for backend and frontend by [@Ludy87](https://github.com/Ludy87) in [#5415](https://github.com/Stirling-Tools/Stirling-PDF/pull/5415)

---
##### [\`2.1.5\`](https://github.com/Stirling-Tools/Stirling-PDF/releases/tag/v2.1.5)

Another quick release featuring some small changes and enhancements

- Anotations
- Saml bug fixes
- reintroducing static file overrides for custom files

#### What's Changed

##### Minor Enhancements

- allow static overrides by [@Frooodle](https://github.com/Frooodle) in [#5258](https://github.com/Stirling-Tools/Stirling-PDF/pull/5258)
- Saml fixes by [@Frooodle](https://github.com/Frooodle) in [#5256](https://github.com/Stirling-Tools/Stirling-PDF/pull/5256)

##### Other Changes

- Add Sign Up functionality to desktop app by [@jbrunton96](https://github.com/jbrunton96) in [#5244](https://github.com/Stirling-Tools/Stirling-PDF/pull/5244)
- Bug/v2/viewer annotations by [@reecebrowne](https://github.com/reecebrowne) in [#5245](https://github.com/Stirling-Tools/Stirling-PDF/pull/5245)
- Only allow dual page view when there is more than one page, update to… by [@reecebrowne](https://github.com/reecebrowne) in [#5246](https://github.com/Stirling-Tools/Stirling-PDF/pull/5246)
- Update translation.toml by [@Stephan-P](https://github.com/Stephan-P) in [#5254](https://github.com/Stirling-Tools/Stirling-PDF/pull/5254)
- Feature/annotations by [@reecebrowne](https://github.com/reecebrowne) in [#5260](https://github.com/Stirling-Tools/Stirling-PDF/pull/5260)
- Bumping version by [@DarioGii](https://github.com/DarioGii) in [#5268](https://github.com/Stirling-Tools/Stirling-PDF/pull/5268)

**Full Changelog**: <https://github.com/Stirling-Tools/Stirling-PDF/compare/v2.1.4...v2.1.5>

---
##### [\`2.1.4\`](https://github.com/Stirling-Tools/Stirling-PDF/releases/tag/v2.1.4)

This release contains bug fixes for

- SAML not working for certain installations
- PDF Viewer not working due to wasm loading issues
- PDF Text editor cache not found exception

It also contains new features such as

- Line art conversion (inside compress tool) to convert images into black and white lineart for further compression!
- Account change UI, which was missed in last update
- Onboard shortening (More changes to come)

#### What's Changed

##### Bug Fixes

- Bug/v2/static wasm by [@reecebrowne](https://github.com/reecebrowne) in [#5238](https://github.com/Stirling-Tools/Stirling-PDF/pull/5238)

##### Minor Enhancements

- Validate certificate inputs for cert signing by [@Frooodle](https://github.com/Frooodle) in [#5191](https://github.com/Stirling-Tools/Stirling-PDF/pull/5191)
- Shorten onbaording by [@EthanHealy01](https://github.com/EthanHealy01) in [#5198](https://github.com/Stirling-Tools/Stirling-PDF/pull/5198)
- Remove UserApi mapping from proprietary signature controller by [@Frooodle](https://github.com/Frooodle) in [#5239](https://github.com/Stirling-Tools/Stirling-PDF/pull/5239)
- line art  by [@Frooodle](https://github.com/Frooodle) in [#5052](https://github.com/Stirling-Tools/Stirling-PDF/pull/5052)
- Cache fix issues V2 by [@Frooodle](https://github.com/Frooodle) in [#5237](https://github.com/Stirling-Tools/Stirling-PDF/pull/5237)

##### Other Changes

- Account change details by [@Frooodle](https://github.com/Frooodle) in [#5190](https://github.com/Stirling-Tools/Stirling-PDF/pull/5190)
- Fix language codes in picker by [@reecebrowne](https://github.com/reecebrowne) in [#5233](https://github.com/Stirling-Tools/Stirling-PDF/pull/5233)
- Fix German text for sign tool text entry by [@jbrunton96](https://github.com/jbrunton96) in [#5232](https://github.com/Stirling-Tools/Stirling-PDF/pull/5232)
- Simplify V2 PR auto-deploy triggers by [@Frooodle](https://github.com/Frooodle) in [#5236](https://github.com/Stirling-Tools/Stirling-PDF/pull/5236)
- V2 Handle SSO account restrictions in account settings by [@Frooodle](https://github.com/Frooodle) in [#5225](https://github.com/Stirling-Tools/Stirling-PDF/pull/5225)

**Full Changelog**: <https://github.com/Stirling-Tools/Stirling-PDF/compare/v2.1.3...v2.1.4>

---
##### [\`2.1.3\`](https://github.com/Stirling-Tools/Stirling-PDF/releases/tag/v2.1.3)

Quick hotfix release for SSO login pages not being displayed correctly
Some other fixes included in this release are fixes for the bugs:

- cache clearing issues
- app version not showing correctly for desktop install
- mac not openning certain files correctly
- Airgapped issues for pdf viewer (previously was downloading pdfium on load)

Sadly onboarding change is still ongoing. I hope to have it out soon!

#### What's Changed

##### Minor Enhancements

- Fix: SSO Login Page by [@DarioGii](https://github.com/DarioGii) in [#5220](https://github.com/Stirling-Tools/Stirling-PDF/pull/5220)
- Bug/v2/improved cache busting by [@reecebrowne](https://github.com/reecebrowne) in [#5107](https://github.com/Stirling-Tools/Stirling-PDF/pull/5107)

##### Docker Updates

- Make lite version of CI by [@jbrunton96](https://github.com/jbrunton96) in [#5188](https://github.com/Stirling-Tools/Stirling-PDF/pull/5188)
- build(versioning): synchronize app version across Tauri and simulation configs by [@Ludy87](https://github.com/Ludy87) in [#5120](https://github.com/Stirling-Tools/Stirling-PDF/pull/5120)

##### Other Changes

- Improve styling of quick access bar by [@jbrunton96](https://github.com/jbrunton96) in [#5197](https://github.com/Stirling-Tools/Stirling-PDF/pull/5197)
- Fix Mac app not being able to open files with spaces in their name by [@jbrunton96](https://github.com/jbrunton96) in [#5218](https://github.com/Stirling-Tools/Stirling-PDF/pull/5218)
- fix tooltips on tab by [@reecebrowne](https://github.com/reecebrowne) in [#5219](https://github.com/Stirling-Tools/Stirling-PDF/pull/5219)
- Improved static upgrade flow by [@ConnorYoh](https://github.com/ConnorYoh) in [#5214](https://github.com/Stirling-Tools/Stirling-PDF/pull/5214)
- Offline pdfium by [@reecebrowne](https://github.com/reecebrowne) in [#5213](https://github.com/Stirling-Tools/Stirling-PDF/pull/5213)
- Chore/v2/ctrlf by [@reecebrowne](https://github.com/reecebrowne) in [#5217](https://github.com/Stirling-Tools/Stirling-PDF/pull/5217)
- Bump version from 2.1.2 to 2.1.3 by [@Frooodle](https://github.com/Frooodle) in [#5224](https://github.com/Stirling-Tools/Stirling-PDF/pull/5224)

**Full Changelog**: <https://github.com/Stirling-Tools/Stirling-PDF/compare/v2.1.2...v2.1.3>

---
##### [\`2.1.2\`](https://github.com/Stirling-Tools/Stirling-PDF/releases/tag/v2.1.2)

This release contains several bug and ui fixes including:

- SMTP not working under SSL, new settings.yml entries had been added for advanced customisation for this use case
- Extra font support for text editor
- Change password/username UI added for users
- Change password for admins added
- Possible fix for swagger access issues
- Fix for admin ui showing for users (Although not usable)

We planned to make changes to onboarding/popups to reduce them and add disable flags for certain parts, sadly this had to be delayed from this 2.1.2 release and will be in 2.1.3 later today or tomorrow

#### What's Changed

##### Minor Enhancements

- Add admin password reset option for users by [@Frooodle](https://github.com/Frooodle) in [#5180](https://github.com/Stirling-Tools/Stirling-PDF/pull/5180)
- Add configurable SMTP TLS/SSL options by [@Frooodle](https://github.com/Frooodle) in [#5204](https://github.com/Stirling-Tools/Stirling-PDF/pull/5204)
- extra font support in text editor by [@Frooodle](https://github.com/Frooodle) in [#5208](https://github.com/Stirling-Tools/Stirling-PDF/pull/5208)
- Handle restricted language configuration fallback V2  by [@Frooodle](https://github.com/Frooodle) in [#5154](https://github.com/Stirling-Tools/Stirling-PDF/pull/5154)
- Fix: Access to Swagger UI when login enabled by [@DarioGii](https://github.com/DarioGii) in [#5194](https://github.com/Stirling-Tools/Stirling-PDF/pull/5194)

##### Other Changes

- Chang etext on intro by [@Frooodle](https://github.com/Frooodle) in [#5160](https://github.com/Stirling-Tools/Stirling-PDF/pull/5160)
- Fix path to sample file in tour by [@jbrunton96](https://github.com/jbrunton96) in [#5186](https://github.com/Stirling-Tools/Stirling-PDF/pull/5186)
- Backport fixes from SaaS by [@jbrunton96](https://github.com/jbrunton96) in [#5187](https://github.com/Stirling-Tools/Stirling-PDF/pull/5187)
- Handle composition input in PDF text editor by [@Frooodle](https://github.com/Frooodle) in [#5192](https://github.com/Stirling-Tools/Stirling-PDF/pull/5192)
- Fiix colours by [@reecebrowne](https://github.com/reecebrowne) in [#5211](https://github.com/Stirling-Tools/Stirling-PDF/pull/5211)
- lang updates plus --include-existing flag by [@Frooodle](https://github.com/Frooodle) in [#5212](https://github.com/Stirling-Tools/Stirling-PDF/pull/5212)

**Full Changelog**: <https://github.com/Stirling-Tools/Stirling-PDF/compare/v2.1.1...v2.1.2>

---
##### [\`2.1.1\`](https://github.com/Stirling-Tools/Stirling-PDF/releases/tag/v2.1.1)

A quick hotfix update for general UI tweaks and bugs and possible fix for SSO issues
I would also like to take this time to apologise for any of the issues users have been seeing with SSO in our 2.0 update, we are doing the best we can to identify and resolve!

#### What's Changed

##### Minor Enhancements

- Desktop to match normal login screens by [@ConnorYoh](https://github.com/ConnorYoh) in [#5122](https://github.com/Stirling-Tools/Stirling-PDF/pull/5122)
- SSO login fix by [@DarioGii](https://github.com/DarioGii) in [#5167](https://github.com/Stirling-Tools/Stirling-PDF/pull/5167)

##### Other Changes

- More fixes for automate by [@jbrunton96](https://github.com/jbrunton96) in [#5168](https://github.com/Stirling-Tools/Stirling-PDF/pull/5168)
- Update OCR setup guide link in LanguagePicker by [@keonchennl](https://github.com/keonchennl) in [#5162](https://github.com/Stirling-Tools/Stirling-PDF/pull/5162)
- add enum SERVER to list of valid licenses by [@EthanHealy01](https://github.com/EthanHealy01) in [#5172](https://github.com/Stirling-Tools/Stirling-PDF/pull/5172)
- Chore/bump gradle version number by [@EthanHealy01](https://github.com/EthanHealy01) in [#5176](https://github.com/Stirling-Tools/Stirling-PDF/pull/5176)

#### New Contributors

- [@keonchennl](https://github.com/keonchennl) made their first contribution in [#5162](https://github.com/Stirling-Tools/Stirling-PDF/pull/5162)

**Full Changelog**: <https://github.com/Stirling-Tools/Stirling-PDF/compare/v2.1.0...v2.1.1>

---
##### [\`2.1.0\`](https://github.com/Stirling-Tools/Stirling-PDF/releases/tag/v2.1.0)

We are very happy to announce that we have open-sourced our PDF text editor!
With this you will be able to edit the existing text on PDFs and add/move images.
Whilst we are very proud of this feature and to release it to the open source community, it is an alpha version with its own quirks and issues. Do not expect perfect editing.
This is however, a foundation for what is to come and it can only improve from here!

<img width="3374" height="1082" alt="image" src="https://github.com/user-attachments/assets/30870255-ec1d-4296-b5a9-bb05800d20d4" />

The writer has two modes, single line mode and paragraph mode, both have their pros and cons so give it a try!

Other changes in this release:

- General SSO has moved into our SERVER plan from our enterprise plan
- Get all info on PDF feature added!

Bug fixes:

- Bug fixes for Convert to/from PDF erroring for multiple files
- Bug fix for SSO buttons not showing/linking correctly

#### What's Changed

##### Minor Enhancements

- opensource text editor by [@Frooodle](https://github.com/Frooodle) in [#5146](https://github.com/Stirling-Tools/Stirling-PDF/pull/5146)
- Fix-convert-V2 by [@ConnorYoh](https://github.com/ConnorYoh) in [#5147](https://github.com/Stirling-Tools/Stirling-PDF/pull/5147)
- V2 sso in server plan by [@Frooodle](https://github.com/Frooodle) in [#5158](https://github.com/Stirling-Tools/Stirling-PDF/pull/5158)

##### Translation Changes

- Toml by [@Frooodle](https://github.com/Frooodle) in [#5115](https://github.com/Stirling-Tools/Stirling-PDF/pull/5115)

##### Other Changes

- OAuth Provider Buttons by [@DarioGii](https://github.com/DarioGii) in [#5103](https://github.com/Stirling-Tools/Stirling-PDF/pull/5103)
- Add onboarding bypass flag V2 version2 version 2 by [@Frooodle](https://github.com/Frooodle) in [#5151](https://github.com/Stirling-Tools/Stirling-PDF/pull/5151)
- Fixes state management loops around getting results V2 by [@ConnorYoh](https://github.com/ConnorYoh) in [#5153](https://github.com/Stirling-Tools/Stirling-PDF/pull/5153)
- Feature/v2/get all info on pdf by [@EthanHealy01](https://github.com/EthanHealy01) in [#5105](https://github.com/Stirling-Tools/Stirling-PDF/pull/5105)
- couple of small fixes for text editor by [@EthanHealy01](https://github.com/EthanHealy01) in [#5155](https://github.com/Stirling-Tools/Stirling-PDF/pull/5155)

**Full Changelog**: <https://github.com/Stirling-Tools/Stirling-PDF/compare/v2.0.3...v2.1.0>

---
##### [\`2.0.3\`](https://github.com/Stirling-Tools/Stirling-PDF/releases/tag/v2.0.3)

This update address's several bugs such as

- SSO login issues
- Files over 100MB
- signature saving
- Automate not working when a user is logged in
- forms not visible in the viewer

As part of this change we have temporilly removed the MODE feature from the docker, which will be re-added in a later update

#### What's Changed

##### Minor Enhancements

- Reduce JWT Logs by [@DarioGii](https://github.com/DarioGii) in [#5108](https://github.com/Stirling-Tools/Stirling-PDF/pull/5108)
- Grandpa Fix by [@DarioGii](https://github.com/DarioGii) in [#5030](https://github.com/Stirling-Tools/Stirling-PDF/pull/5030)
- java frontend by [@Frooodle](https://github.com/Frooodle) in [#5097](https://github.com/Stirling-Tools/Stirling-PDF/pull/5097)
- Bug/v2/signature fixes by [@reecebrowne](https://github.com/reecebrowne) in [#5104](https://github.com/Stirling-Tools/Stirling-PDF/pull/5104)
- fixes for automate  by [@Frooodle](https://github.com/Frooodle) in [#5127](https://github.com/Stirling-Tools/Stirling-PDF/pull/5127)

##### Other Changes

- Chore/v2/onboarding flow cleanup by [@EthanHealy01](https://github.com/EthanHealy01) in [#5065](https://github.com/Stirling-Tools/Stirling-PDF/pull/5065)
- Print with embed by [@reecebrowne](https://github.com/reecebrowne) in [#5109](https://github.com/Stirling-Tools/Stirling-PDF/pull/5109)
- Revise README for improved structure and clarity by [@Frooodle](https://github.com/Frooodle) in [#5121](https://github.com/Stirling-Tools/Stirling-PDF/pull/5121)
- Update embed and allow form rendering by [@reecebrowne](https://github.com/reecebrowne) in [#5124](https://github.com/Stirling-Tools/Stirling-PDF/pull/5124)

**Full Changelog**: <https://github.com/Stirling-Tools/Stirling-PDF/compare/v2.0.2...v2.0.3>

---
##### [\`2.0.2\`](https://github.com/Stirling-Tools/Stirling-PDF/releases/tag/v2.0.2)

<!-- Release notes generated using configuration in .github/release.yml at V2 -->

We introduced some changes and bug fixes in this release
The main change is:

- Introduced an option to save signatures to server if login enabled, and if login disabled can save to browser storage

Lots more bug fixes in this hotfix

- Links showing correctly in PDF viewer
- OCR tool not correctly showing languages
- SMTP non auth not working
- Swagger access issues resolved (at website.com/swagger-ui/index.html )
- Desktop self-host server connection issues resolved
- Desktop loading issues

#### What's Changed

##### Enhancements

- \[V2] feat(viewer): Add interactive link layer with (basic) internal/external navigation support by [@balazs-szucs](https://github.com/balazs-szucs) in [#5077](https://github.com/Stirling-Tools/Stirling-PDF/pull/5077)

##### Minor Enhancements

- Cookie consent banner and footer on login screen by [@reecebrowne](https://github.com/reecebrowne) in [#5042](https://github.com/Stirling-Tools/Stirling-PDF/pull/5042)
- Fix email invite/ allow non auth and table refresh issues by [@Frooodle](https://github.com/Frooodle) in [#5076](https://github.com/Stirling-Tools/Stirling-PDF/pull/5076)
- Swagger fixes by [@Frooodle](https://github.com/Frooodle) in [#5071](https://github.com/Stirling-Tools/Stirling-PDF/pull/5071)
- Save signatures to server by [@reecebrowne](https://github.com/reecebrowne) in [#5080](https://github.com/Stirling-Tools/Stirling-PDF/pull/5080)
- Added file endpoint for license files and easy upload in admin UI by [@ConnorYoh](https://github.com/ConnorYoh) in [#5055](https://github.com/Stirling-Tools/Stirling-PDF/pull/5055)

##### Other Changes

- Disable admin plan section when no login by [@ConnorYoh](https://github.com/ConnorYoh) in [#5039](https://github.com/Stirling-Tools/Stirling-PDF/pull/5039)
- Don't block desktop app on backend starting up by [@jbrunton96](https://github.com/jbrunton96) in [#5041](https://github.com/Stirling-Tools/Stirling-PDF/pull/5041)
- Desktop Self-hosted guidance improvements by [@ConnorYoh](https://github.com/ConnorYoh) in [#5060](https://github.com/Stirling-Tools/Stirling-PDF/pull/5060)
- Improved language select by [@reecebrowne](https://github.com/reecebrowne) in [#5062](https://github.com/Stirling-Tools/Stirling-PDF/pull/5062)
- tauri remote connection fix by [@Frooodle](https://github.com/Frooodle) in [#5070](https://github.com/Stirling-Tools/Stirling-PDF/pull/5070)
- Audit viewer making api call when shouldnt by [@Frooodle](https://github.com/Frooodle) in [#5069](https://github.com/Stirling-Tools/Stirling-PDF/pull/5069)
- desktop fix debian by [@Frooodle](https://github.com/Frooodle) in [#5068](https://github.com/Stirling-Tools/Stirling-PDF/pull/5068)
- Use frontend translations for OCR language picker by [@Frooodle](https://github.com/Frooodle) in [#5051](https://github.com/Stirling-Tools/Stirling-PDF/pull/5051)
- Fix: Only block export when signatures are placed but not applied by [@reecebrowne](https://github.com/reecebrowne) in [#5084](https://github.com/Stirling-Tools/Stirling-PDF/pull/5084)

**Full Changelog**: <https://github.com/Stirling-Tools/Stirling-PDF/compare/v2.0.1...v2.0.2>

---
##### [\`2.0.1\`](https://github.com/Stirling-Tools/Stirling-PDF/releases/tag/v2.0.1)

<!-- Release notes generated using configuration in .github/release.yml at V2 -->

This is a hotfix release to fix issues identified in our [v2.0.0](https://github.com/Stirling-Tools/Stirling-PDF/releases/tag/v2.0.0) release (Please check [here](https://github.com/Stirling-Tools/Stirling-PDF/releases/tag/v2.0.0) if you wish to see the notes on that)

The main issues fixed are:

- Added frontend code into jar for easy single jar hosted as previous
- Added new -Server.jar for a jar without this additional frontend code
- Desktop installer issues with CORS and various other issues with connections and loading/refreshing
- The syling of certain UI components in darkmode
- Various UI prompts showing in incorrect order

Ongoing issues that are still being addressed

- Certain SSO providers are not working with V2,
- Users using a custom url subpath such as website.com/pdf are not being fully supported in V2
- Some users are not being grandfathered correctly
  We are looking into all three of these issues on priority and expect a release on this soon.

#### What's Changed

##### Minor Enhancements

- Fix CORS issues in desktop app by [@jbrunton96](https://github.com/jbrunton96) in [#5019](https://github.com/Stirling-Tools/Stirling-PDF/pull/5019)
- Chore/v2/hide banner in onboard by [@reecebrowne](https://github.com/reecebrowne) in [#5032](https://github.com/Stirling-Tools/Stirling-PDF/pull/5032)
- Builds custom Jar by [@Frooodle](https://github.com/Frooodle) in [#5029](https://github.com/Stirling-Tools/Stirling-PDF/pull/5029)

##### Docker Updates

- publish GHAs by [@Frooodle](https://github.com/Frooodle) in [#5026](https://github.com/Stirling-Tools/Stirling-PDF/pull/5026)

##### Other Changes

- fix the text color for the first time setup with default credentials by [@EthanHealy01](https://github.com/EthanHealy01) in [#5023](https://github.com/Stirling-Tools/Stirling-PDF/pull/5023)
- Added posthog variables directly to code by [@ConnorYoh](https://github.com/ConnorYoh) in [#5024](https://github.com/Stirling-Tools/Stirling-PDF/pull/5024)
- Fix login loop on self-hosted desktop   by [@jbrunton96](https://github.com/jbrunton96) in [#5022](https://github.com/Stirling-Tools/Stirling-PDF/pull/5022)
- Recreate translation files by [@jbrunton96](https://github.com/jbrunton96) in [#4826](https://github.com/Stirling-Tools/Stirling-PDF/pull/4826)
- various cookie banner fixes by [@reecebrowne](https://github.com/reecebrowne) in [#5027](https://github.com/Stirling-Tools/Stirling-PDF/pull/5027)

**Full Changelog**: <https://github.com/Stirling-Tools/Stirling-PDF/compare/v2.0.0...v2.0.1>

---
##### [\`2.0.0\`](https://github.com/Stirling-Tools/Stirling-PDF/releases/tag/v2.0.0)

Stirling PDF V2, our complete open-source replacement to Adobe Acrobat, is now live!
Version 2 has been a year in the making but brings a full redesign of the app, along with the most requested changes from the community over the past year.

### Highlights

- Brand new and quick UI with lots of polish to allow easy context switching
- Files can now move between operations, Upload a file once and perform multiple operations on it without requiring reuploads
- Undo, redo and complete version history for all files changed
- Native desktop applications with full **"open with"** functionality finally being a true desktop replacement for other PDF apps
- Allowing split deployments with a separated frontend and backend
- Complete System setting customisation from within UI so admins can customise all settings without interacting with server config files
- Desktop to server linkage so you can have a desktop experience whilst having the performance of a server for a hybrid experience
- **Text editing** (alpha), Basic PDF text editing is now available as an early-access feature for paid users. It’s still alpha and will improve over time.

### Licensing and pricing

- We’re introducing a new, unlimited-seat **SERVER** tier for the lowest price in the industry. Key details:
  - Unlimited seats
  - PDF Text Editing
  - Full admin control
  - **$99**/server/month or **$1000**/server/year
- Going forward, our open-core license will be enforced: individual users and teams up to 5 users can fully use Stirling PDF for free; organisations with more than 5 users will need a license.
- All existing users are **grandfathered**. If you’ve been with us up to this point, you should see no change in what you can use today. To access new features or make new changes to your users you can quickly upgrade in your Admin Settings.

### Migration

Due to this being a major release, any production deployments should consider backing up their config directory before deploying this change

### Extra notes

Please note that with this large update and introduction of several new pieces of functionality there may be rough edges.
If you run into issues please

- open a GitHub issue, or
- drop into Discord and let us know!

Our team will also be working to updating our github branching, documentation and various other artifacts over the next few days so please let us know if we miss anything or if you have questions!
DarioGii pushed a commit that referenced this pull request Jan 22, 2026
…5400)

# Description of Changes

This pull request updates the CI/CD workflows and Gradle configuration
to improve build reproducibility, security, and external dependency
management. The main changes include standardizing Gradle setup across
workflows, securely injecting Maven credentials, and enabling Gradle
build caching. There are also minor improvements to dependency version
management and plugin repository configuration.

**CI/CD Workflow Improvements:**

- Standardized Gradle setup across all GitHub Actions workflows by
explicitly adding a `Setup Gradle` step using
`gradle/actions/setup-gradle@v5.0.0` and specifying Gradle version 8.14.
This replaces previous usages and ensures consistency.
[[1]](diffhunk://#diff-5c3fa597431eda03ac3339ae6bf7f05e1a50d6fc7333679ec38e21b337cb6721R71-R81)
[[2]](diffhunk://#diff-8d23782ae5caff72d55828bb25814854f5f2523f299d7dbcda4a3537dd84c5c3L157-R176)
[[3]](diffhunk://#diff-5c3fa597431eda03ac3339ae6bf7f05e1a50d6fc7333679ec38e21b337cb6721R134-R144)
[[4]](diffhunk://#diff-5c3fa597431eda03ac3339ae6bf7f05e1a50d6fc7333679ec38e21b337cb6721R206-R216)
[[5]](diffhunk://#diff-5c3fa597431eda03ac3339ae6bf7f05e1a50d6fc7333679ec38e21b337cb6721R260-R264)
[[6]](diffhunk://#diff-5c3fa597431eda03ac3339ae6bf7f05e1a50d6fc7333679ec38e21b337cb6721R331-R341)
[[7]](diffhunk://#diff-3c0f521958c53ad27c967692b4d5480ead136acb33622ee97d39df814b1b202eR339-R351)
[[8]](diffhunk://#diff-895b214ee023c8c26048a2a3b946cfb1ebc4f26fbc8a9c2fa54b77c12e763b6bL53-R54)
[[9]](diffhunk://#diff-895b214ee023c8c26048a2a3b946cfb1ebc4f26fbc8a9c2fa54b77c12e763b6bL121-R127)
[[10]](diffhunk://#diff-895b214ee023c8c26048a2a3b946cfb1ebc4f26fbc8a9c2fa54b77c12e763b6bR206-R217)
[[11]](diffhunk://#diff-6a2e9fb077e57351f4a7e10d03b114e256298babdf06e7e7ae666781a5cf36a1R60-R70)
[[12]](diffhunk://#diff-62dcbe64a950b4efb54d691e1e87451a8cd535400aa9ea1e40893de5b57cd73bL45-R46)
[[13]](diffhunk://#diff-76056236de05155107f6a660f1e3956059e37338011b8f0e72188afcb9b17b6fL46-R56)
[[14]](diffhunk://#diff-fd60dc2adec58c1005c4e4164e9c24362fd6082fd3ab0403e54d276d9835fa6eL42-R65)
[[15]](diffhunk://#diff-b34ab107dd4bc92075b2e89b6f16e4a2813e267ca7c2afebdb1931a0a3900d5aR102-R114)
[[16]](diffhunk://#diff-98b618771a57e1758961359ecacbac2cff7cfef29aa021c3bc294ae926c4ce5bL47-R51)

- Enabled Gradle build cache (`--build-cache`) for all build-related
commands in workflows, improving build performance and consistency. Also
removed unnecessary `clean` commands before builds to further optimize
workflow times.
[[1]](diffhunk://#diff-5c3fa597431eda03ac3339ae6bf7f05e1a50d6fc7333679ec38e21b337cb6721R71-R81)
[[2]](diffhunk://#diff-8d23782ae5caff72d55828bb25814854f5f2523f299d7dbcda4a3537dd84c5c3L157-R176)
[[3]](diffhunk://#diff-5c3fa597431eda03ac3339ae6bf7f05e1a50d6fc7333679ec38e21b337cb6721R134-R144)
[[4]](diffhunk://#diff-5c3fa597431eda03ac3339ae6bf7f05e1a50d6fc7333679ec38e21b337cb6721R206-R216)
[[5]](diffhunk://#diff-5c3fa597431eda03ac3339ae6bf7f05e1a50d6fc7333679ec38e21b337cb6721R331-R341)
[[6]](diffhunk://#diff-3c0f521958c53ad27c967692b4d5480ead136acb33622ee97d39df814b1b202eR339-R351)
[[7]](diffhunk://#diff-895b214ee023c8c26048a2a3b946cfb1ebc4f26fbc8a9c2fa54b77c12e763b6bL134-R144)
[[8]](diffhunk://#diff-895b214ee023c8c26048a2a3b946cfb1ebc4f26fbc8a9c2fa54b77c12e763b6bR206-R217)
[[9]](diffhunk://#diff-6a2e9fb077e57351f4a7e10d03b114e256298babdf06e7e7ae666781a5cf36a1R60-R70)
[[10]](diffhunk://#diff-76056236de05155107f6a660f1e3956059e37338011b8f0e72188afcb9b17b6fL46-R56)
[[11]](diffhunk://#diff-fd60dc2adec58c1005c4e4164e9c24362fd6082fd3ab0403e54d276d9835fa6eL42-R65)
[[12]](diffhunk://#diff-b34ab107dd4bc92075b2e89b6f16e4a2813e267ca7c2afebdb1931a0a3900d5aR102-R114)
[[13]](diffhunk://#diff-98b618771a57e1758961359ecacbac2cff7cfef29aa021c3bc294ae926c4ce5bL47-R51)

**Security and Dependency Management:**

- Injected Maven credentials (`MAVEN_USER`, `MAVEN_PASSWORD`,
`MAVEN_PUBLIC_URL`) as environment variables in all relevant workflow
steps, supporting secure access to private or custom Maven repositories.
[[1]](diffhunk://#diff-5c3fa597431eda03ac3339ae6bf7f05e1a50d6fc7333679ec38e21b337cb6721R71-R81)
[[2]](diffhunk://#diff-8d23782ae5caff72d55828bb25814854f5f2523f299d7dbcda4a3537dd84c5c3L157-R176)
[[3]](diffhunk://#diff-5c3fa597431eda03ac3339ae6bf7f05e1a50d6fc7333679ec38e21b337cb6721R134-R144)
[[4]](diffhunk://#diff-5c3fa597431eda03ac3339ae6bf7f05e1a50d6fc7333679ec38e21b337cb6721R206-R216)
[[5]](diffhunk://#diff-5c3fa597431eda03ac3339ae6bf7f05e1a50d6fc7333679ec38e21b337cb6721R290-R293)
[[6]](diffhunk://#diff-5c3fa597431eda03ac3339ae6bf7f05e1a50d6fc7333679ec38e21b337cb6721R331-R341)
[[7]](diffhunk://#diff-3c0f521958c53ad27c967692b4d5480ead136acb33622ee97d39df814b1b202eR339-R351)
[[8]](diffhunk://#diff-895b214ee023c8c26048a2a3b946cfb1ebc4f26fbc8a9c2fa54b77c12e763b6bR66-R69)
[[9]](diffhunk://#diff-895b214ee023c8c26048a2a3b946cfb1ebc4f26fbc8a9c2fa54b77c12e763b6bL134-R144)
[[10]](diffhunk://#diff-895b214ee023c8c26048a2a3b946cfb1ebc4f26fbc8a9c2fa54b77c12e763b6bR281-R283)
[[11]](diffhunk://#diff-62dcbe64a950b4efb54d691e1e87451a8cd535400aa9ea1e40893de5b57cd73bR57-R60)
[[12]](diffhunk://#diff-76056236de05155107f6a660f1e3956059e37338011b8f0e72188afcb9b17b6fR73-R76)
[[13]](diffhunk://#diff-fd60dc2adec58c1005c4e4164e9c24362fd6082fd3ab0403e54d276d9835fa6eL42-R65)
[[14]](diffhunk://#diff-b34ab107dd4bc92075b2e89b6f16e4a2813e267ca7c2afebdb1931a0a3900d5aR178-R180)
[[15]](diffhunk://#diff-98b618771a57e1758961359ecacbac2cff7cfef29aa021c3bc294ae926c4ce5bL47-R51)

- Added a `pluginManagement` block in `settings.gradle` to allow Gradle
plugins to be resolved from a custom Maven repository if specified by
environment variables, increasing flexibility for plugin sourcing.

**Build and Dependency Versioning:**

- Updated `app/proprietary/build.gradle` to use the
`bouncycastleVersion` variable for the Bouncy Castle dependency version,
improving maintainability and consistency of dependency versioning.

**Workflow Trigger Improvements:**

- Expanded the file path triggers in
`.github/workflows/sync_files_v2.yml` to include additional Gradle build
files, ensuring the workflow runs when any core build files are changed.

---

## Checklist

### General

- [ ] I have read the [Contribution
Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md)
- [ ] I have read the [Stirling-PDF Developer
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md)
(if applicable)
- [ ] I have read the [How to add new languages to
Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md)
(if applicable)
- [ ] I have performed a self-review of my own code
- [ ] My changes generate no new warnings

### Documentation

- [ ] I have updated relevant docs on [Stirling-PDF's doc
repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/)
(if functionality has heavily changed)
- [ ] I have read the section [Add New Translation
Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md#add-new-translation-tags)
(for new translation tags only)

### Translations (if applicable)

- [ ] I ran
[`scripts/counter_translation.py`](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/docs/counter_translation.md)

### UI Changes (if applicable)

- [ ] Screenshots or videos demonstrating the UI changes are attached
(e.g., as comments or direct attachments in the PR)

### Testing (if applicable)

- [ ] I have tested my changes locally. Refer to the [Testing
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md#6-testing)
for more details.
DarioGii pushed a commit that referenced this pull request Jan 22, 2026
…5400)

# Description of Changes

This pull request updates the CI/CD workflows and Gradle configuration
to improve build reproducibility, security, and external dependency
management. The main changes include standardizing Gradle setup across
workflows, securely injecting Maven credentials, and enabling Gradle
build caching. There are also minor improvements to dependency version
management and plugin repository configuration.

**CI/CD Workflow Improvements:**

- Standardized Gradle setup across all GitHub Actions workflows by
explicitly adding a `Setup Gradle` step using
`gradle/actions/setup-gradle@v5.0.0` and specifying Gradle version 8.14.
This replaces previous usages and ensures consistency.
[[1]](diffhunk://#diff-5c3fa597431eda03ac3339ae6bf7f05e1a50d6fc7333679ec38e21b337cb6721R71-R81)
[[2]](diffhunk://#diff-8d23782ae5caff72d55828bb25814854f5f2523f299d7dbcda4a3537dd84c5c3L157-R176)
[[3]](diffhunk://#diff-5c3fa597431eda03ac3339ae6bf7f05e1a50d6fc7333679ec38e21b337cb6721R134-R144)
[[4]](diffhunk://#diff-5c3fa597431eda03ac3339ae6bf7f05e1a50d6fc7333679ec38e21b337cb6721R206-R216)
[[5]](diffhunk://#diff-5c3fa597431eda03ac3339ae6bf7f05e1a50d6fc7333679ec38e21b337cb6721R260-R264)
[[6]](diffhunk://#diff-5c3fa597431eda03ac3339ae6bf7f05e1a50d6fc7333679ec38e21b337cb6721R331-R341)
[[7]](diffhunk://#diff-3c0f521958c53ad27c967692b4d5480ead136acb33622ee97d39df814b1b202eR339-R351)
[[8]](diffhunk://#diff-895b214ee023c8c26048a2a3b946cfb1ebc4f26fbc8a9c2fa54b77c12e763b6bL53-R54)
[[9]](diffhunk://#diff-895b214ee023c8c26048a2a3b946cfb1ebc4f26fbc8a9c2fa54b77c12e763b6bL121-R127)
[[10]](diffhunk://#diff-895b214ee023c8c26048a2a3b946cfb1ebc4f26fbc8a9c2fa54b77c12e763b6bR206-R217)
[[11]](diffhunk://#diff-6a2e9fb077e57351f4a7e10d03b114e256298babdf06e7e7ae666781a5cf36a1R60-R70)
[[12]](diffhunk://#diff-62dcbe64a950b4efb54d691e1e87451a8cd535400aa9ea1e40893de5b57cd73bL45-R46)
[[13]](diffhunk://#diff-76056236de05155107f6a660f1e3956059e37338011b8f0e72188afcb9b17b6fL46-R56)
[[14]](diffhunk://#diff-fd60dc2adec58c1005c4e4164e9c24362fd6082fd3ab0403e54d276d9835fa6eL42-R65)
[[15]](diffhunk://#diff-b34ab107dd4bc92075b2e89b6f16e4a2813e267ca7c2afebdb1931a0a3900d5aR102-R114)
[[16]](diffhunk://#diff-98b618771a57e1758961359ecacbac2cff7cfef29aa021c3bc294ae926c4ce5bL47-R51)

- Enabled Gradle build cache (`--build-cache`) for all build-related
commands in workflows, improving build performance and consistency. Also
removed unnecessary `clean` commands before builds to further optimize
workflow times.
[[1]](diffhunk://#diff-5c3fa597431eda03ac3339ae6bf7f05e1a50d6fc7333679ec38e21b337cb6721R71-R81)
[[2]](diffhunk://#diff-8d23782ae5caff72d55828bb25814854f5f2523f299d7dbcda4a3537dd84c5c3L157-R176)
[[3]](diffhunk://#diff-5c3fa597431eda03ac3339ae6bf7f05e1a50d6fc7333679ec38e21b337cb6721R134-R144)
[[4]](diffhunk://#diff-5c3fa597431eda03ac3339ae6bf7f05e1a50d6fc7333679ec38e21b337cb6721R206-R216)
[[5]](diffhunk://#diff-5c3fa597431eda03ac3339ae6bf7f05e1a50d6fc7333679ec38e21b337cb6721R331-R341)
[[6]](diffhunk://#diff-3c0f521958c53ad27c967692b4d5480ead136acb33622ee97d39df814b1b202eR339-R351)
[[7]](diffhunk://#diff-895b214ee023c8c26048a2a3b946cfb1ebc4f26fbc8a9c2fa54b77c12e763b6bL134-R144)
[[8]](diffhunk://#diff-895b214ee023c8c26048a2a3b946cfb1ebc4f26fbc8a9c2fa54b77c12e763b6bR206-R217)
[[9]](diffhunk://#diff-6a2e9fb077e57351f4a7e10d03b114e256298babdf06e7e7ae666781a5cf36a1R60-R70)
[[10]](diffhunk://#diff-76056236de05155107f6a660f1e3956059e37338011b8f0e72188afcb9b17b6fL46-R56)
[[11]](diffhunk://#diff-fd60dc2adec58c1005c4e4164e9c24362fd6082fd3ab0403e54d276d9835fa6eL42-R65)
[[12]](diffhunk://#diff-b34ab107dd4bc92075b2e89b6f16e4a2813e267ca7c2afebdb1931a0a3900d5aR102-R114)
[[13]](diffhunk://#diff-98b618771a57e1758961359ecacbac2cff7cfef29aa021c3bc294ae926c4ce5bL47-R51)

**Security and Dependency Management:**

- Injected Maven credentials (`MAVEN_USER`, `MAVEN_PASSWORD`,
`MAVEN_PUBLIC_URL`) as environment variables in all relevant workflow
steps, supporting secure access to private or custom Maven repositories.
[[1]](diffhunk://#diff-5c3fa597431eda03ac3339ae6bf7f05e1a50d6fc7333679ec38e21b337cb6721R71-R81)
[[2]](diffhunk://#diff-8d23782ae5caff72d55828bb25814854f5f2523f299d7dbcda4a3537dd84c5c3L157-R176)
[[3]](diffhunk://#diff-5c3fa597431eda03ac3339ae6bf7f05e1a50d6fc7333679ec38e21b337cb6721R134-R144)
[[4]](diffhunk://#diff-5c3fa597431eda03ac3339ae6bf7f05e1a50d6fc7333679ec38e21b337cb6721R206-R216)
[[5]](diffhunk://#diff-5c3fa597431eda03ac3339ae6bf7f05e1a50d6fc7333679ec38e21b337cb6721R290-R293)
[[6]](diffhunk://#diff-5c3fa597431eda03ac3339ae6bf7f05e1a50d6fc7333679ec38e21b337cb6721R331-R341)
[[7]](diffhunk://#diff-3c0f521958c53ad27c967692b4d5480ead136acb33622ee97d39df814b1b202eR339-R351)
[[8]](diffhunk://#diff-895b214ee023c8c26048a2a3b946cfb1ebc4f26fbc8a9c2fa54b77c12e763b6bR66-R69)
[[9]](diffhunk://#diff-895b214ee023c8c26048a2a3b946cfb1ebc4f26fbc8a9c2fa54b77c12e763b6bL134-R144)
[[10]](diffhunk://#diff-895b214ee023c8c26048a2a3b946cfb1ebc4f26fbc8a9c2fa54b77c12e763b6bR281-R283)
[[11]](diffhunk://#diff-62dcbe64a950b4efb54d691e1e87451a8cd535400aa9ea1e40893de5b57cd73bR57-R60)
[[12]](diffhunk://#diff-76056236de05155107f6a660f1e3956059e37338011b8f0e72188afcb9b17b6fR73-R76)
[[13]](diffhunk://#diff-fd60dc2adec58c1005c4e4164e9c24362fd6082fd3ab0403e54d276d9835fa6eL42-R65)
[[14]](diffhunk://#diff-b34ab107dd4bc92075b2e89b6f16e4a2813e267ca7c2afebdb1931a0a3900d5aR178-R180)
[[15]](diffhunk://#diff-98b618771a57e1758961359ecacbac2cff7cfef29aa021c3bc294ae926c4ce5bL47-R51)

- Added a `pluginManagement` block in `settings.gradle` to allow Gradle
plugins to be resolved from a custom Maven repository if specified by
environment variables, increasing flexibility for plugin sourcing.

**Build and Dependency Versioning:**

- Updated `app/proprietary/build.gradle` to use the
`bouncycastleVersion` variable for the Bouncy Castle dependency version,
improving maintainability and consistency of dependency versioning.

**Workflow Trigger Improvements:**

- Expanded the file path triggers in
`.github/workflows/sync_files_v2.yml` to include additional Gradle build
files, ensuring the workflow runs when any core build files are changed.

---

## Checklist

### General

- [ ] I have read the [Contribution
Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md)
- [ ] I have read the [Stirling-PDF Developer
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md)
(if applicable)
- [ ] I have read the [How to add new languages to
Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md)
(if applicable)
- [ ] I have performed a self-review of my own code
- [ ] My changes generate no new warnings

### Documentation

- [ ] I have updated relevant docs on [Stirling-PDF's doc
repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/)
(if functionality has heavily changed)
- [ ] I have read the section [Add New Translation
Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md#add-new-translation-tags)
(for new translation tags only)

### Translations (if applicable)

- [ ] I ran
[`scripts/counter_translation.py`](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/docs/counter_translation.md)

### UI Changes (if applicable)

- [ ] Screenshots or videos demonstrating the UI changes are attached
(e.g., as comments or direct attachments in the PR)

### Testing (if applicable)

- [ ] I have tested my changes locally. Refer to the [Testing
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md#6-testing)
for more details.
DarioGii pushed a commit that referenced this pull request Jan 23, 2026
…5400)

# Description of Changes

This pull request updates the CI/CD workflows and Gradle configuration
to improve build reproducibility, security, and external dependency
management. The main changes include standardizing Gradle setup across
workflows, securely injecting Maven credentials, and enabling Gradle
build caching. There are also minor improvements to dependency version
management and plugin repository configuration.

**CI/CD Workflow Improvements:**

- Standardized Gradle setup across all GitHub Actions workflows by
explicitly adding a `Setup Gradle` step using
`gradle/actions/setup-gradle@v5.0.0` and specifying Gradle version 8.14.
This replaces previous usages and ensures consistency.
[[1]](diffhunk://#diff-5c3fa597431eda03ac3339ae6bf7f05e1a50d6fc7333679ec38e21b337cb6721R71-R81)
[[2]](diffhunk://#diff-8d23782ae5caff72d55828bb25814854f5f2523f299d7dbcda4a3537dd84c5c3L157-R176)
[[3]](diffhunk://#diff-5c3fa597431eda03ac3339ae6bf7f05e1a50d6fc7333679ec38e21b337cb6721R134-R144)
[[4]](diffhunk://#diff-5c3fa597431eda03ac3339ae6bf7f05e1a50d6fc7333679ec38e21b337cb6721R206-R216)
[[5]](diffhunk://#diff-5c3fa597431eda03ac3339ae6bf7f05e1a50d6fc7333679ec38e21b337cb6721R260-R264)
[[6]](diffhunk://#diff-5c3fa597431eda03ac3339ae6bf7f05e1a50d6fc7333679ec38e21b337cb6721R331-R341)
[[7]](diffhunk://#diff-3c0f521958c53ad27c967692b4d5480ead136acb33622ee97d39df814b1b202eR339-R351)
[[8]](diffhunk://#diff-895b214ee023c8c26048a2a3b946cfb1ebc4f26fbc8a9c2fa54b77c12e763b6bL53-R54)
[[9]](diffhunk://#diff-895b214ee023c8c26048a2a3b946cfb1ebc4f26fbc8a9c2fa54b77c12e763b6bL121-R127)
[[10]](diffhunk://#diff-895b214ee023c8c26048a2a3b946cfb1ebc4f26fbc8a9c2fa54b77c12e763b6bR206-R217)
[[11]](diffhunk://#diff-6a2e9fb077e57351f4a7e10d03b114e256298babdf06e7e7ae666781a5cf36a1R60-R70)
[[12]](diffhunk://#diff-62dcbe64a950b4efb54d691e1e87451a8cd535400aa9ea1e40893de5b57cd73bL45-R46)
[[13]](diffhunk://#diff-76056236de05155107f6a660f1e3956059e37338011b8f0e72188afcb9b17b6fL46-R56)
[[14]](diffhunk://#diff-fd60dc2adec58c1005c4e4164e9c24362fd6082fd3ab0403e54d276d9835fa6eL42-R65)
[[15]](diffhunk://#diff-b34ab107dd4bc92075b2e89b6f16e4a2813e267ca7c2afebdb1931a0a3900d5aR102-R114)
[[16]](diffhunk://#diff-98b618771a57e1758961359ecacbac2cff7cfef29aa021c3bc294ae926c4ce5bL47-R51)

- Enabled Gradle build cache (`--build-cache`) for all build-related
commands in workflows, improving build performance and consistency. Also
removed unnecessary `clean` commands before builds to further optimize
workflow times.
[[1]](diffhunk://#diff-5c3fa597431eda03ac3339ae6bf7f05e1a50d6fc7333679ec38e21b337cb6721R71-R81)
[[2]](diffhunk://#diff-8d23782ae5caff72d55828bb25814854f5f2523f299d7dbcda4a3537dd84c5c3L157-R176)
[[3]](diffhunk://#diff-5c3fa597431eda03ac3339ae6bf7f05e1a50d6fc7333679ec38e21b337cb6721R134-R144)
[[4]](diffhunk://#diff-5c3fa597431eda03ac3339ae6bf7f05e1a50d6fc7333679ec38e21b337cb6721R206-R216)
[[5]](diffhunk://#diff-5c3fa597431eda03ac3339ae6bf7f05e1a50d6fc7333679ec38e21b337cb6721R331-R341)
[[6]](diffhunk://#diff-3c0f521958c53ad27c967692b4d5480ead136acb33622ee97d39df814b1b202eR339-R351)
[[7]](diffhunk://#diff-895b214ee023c8c26048a2a3b946cfb1ebc4f26fbc8a9c2fa54b77c12e763b6bL134-R144)
[[8]](diffhunk://#diff-895b214ee023c8c26048a2a3b946cfb1ebc4f26fbc8a9c2fa54b77c12e763b6bR206-R217)
[[9]](diffhunk://#diff-6a2e9fb077e57351f4a7e10d03b114e256298babdf06e7e7ae666781a5cf36a1R60-R70)
[[10]](diffhunk://#diff-76056236de05155107f6a660f1e3956059e37338011b8f0e72188afcb9b17b6fL46-R56)
[[11]](diffhunk://#diff-fd60dc2adec58c1005c4e4164e9c24362fd6082fd3ab0403e54d276d9835fa6eL42-R65)
[[12]](diffhunk://#diff-b34ab107dd4bc92075b2e89b6f16e4a2813e267ca7c2afebdb1931a0a3900d5aR102-R114)
[[13]](diffhunk://#diff-98b618771a57e1758961359ecacbac2cff7cfef29aa021c3bc294ae926c4ce5bL47-R51)

**Security and Dependency Management:**

- Injected Maven credentials (`MAVEN_USER`, `MAVEN_PASSWORD`,
`MAVEN_PUBLIC_URL`) as environment variables in all relevant workflow
steps, supporting secure access to private or custom Maven repositories.
[[1]](diffhunk://#diff-5c3fa597431eda03ac3339ae6bf7f05e1a50d6fc7333679ec38e21b337cb6721R71-R81)
[[2]](diffhunk://#diff-8d23782ae5caff72d55828bb25814854f5f2523f299d7dbcda4a3537dd84c5c3L157-R176)
[[3]](diffhunk://#diff-5c3fa597431eda03ac3339ae6bf7f05e1a50d6fc7333679ec38e21b337cb6721R134-R144)
[[4]](diffhunk://#diff-5c3fa597431eda03ac3339ae6bf7f05e1a50d6fc7333679ec38e21b337cb6721R206-R216)
[[5]](diffhunk://#diff-5c3fa597431eda03ac3339ae6bf7f05e1a50d6fc7333679ec38e21b337cb6721R290-R293)
[[6]](diffhunk://#diff-5c3fa597431eda03ac3339ae6bf7f05e1a50d6fc7333679ec38e21b337cb6721R331-R341)
[[7]](diffhunk://#diff-3c0f521958c53ad27c967692b4d5480ead136acb33622ee97d39df814b1b202eR339-R351)
[[8]](diffhunk://#diff-895b214ee023c8c26048a2a3b946cfb1ebc4f26fbc8a9c2fa54b77c12e763b6bR66-R69)
[[9]](diffhunk://#diff-895b214ee023c8c26048a2a3b946cfb1ebc4f26fbc8a9c2fa54b77c12e763b6bL134-R144)
[[10]](diffhunk://#diff-895b214ee023c8c26048a2a3b946cfb1ebc4f26fbc8a9c2fa54b77c12e763b6bR281-R283)
[[11]](diffhunk://#diff-62dcbe64a950b4efb54d691e1e87451a8cd535400aa9ea1e40893de5b57cd73bR57-R60)
[[12]](diffhunk://#diff-76056236de05155107f6a660f1e3956059e37338011b8f0e72188afcb9b17b6fR73-R76)
[[13]](diffhunk://#diff-fd60dc2adec58c1005c4e4164e9c24362fd6082fd3ab0403e54d276d9835fa6eL42-R65)
[[14]](diffhunk://#diff-b34ab107dd4bc92075b2e89b6f16e4a2813e267ca7c2afebdb1931a0a3900d5aR178-R180)
[[15]](diffhunk://#diff-98b618771a57e1758961359ecacbac2cff7cfef29aa021c3bc294ae926c4ce5bL47-R51)

- Added a `pluginManagement` block in `settings.gradle` to allow Gradle
plugins to be resolved from a custom Maven repository if specified by
environment variables, increasing flexibility for plugin sourcing.

**Build and Dependency Versioning:**

- Updated `app/proprietary/build.gradle` to use the
`bouncycastleVersion` variable for the Bouncy Castle dependency version,
improving maintainability and consistency of dependency versioning.

**Workflow Trigger Improvements:**

- Expanded the file path triggers in
`.github/workflows/sync_files_v2.yml` to include additional Gradle build
files, ensuring the workflow runs when any core build files are changed.

---

## Checklist

### General

- [ ] I have read the [Contribution
Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md)
- [ ] I have read the [Stirling-PDF Developer
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md)
(if applicable)
- [ ] I have read the [How to add new languages to
Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md)
(if applicable)
- [ ] I have performed a self-review of my own code
- [ ] My changes generate no new warnings

### Documentation

- [ ] I have updated relevant docs on [Stirling-PDF's doc
repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/)
(if functionality has heavily changed)
- [ ] I have read the section [Add New Translation
Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md#add-new-translation-tags)
(for new translation tags only)

### Translations (if applicable)

- [ ] I ran
[`scripts/counter_translation.py`](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/docs/counter_translation.md)

### UI Changes (if applicable)

- [ ] Screenshots or videos demonstrating the UI changes are attached
(e.g., as comments or direct attachments in the PR)

### Testing (if applicable)

- [ ] I have tested my changes locally. Refer to the [Testing
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md#6-testing)
for more details.
renovate bot added a commit to sdwilsh/ansible-playbooks that referenced this pull request Jan 24, 2026
… docker tag to v2

##### [\`2.4.0\`](https://github.com/Stirling-Tools/Stirling-PDF/releases/tag/v2.4.0)

Lots of new features in this release

- database backup management (Only for internal H2 database users)
- Full 2FA support with One-time-password auth code app support!
- Get info supporting better compliance verification
- PDF/X conversions
- automation tool now export into folder scan JSONs for folder automation

Bug fixes for

- Sign tool
- SSO user creation
- addStamp not handling timestamps

Thanks as always for all the fixes and work everyone has been doing! such as [@balazs-szucs](https://github.com/balazs-szucs) or the new bug fix from [@Joey4](https://github.com/Joey4) !
Special thanks to [@Ludy87](https://github.com/Ludy87) for introducing the awesome 2FA feature!

##### What's Changed

##### Enhancements

- feat(admin): add H2 database backup & restore management to admin UI by [@Ludy87](https://github.com/Ludy87) in [#5528](https://github.com/Stirling-Tools/Stirling-PDF/pull/5528)
- feat(frontend): enhance icon detection and update config navigation icon by [@Ludy87](https://github.com/Ludy87) in [#5524](https://github.com/Stirling-Tools/Stirling-PDF/pull/5524)
- feat(security): add TOTP-based multi-factor authentication with backend and UI support by [@Ludy87](https://github.com/Ludy87) in [#5417](https://github.com/Stirling-Tools/Stirling-PDF/pull/5417)
- feat(compliance): implement compliance verfication for get info on PDF by [@balazs-szucs](https://github.com/balazs-szucs) in [#5435](https://github.com/Stirling-Tools/Stirling-PDF/pull/5435)

##### Minor Enhancements

- 🤖 format everything with pre-commit by stirlingbot by [@stirlingbot](https://github.com/stirlingbot)\[bot] in [#5530](https://github.com/Stirling-Tools/Stirling-PDF/pull/5530)
- fix(annotations): fix error 300 on sign frontend by [@balazs-szucs](https://github.com/balazs-szucs) in [#5536](https://github.com/Stirling-Tools/Stirling-PDF/pull/5536)
- Fix: Whitelist health endpoints in Security and Enterprise Filter + fix keep original commit by [@Frooodle](https://github.com/Frooodle) in [#5494](https://github.com/Stirling-Tools/Stirling-PDF/pull/5494)
- API cleanups by [@Frooodle](https://github.com/Frooodle) in [#5537](https://github.com/Stirling-Tools/Stirling-PDF/pull/5537)
- Update Backend 3rd Party Licenses by [@stirlingbot](https://github.com/stirlingbot)\[bot] in [#5490](https://github.com/Stirling-Tools/Stirling-PDF/pull/5490)
- refactor(security): clean up SSO handling, harden URL parsing, and bump dependencies by [@Ludy87](https://github.com/Ludy87) in [#5523](https://github.com/Stirling-Tools/Stirling-PDF/pull/5523)
- fix(common): 🛡️CWE-681 & CWE-197 eliminate tainted numeric casts in size parsing by using BigDecimal with range guards by [@Ludy87](https://github.com/Ludy87) in [#5521](https://github.com/Stirling-Tools/Stirling-PDF/pull/5521)
- build(deps): bump nginx from `c083c37` to `b0f7830` in /docker/frontend by [@dependabot](https://github.com/dependabot)\[bot] in [#5500](https://github.com/Stirling-Tools/Stirling-PDF/pull/5500)
- build(deps): bump node from `f4769ca` to `e80397b` in /docker/frontend by [@dependabot](https://github.com/dependabot)\[bot] in [#5498](https://github.com/Stirling-Tools/Stirling-PDF/pull/5498)
- Fix V2 SSO user creation by [@Frooodle](https://github.com/Frooodle) in [#5079](https://github.com/Stirling-Tools/Stirling-PDF/pull/5079)
- removal of old java desktop + workspace change in tauri by [@Frooodle](https://github.com/Frooodle) in [#5459](https://github.com/Stirling-Tools/Stirling-PDF/pull/5459)
- Date and time placeholders in addTextStamp are not working by [@Joey4](https://github.com/Joey4) in [#5446](https://github.com/Stirling-Tools/Stirling-PDF/pull/5446)
- Update Backend 3rd Party Licenses by [@stirlingbot](https://github.com/stirlingbot)\[bot] in [#5539](https://github.com/Stirling-Tools/Stirling-PDF/pull/5539)
- \[V2] feat(convert): add PDF/X export option by [@balazs-szucs](https://github.com/balazs-szucs) in [#5285](https://github.com/Stirling-Tools/Stirling-PDF/pull/5285)
- V2 Show enterprise demo messages for audit and usage by [@Frooodle](https://github.com/Frooodle) in [#5226](https://github.com/Stirling-Tools/Stirling-PDF/pull/5226)
- Export folder scanning by [@Frooodle](https://github.com/Frooodle) in [#5544](https://github.com/Stirling-Tools/Stirling-PDF/pull/5544)
- translations by [@Frooodle](https://github.com/Frooodle) in [#5541](https://github.com/Stirling-Tools/Stirling-PDF/pull/5541)

##### Docker Updates

- Add sync-versions job to GitHub Actions workflow by [@Ludy87](https://github.com/Ludy87) in [#5228](https://github.com/Stirling-Tools/Stirling-PDF/pull/5228)
- build(deps): bump debian from `f668110` to `ed542b2` in /docker/embedded by [@dependabot](https://github.com/dependabot)\[bot] in [#5495](https://github.com/Stirling-Tools/Stirling-PDF/pull/5495)

##### Other Changes

- build(deps): bump logback from 1.5.23 to 1.5.24 by [@dependabot](https://github.com/dependabot)\[bot] in [#5468](https://github.com/Stirling-Tools/Stirling-PDF/pull/5468)
- build(deps): bump io.micrometer:micrometer-core from 1.16.1 to 1.16.2 by [@dependabot](https://github.com/dependabot)\[bot] in [#5466](https://github.com/Stirling-Tools/Stirling-PDF/pull/5466)

##### New Contributors

- [@Joey4](https://github.com/Joey4) made their first contribution in [#5446](https://github.com/Stirling-Tools/Stirling-PDF/pull/5446)

**Full Changelog**: <https://github.com/Stirling-Tools/Stirling-PDF/compare/v2.3.1...v2.4.0>

---
##### [\`2.3.1\`](https://github.com/Stirling-Tools/Stirling-PDF/releases/tag/v2.3.1)

Several bug fixes , including

- Scroll bar not showing correctly in settings menu
- Automate menus showing options correctly

and several other change,s such as SVG to PDF conversion and performance changes throughout app

#### What's Changed

##### Enhancements

- feat(conversion): add SVG to PDF conversion functionality by [@balazs-szucs](https://github.com/balazs-szucs) in [#5431](https://github.com/Stirling-Tools/Stirling-PDF/pull/5431)
- feat(pipeline): improve file processing with resource management and temp file handling by [@balazs-szucs](https://github.com/balazs-szucs) in [#5488](https://github.com/Stirling-Tools/Stirling-PDF/pull/5488)
- feat(admin): add tessdata language management for OCR and download support by [@Ludy87](https://github.com/Ludy87) in [#5519](https://github.com/Stirling-Tools/Stirling-PDF/pull/5519)

##### Minor Enhancements

- :globe\_with\_meridians: Sync Translations + Update README Progress Table by [@stirlingbot](https://github.com/stirlingbot)\[bot] in [#5489](https://github.com/Stirling-Tools/Stirling-PDF/pull/5489)
- 🤖 format everything with pre-commit by stirlingbot by [@stirlingbot](https://github.com/stirlingbot)\[bot] in [#5484](https://github.com/Stirling-Tools/Stirling-PDF/pull/5484)
- \[V2] fix(automation): enhance parameter handling and default values across operations, fix error in ManyToOne tools by [@balazs-szucs](https://github.com/balazs-szucs) in [#5123](https://github.com/Stirling-Tools/Stirling-PDF/pull/5123)
- scrollbar fixes by [@Frooodle](https://github.com/Frooodle) in [#5529](https://github.com/Stirling-Tools/Stirling-PDF/pull/5529)
- Fix hook ordering for endpoint name resolution by [@Frooodle](https://github.com/Frooodle) in [#5517](https://github.com/Stirling-Tools/Stirling-PDF/pull/5517)
- fix(automation): add zIndex and withinPortal props to dropdown components for improved UI consistency by [@balazs-szucs](https://github.com/balazs-szucs) in [#5527](https://github.com/Stirling-Tools/Stirling-PDF/pull/5527)
- refactor: remove legacy Thymeleaf web UI controllers and templates by [@Ludy87](https://github.com/Ludy87) in [#5406](https://github.com/Stirling-Tools/Stirling-PDF/pull/5406)
- fix(pipeline): avoid bad multipart by letting RestTemplate set boundary by [@Ludy87](https://github.com/Ludy87) in [#5522](https://github.com/Stirling-Tools/Stirling-PDF/pull/5522)
- chore(i18n): update and expand Dutch (nl-NL) translations by [@Stephan-P](https://github.com/Stephan-P) in [#5355](https://github.com/Stirling-Tools/Stirling-PDF/pull/5355)
- Update Italian translations by [@albanobattistella](https://github.com/albanobattistella) in [#5508](https://github.com/Stirling-Tools/Stirling-PDF/pull/5508)

##### Docker Updates

- chore(ci): enable Gradle dependency caching across GitHub workflows by [@Ludy87](https://github.com/Ludy87) in [#5400](https://github.com/Stirling-Tools/Stirling-PDF/pull/5400)
- build(deps): bump actions/checkout from 4.2.2 to 6.0.1 by [@dependabot](https://github.com/dependabot)\[bot] in [#5465](https://github.com/Stirling-Tools/Stirling-PDF/pull/5465)

##### Development Tools

- build(deps-dev): bump stylelint-config-standard from 39.0.1 to 40.0.0 in /devTools by [@dependabot](https://github.com/dependabot)\[bot] in [#5504](https://github.com/Stirling-Tools/Stirling-PDF/pull/5504)

##### Other Changes

- build(deps): bump actions/download-artifact from 6.0.0 to 7.0.0 by [@dependabot](https://github.com/dependabot)\[bot] in [#5503](https://github.com/Stirling-Tools/Stirling-PDF/pull/5503)
- build(deps): bump reportlab from 4.4.5 to 4.4.9 in /testing/cucumber by [@dependabot](https://github.com/dependabot)\[bot] in [#5505](https://github.com/Stirling-Tools/Stirling-PDF/pull/5505)

---
##### [\`2.3.0\`](https://github.com/Stirling-Tools/Stirling-PDF/releases/tag/v2.3.0)

Several important bug fixes in this release related to

- File conversion threading
- Non-roman alphabet files processing incorrectly
- Desktop app bugs (Lots more fixes coming!)
- And many others!

We also have some really cool features introduced such as

- Telegram bot (In Connections menu or settings.yml)
- PDF to EPUB and AZW3
- MSG support

#### What's Changed

##### Enhancements

- feat(build): enhance JaCoCo reporting with coverage summary and enforce thresholds by [@Ludy87](https://github.com/Ludy87) in [#5352](https://github.com/Stirling-Tools/Stirling-PDF/pull/5352)
- feat(ui): prevent self-modification in People management and highlight current user by [@Ludy87](https://github.com/Ludy87) in [#5441](https://github.com/Stirling-Tools/Stirling-PDF/pull/5441)
- feat(conversion): refactor EML parser to use Simple Java Mail library and add MSG support by [@balazs-szucs](https://github.com/balazs-szucs) in [#5427](https://github.com/Stirling-Tools/Stirling-PDF/pull/5427)
- feat(conversion): add PDF to EPUB/AZW3 conversion support and settings by [@balazs-szucs](https://github.com/balazs-szucs) in [#5434](https://github.com/Stirling-Tools/Stirling-PDF/pull/5434)

##### Minor Enhancements

- build(ci): pin base container images, switch npm install to npm ci, and harden EML error handling by [@Ludy87](https://github.com/Ludy87) in [#5353](https://github.com/Stirling-Tools/Stirling-PDF/pull/5353)
- 🤖 format everything with pre-commit by stirlingbot by [@stirlingbot](https://github.com/stirlingbot)\[bot] in [#5426](https://github.com/Stirling-Tools/Stirling-PDF/pull/5426)
- Updated ga-IE translations and added keys to ignore list by [@aindriu80](https://github.com/aindriu80) in [#5178](https://github.com/Stirling-Tools/Stirling-PDF/pull/5178)
- fix(api): return JSON responses for admin settings + API key endpoints to prevent Tauri client parse errors by [@Ludy87](https://github.com/Ludy87) in [#5437](https://github.com/Stirling-Tools/Stirling-PDF/pull/5437)
- Update Backend 3rd Party Licenses by [@stirlingbot](https://github.com/stirlingbot)\[bot] in [#5363](https://github.com/Stirling-Tools/Stirling-PDF/pull/5363)
- build(deps): bump node from 20-alpine to 25-alpine in /docker/frontend by [@dependabot](https://github.com/dependabot)\[bot] in [#5311](https://github.com/Stirling-Tools/Stirling-PDF/pull/5311)
- build(deps): bump nginx from `8491795` to `c083c37` in /docker/frontend by [@dependabot](https://github.com/dependabot)\[bot] in [#5448](https://github.com/Stirling-Tools/Stirling-PDF/pull/5448)
- build(deps): bump globals from 16.5.0 to 17.0.0 in /frontend by [@dependabot](https://github.com/dependabot)\[bot] in [#5413](https://github.com/Stirling-Tools/Stirling-PDF/pull/5413)
- Add Telegram bot integration for pipeline processing by [@Ludy87](https://github.com/Ludy87) in [#5185](https://github.com/Stirling-Tools/Stirling-PDF/pull/5185)
- Update Backend 3rd Party Licenses by [@stirlingbot](https://github.com/stirlingbot)\[bot] in [#5458](https://github.com/Stirling-Tools/Stirling-PDF/pull/5458)
- translations by [@Frooodle](https://github.com/Frooodle) in [#5469](https://github.com/Stirling-Tools/Stirling-PDF/pull/5469)
- :globe\_with\_meridians: Sync Translations + Update README Progress Table by [@stirlingbot](https://github.com/stirlingbot)\[bot] in [#5473](https://github.com/Stirling-Tools/Stirling-PDF/pull/5473)
- fix(auth): remove unnecessary authentication requirement from SignatureController by [@balazs-szucs](https://github.com/balazs-szucs) in [#5477](https://github.com/Stirling-Tools/Stirling-PDF/pull/5477)
- Make controls sticky by [@reecebrowne](https://github.com/reecebrowne) in [#5478](https://github.com/Stirling-Tools/Stirling-PDF/pull/5478)
- fix: update broken enterprise docs link from /Pro to /Paid-Offerings by [@krizhnaa](https://github.com/krizhnaa) in [#5471](https://github.com/Stirling-Tools/Stirling-PDF/pull/5471)
- Libre threads by [@Frooodle](https://github.com/Frooodle) in [#5303](https://github.com/Stirling-Tools/Stirling-PDF/pull/5303)

##### Docker Updates

- build(deps): bump docker/setup-qemu-action from 3.6.0 to 3.7.0 by [@dependabot](https://github.com/dependabot)\[bot] in [#5326](https://github.com/Stirling-Tools/Stirling-PDF/pull/5326)
- build(deps): bump step-security/harden-runner from 2.12.1 to 2.14.0 by [@dependabot](https://github.com/dependabot)\[bot] in [#5324](https://github.com/Stirling-Tools/Stirling-PDF/pull/5324)
- ci(build): scope Docker layer cache per artifact to avoid cross-contamination by [@Ludy87](https://github.com/Ludy87) in [#5453](https://github.com/Stirling-Tools/Stirling-PDF/pull/5453)
- build(deps): bump alpine from 3.22.2 to 3.23.2 in /docker/backend by [@dependabot](https://github.com/dependabot)\[bot] in [#5316](https://github.com/Stirling-Tools/Stirling-PDF/pull/5316)
- build(deps): bump alpine from 3.22.1 to 3.23.2 in /docker/embedded by [@dependabot](https://github.com/dependabot)\[bot] in [#5319](https://github.com/Stirling-Tools/Stirling-PDF/pull/5319)
- build(deps): bump debian from `1c25564` to `449673e` in /docker/embedded by [@dependabot](https://github.com/dependabot)\[bot] in [#5357](https://github.com/Stirling-Tools/Stirling-PDF/pull/5357)
- build(deps): bump docker/setup-buildx-action from 3.11.1 to 3.12.0 by [@dependabot](https://github.com/dependabot)\[bot] in [#5463](https://github.com/Stirling-Tools/Stirling-PDF/pull/5463)
- Docker use latest libreoffice and fonts by [@Frooodle](https://github.com/Frooodle) in [#5482](https://github.com/Stirling-Tools/Stirling-PDF/pull/5482)

##### Translation Changes

- 🤖 format everything with pre-commit by stirlingbot by [@stirlingbot](https://github.com/stirlingbot)\[bot] in [#5462](https://github.com/Stirling-Tools/Stirling-PDF/pull/5462)

##### Other Changes

- fix(ci): read workflow\_dispatch PR number from inputs.pr in PR auto-deploy workflow by [@Ludy87](https://github.com/Ludy87) in [#5380](https://github.com/Stirling-Tools/Stirling-PDF/pull/5380)
- build(deps): bump github/codeql-action from 4.31.5 to 4.31.10 by [@dependabot](https://github.com/dependabot)\[bot] in [#5449](https://github.com/Stirling-Tools/Stirling-PDF/pull/5449)
- build(deps): bump pypdf from 6.4.0 to 6.6.0 in /testing/cucumber by [@dependabot](https://github.com/dependabot)\[bot] in [#5422](https://github.com/Stirling-Tools/Stirling-PDF/pull/5422)
- build(deps): bump io.micrometer:micrometer-core from 1.16.0 to 1.16.1 by [@dependabot](https://github.com/dependabot)\[bot] in [#5358](https://github.com/Stirling-Tools/Stirling-PDF/pull/5358)
- Update user login conditions in workflow by [@Frooodle](https://github.com/Frooodle) in [#5457](https://github.com/Stirling-Tools/Stirling-PDF/pull/5457)
- fix(core): reinstall frontend dependencies when iconify package is missing by [@Ludy87](https://github.com/Ludy87) in [#5432](https://github.com/Stirling-Tools/Stirling-PDF/pull/5432)
- fix(translations): improve translation merger CLI and sync missing UI strings across locales by [@Ludy87](https://github.com/Ludy87) in [#5309](https://github.com/Stirling-Tools/Stirling-PDF/pull/5309)
- build(deps): bump urllib3 from 2.5.0 to 2.6.3 in /testing/cucumber in the pip group across 1 directory by [@dependabot](https://github.com/dependabot)\[bot] in [#5456](https://github.com/Stirling-Tools/Stirling-PDF/pull/5456)
- build(deps): bump docker/login-action from 3.4.0 to 3.6.0 by [@dependabot](https://github.com/dependabot)\[bot] in [#5464](https://github.com/Stirling-Tools/Stirling-PDF/pull/5464)

#### New Contributors

- [@krizhnaa](https://github.com/krizhnaa) made their first contribution in [#5471](https://github.com/Stirling-Tools/Stirling-PDF/pull/5471)

**Full Changelog**: <https://github.com/Stirling-Tools/Stirling-PDF/compare/v2.2.1...v2.3.0>

<!-- Release notes generated using configuration in .github/release.yml at v2.3.0 -->

#### What's Changed

##### Enhancements

- feat(build): enhance JaCoCo reporting with coverage summary and enforce thresholds by [@Ludy87](https://github.com/Ludy87) in [#5352](https://github.com/Stirling-Tools/Stirling-PDF/pull/5352)
- feat(ui): prevent self-modification in People management and highlight current user by [@Ludy87](https://github.com/Ludy87) in [#5441](https://github.com/Stirling-Tools/Stirling-PDF/pull/5441)
- feat(conversion): refactor EML parser to use Simple Java Mail library and add MSG support by [@balazs-szucs](https://github.com/balazs-szucs) in [#5427](https://github.com/Stirling-Tools/Stirling-PDF/pull/5427)
- feat(conversion): add PDF to EPUB/AZW3 conversion support and settings by [@balazs-szucs](https://github.com/balazs-szucs) in [#5434](https://github.com/Stirling-Tools/Stirling-PDF/pull/5434)

##### Minor Enhancements

- build(ci): pin base container images, switch npm install to npm ci, and harden EML error handling by [@Ludy87](https://github.com/Ludy87) in [#5353](https://github.com/Stirling-Tools/Stirling-PDF/pull/5353)
- 🤖 format everything with pre-commit by stirlingbot by [@stirlingbot](https://github.com/stirlingbot)\[bot] in [#5426](https://github.com/Stirling-Tools/Stirling-PDF/pull/5426)
- Updated ga-IE translations and added keys to ignore list by [@aindriu80](https://github.com/aindriu80) in [#5178](https://github.com/Stirling-Tools/Stirling-PDF/pull/5178)
- fix(api): return JSON responses for admin settings + API key endpoints to prevent Tauri client parse errors by [@Ludy87](https://github.com/Ludy87) in [#5437](https://github.com/Stirling-Tools/Stirling-PDF/pull/5437)
- Update Backend 3rd Party Licenses by [@stirlingbot](https://github.com/stirlingbot)\[bot] in [#5363](https://github.com/Stirling-Tools/Stirling-PDF/pull/5363)
- build(deps): bump node from 20-alpine to 25-alpine in /docker/frontend by [@dependabot](https://github.com/dependabot)\[bot] in [#5311](https://github.com/Stirling-Tools/Stirling-PDF/pull/5311)
- build(deps): bump nginx from `8491795` to `c083c37` in /docker/frontend by [@dependabot](https://github.com/dependabot)\[bot] in [#5448](https://github.com/Stirling-Tools/Stirling-PDF/pull/5448)
- build(deps): bump globals from 16.5.0 to 17.0.0 in /frontend by [@dependabot](https://github.com/dependabot)\[bot] in [#5413](https://github.com/Stirling-Tools/Stirling-PDF/pull/5413)
- Add Telegram bot integration for pipeline processing by [@Ludy87](https://github.com/Ludy87) in [#5185](https://github.com/Stirling-Tools/Stirling-PDF/pull/5185)
- Update Backend 3rd Party Licenses by [@stirlingbot](https://github.com/stirlingbot)\[bot] in [#5458](https://github.com/Stirling-Tools/Stirling-PDF/pull/5458)
- translations by [@Frooodle](https://github.com/Frooodle) in [#5469](https://github.com/Stirling-Tools/Stirling-PDF/pull/5469)
- :globe\_with\_meridians: Sync Translations + Update README Progress Table by [@stirlingbot](https://github.com/stirlingbot)\[bot] in [#5473](https://github.com/Stirling-Tools/Stirling-PDF/pull/5473)
- fix(auth): remove unnecessary authentication requirement from SignatureController by [@balazs-szucs](https://github.com/balazs-szucs) in [#5477](https://github.com/Stirling-Tools/Stirling-PDF/pull/5477)
- Make controls sticky by [@reecebrowne](https://github.com/reecebrowne) in [#5478](https://github.com/Stirling-Tools/Stirling-PDF/pull/5478)
- fix: update broken enterprise docs link from /Pro to /Paid-Offerings by [@krizhnaa](https://github.com/krizhnaa) in [#5471](https://github.com/Stirling-Tools/Stirling-PDF/pull/5471)
- Libre threads by [@Frooodle](https://github.com/Frooodle) in [#5303](https://github.com/Stirling-Tools/Stirling-PDF/pull/5303)

##### Docker Updates

- build(deps): bump docker/setup-qemu-action from 3.6.0 to 3.7.0 by [@dependabot](https://github.com/dependabot)\[bot] in [#5326](https://github.com/Stirling-Tools/Stirling-PDF/pull/5326)
- build(deps): bump step-security/harden-runner from 2.12.1 to 2.14.0 by [@dependabot](https://github.com/dependabot)\[bot] in [#5324](https://github.com/Stirling-Tools/Stirling-PDF/pull/5324)
- ci(build): scope Docker layer cache per artifact to avoid cross-contamination by [@Ludy87](https://github.com/Ludy87) in [#5453](https://github.com/Stirling-Tools/Stirling-PDF/pull/5453)
- build(deps): bump alpine from 3.22.2 to 3.23.2 in /docker/backend by [@dependabot](https://github.com/dependabot)\[bot] in [#5316](https://github.com/Stirling-Tools/Stirling-PDF/pull/5316)
- build(deps): bump alpine from 3.22.1 to 3.23.2 in /docker/embedded by [@dependabot](https://github.com/dependabot)\[bot] in [#5319](https://github.com/Stirling-Tools/Stirling-PDF/pull/5319)
- build(deps): bump debian from `1c25564` to `449673e` in /docker/embedded by [@dependabot](https://github.com/dependabot)\[bot] in [#5357](https://github.com/Stirling-Tools/Stirling-PDF/pull/5357)
- build(deps): bump docker/setup-buildx-action from 3.11.1 to 3.12.0 by [@dependabot](https://github.com/dependabot)\[bot] in [#5463](https://github.com/Stirling-Tools/Stirling-PDF/pull/5463)
- Docker use latest libreoffice and fonts by [@Frooodle](https://github.com/Frooodle) in [#5482](https://github.com/Stirling-Tools/Stirling-PDF/pull/5482)

##### Translation Changes

- 🤖 format everything with pre-commit by stirlingbot by [@stirlingbot](https://github.com/stirlingbot)\[bot] in [#5462](https://github.com/Stirling-Tools/Stirling-PDF/pull/5462)

##### Other Changes

- fix(ci): read workflow\_dispatch PR number from inputs.pr in PR auto-deploy workflow by [@Ludy87](https://github.com/Ludy87) in [#5380](https://github.com/Stirling-Tools/Stirling-PDF/pull/5380)
- build(deps): bump github/codeql-action from 4.31.5 to 4.31.10 by [@dependabot](https://github.com/dependabot)\[bot] in [#5449](https://github.com/Stirling-Tools/Stirling-PDF/pull/5449)
- build(deps): bump pypdf from 6.4.0 to 6.6.0 in /testing/cucumber by [@dependabot](https://github.com/dependabot)\[bot] in [#5422](https://github.com/Stirling-Tools/Stirling-PDF/pull/5422)
- build(deps): bump io.micrometer:micrometer-core from 1.16.0 to 1.16.1 by [@dependabot](https://github.com/dependabot)\[bot] in [#5358](https://github.com/Stirling-Tools/Stirling-PDF/pull/5358)
- Update user login conditions in workflow by [@Frooodle](https://github.com/Frooodle) in [#5457](https://github.com/Stirling-Tools/Stirling-PDF/pull/5457)
- fix(core): reinstall frontend dependencies when iconify package is missing by [@Ludy87](https://github.com/Ludy87) in [#5432](https://github.com/Stirling-Tools/Stirling-PDF/pull/5432)
- fix(translations): improve translation merger CLI and sync missing UI strings across locales by [@Ludy87](https://github.com/Ludy87) in [#5309](https://github.com/Stirling-Tools/Stirling-PDF/pull/5309)
- build(deps): bump urllib3 from 2.5.0 to 2.6.3 in /testing/cucumber in the pip group across 1 directory by [@dependabot](https://github.com/dependabot)\[bot] in [#5456](https://github.com/Stirling-Tools/Stirling-PDF/pull/5456)
- build(deps): bump docker/login-action from 3.4.0 to 3.6.0 by [@dependabot](https://github.com/dependabot)\[bot] in [#5464](https://github.com/Stirling-Tools/Stirling-PDF/pull/5464)

#### New Contributors

- [@krizhnaa](https://github.com/krizhnaa) made their first contribution in [#5471](https://github.com/Stirling-Tools/Stirling-PDF/pull/5471)

**Full Changelog**: <https://github.com/Stirling-Tools/Stirling-PDF/compare/v2.2.1...v2.3.0>

---
##### [\`2.2.1\`](https://github.com/Stirling-Tools/Stirling-PDF/releases/tag/v2.2.1)

<!-- Release notes generated using configuration in .github/release.yml at main -->

This release has:

- Possible fix for selfhost connection issues from desktop app
- custom OCR languages fix
- hide login options based on selection
- Mobile QR scanner custom options (Found under connections in settings menu)

<img width="688" height="475" alt="image" src="https://github.com/user-attachments/assets/0038d56f-9a32-49a6-a1fe-7664c997e87d" />
#### What's Changed
##### Minor Enhancements
* Desktop self-hosted connection logging by @ConnorYoh in https://github.com/Stirling-Tools/Stirling-PDF/pull/5410
* 🤖 format everything with pre-commit by stirlingbot by @stirlingbot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/5367
* OCR fix and Mobile QR changes by @Frooodle in https://github.com/Stirling-Tools/Stirling-PDF/pull/5433
* hide login if login type disabled by @Frooodle in https://github.com/Stirling-Tools/Stirling-PDF/pull/5438
* fix(verify-pdf): verification to properly detect non-PDF/A documents with XMP metadata by @balazs-szucs in https://github.com/Stirling-Tools/Stirling-PDF/pull/5397
##### Other Changes
* new VPS by @Frooodle in https://github.com/Stirling-Tools/Stirling-PDF/pull/5430

**Full Changelog**: <https://github.com/Stirling-Tools/Stirling-PDF/compare/v2.2.0...v2.2.1>

<!-- Release notes generated using configuration in .github/release.yml at v2.2.1 -->

#### What's Changed

##### Minor Enhancements

- Desktop self-hosted connection logging by [@ConnorYoh](https://github.com/ConnorYoh) in [#5410](https://github.com/Stirling-Tools/Stirling-PDF/pull/5410)
- 🤖 format everything with pre-commit by stirlingbot by [@stirlingbot](https://github.com/stirlingbot)\[bot] in [#5367](https://github.com/Stirling-Tools/Stirling-PDF/pull/5367)
- OCR fix and Mobile QR changes by [@Frooodle](https://github.com/Frooodle) in [#5433](https://github.com/Stirling-Tools/Stirling-PDF/pull/5433)
- hide login if login type disabled by [@Frooodle](https://github.com/Frooodle) in [#5438](https://github.com/Stirling-Tools/Stirling-PDF/pull/5438)
- fix(verify-pdf): verification to properly detect non-PDF/A documents with XMP metadata by [@balazs-szucs](https://github.com/balazs-szucs) in [#5397](https://github.com/Stirling-Tools/Stirling-PDF/pull/5397)

##### Other Changes

- new VPS by [@Frooodle](https://github.com/Frooodle) in [#5430](https://github.com/Stirling-Tools/Stirling-PDF/pull/5430)

**Full Changelog**: <https://github.com/Stirling-Tools/Stirling-PDF/compare/v2.2.0...v2.2.1>

<!-- Release notes generated using configuration in .github/release.yml at v2.2.1 -->

#### What's Changed

##### Minor Enhancements

- Desktop self-hosted connection logging by [@ConnorYoh](https://github.com/ConnorYoh) in [#5410](https://github.com/Stirling-Tools/Stirling-PDF/pull/5410)
- 🤖 format everything with pre-commit by stirlingbot by [@stirlingbot](https://github.com/stirlingbot)\[bot] in [#5367](https://github.com/Stirling-Tools/Stirling-PDF/pull/5367)
- OCR fix and Mobile QR changes by [@Frooodle](https://github.com/Frooodle) in [#5433](https://github.com/Stirling-Tools/Stirling-PDF/pull/5433)
- hide login if login type disabled by [@Frooodle](https://github.com/Frooodle) in [#5438](https://github.com/Stirling-Tools/Stirling-PDF/pull/5438)
- fix(verify-pdf): verification to properly detect non-PDF/A documents with XMP metadata by [@balazs-szucs](https://github.com/balazs-szucs) in [#5397](https://github.com/Stirling-Tools/Stirling-PDF/pull/5397)

##### Other Changes

- new VPS by [@Frooodle](https://github.com/Frooodle) in [#5430](https://github.com/Stirling-Tools/Stirling-PDF/pull/5430)

**Full Changelog**: <https://github.com/Stirling-Tools/Stirling-PDF/compare/v2.2.0...v2.2.1>

---
##### [\`2.2.0\`](https://github.com/Stirling-Tools/Stirling-PDF/releases/tag/v2.2.0)

<!-- Release notes generated using configuration in .github/release.yml at main -->

Huge release! With this release we have fully integrated all remaining V1 codebase making us updated with the latest changes and bug fixes. Along with these changes we have also integrated various new features!

- Full Ebook conversions, EPUB, MOBI, CBR and others
- Full manual redaction
- Various new PDF compliancy conversions such as PDF/A-3B
- Auto background removal for signatures
- Auto crop mode (detects borders of files)
- Mobile phone scan complete with edge detection and descrewing (Lets you scan a QR code and upload photos from your phone!) (Must be enabled in connection settings)
- Desktop app to support SSO logins for selfhosted users

We have some additional changes which are API only but soon to be migrated to UI

- Full PDF file attachment management
- Improved PDF compliancy and standards checking

As well as these changes there are a ton of other optimisations and improvements in various tools across the board!

#### What's Changed

##### Enhancements

- feat(rotate): add keyboard shortcuts for rotating with arrow keys by [@balazs-szucs](https://github.com/balazs-szucs) in [#5294](https://github.com/Stirling-Tools/Stirling-PDF/pull/5294)
- feat(translations): add command to remove unused translation keys by [@Ludy87](https://github.com/Ludy87) in [#5292](https://github.com/Stirling-Tools/Stirling-PDF/pull/5292)

##### Minor Enhancements

- API mode UI by [@Frooodle](https://github.com/Frooodle) in [#5287](https://github.com/Stirling-Tools/Stirling-PDF/pull/5287)
- \[ImgBot] Optimize images by [@imgbot](https://github.com/imgbot)\[bot] in [#5290](https://github.com/Stirling-Tools/Stirling-PDF/pull/5290)
- Revert "\[ImgBot] Optimize images" by [@Frooodle](https://github.com/Frooodle) in [#5293](https://github.com/Stirling-Tools/Stirling-PDF/pull/5293)
- \[V2] feat(ocr): add option to invalidate digital signatures with warning tooltip by [@balazs-szucs](https://github.com/balazs-szucs) in [#5148](https://github.com/Stirling-Tools/Stirling-PDF/pull/5148)
- \[V2] feat(security): add PDF standards verification feature using veraPDF by [@balazs-szucs](https://github.com/balazs-szucs) in [#4874](https://github.com/Stirling-Tools/Stirling-PDF/pull/4874)
- added a flag to hide settings by [@EthanHealy01](https://github.com/EthanHealy01) in [#5263](https://github.com/Stirling-Tools/Stirling-PDF/pull/5263)
- \[V2] feat(attachments): add PDF/A-3b conversion, attachment listing, renaming, and deletion by [@balazs-szucs](https://github.com/balazs-szucs) in [#5304](https://github.com/Stirling-Tools/Stirling-PDF/pull/5304)
- \[V2] feat(convert): add eBook (EPUB, MOBI, AZW3, FB2) to PDF conversion options and UI by [@balazs-szucs](https://github.com/balazs-szucs) in [#5291](https://github.com/Stirling-Tools/Stirling-PDF/pull/5291)
- photo scan V2 by [@Frooodle](https://github.com/Frooodle) in [#5255](https://github.com/Stirling-Tools/Stirling-PDF/pull/5255)
- refactor(resource): improve resource management and exception safety across controllers and utilities by [@balazs-szucs](https://github.com/balazs-szucs) in [#5350](https://github.com/Stirling-Tools/Stirling-PDF/pull/5350)
- Feature/v2/redact by [@EthanHealy01](https://github.com/EthanHealy01) in [#5249](https://github.com/Stirling-Tools/Stirling-PDF/pull/5249)
- adding opacity to the PDFs so we can see the numbers and stamps better on the add PDF numbers and the add stamp tools by [@EthanHealy01](https://github.com/EthanHealy01) in [#5383](https://github.com/Stirling-Tools/Stirling-PDF/pull/5383)
- fix(certSign): accept .pfx/.p12 uploads for PKCS12 and ensure PFX files are included in form data by [@Ludy87](https://github.com/Ludy87) in [#5391](https://github.com/Stirling-Tools/Stirling-PDF/pull/5391)
- refactor(pdf): improve resource management, memory usage, and exception safety across controllers and utilities by [@balazs-szucs](https://github.com/balazs-szucs) in [#5379](https://github.com/Stirling-Tools/Stirling-PDF/pull/5379)
- fix(conversion): improve PDF/A conversion quality, color accuracy, and compliance by [@balazs-szucs](https://github.com/balazs-szucs) in [#5396](https://github.com/Stirling-Tools/Stirling-PDF/pull/5396)
- fix(Cert): ensure incremental save after PDF signing in CertSignController by [@Ludy87](https://github.com/Ludy87) in [#5390](https://github.com/Stirling-Tools/Stirling-PDF/pull/5390)
- Make stamp preview content private by [@jbrunton96](https://github.com/jbrunton96) in [#5392](https://github.com/Stirling-Tools/Stirling-PDF/pull/5392)
- Stop the "Open Files" button from disappearing at certain zoom levels by [@EthanHealy01](https://github.com/EthanHealy01) in [#5384](https://github.com/Stirling-Tools/Stirling-PDF/pull/5384)
- Chore/v2/improve uploads by [@reecebrowne](https://github.com/reecebrowne) in [#5351](https://github.com/Stirling-Tools/Stirling-PDF/pull/5351)
- Update frontend packages to latest minor version by [@jbrunton96](https://github.com/jbrunton96) in [#5401](https://github.com/Stirling-Tools/Stirling-PDF/pull/5401)
- Fix PDF editor by [@jbrunton96](https://github.com/jbrunton96) in [#5393](https://github.com/Stirling-Tools/Stirling-PDF/pull/5393)
- Optimise Tauri builds by [@jbrunton96](https://github.com/jbrunton96) in [#5404](https://github.com/Stirling-Tools/Stirling-PDF/pull/5404)
- Login-colour-fix-v2 by [@ConnorYoh](https://github.com/ConnorYoh) in [#5418](https://github.com/Stirling-Tools/Stirling-PDF/pull/5418)
- minor changes by [@Frooodle](https://github.com/Frooodle) in [#5419](https://github.com/Stirling-Tools/Stirling-PDF/pull/5419)
- Self-hosted desktop SSO by [@jbrunton96](https://github.com/jbrunton96) in [#5265](https://github.com/Stirling-Tools/Stirling-PDF/pull/5265)
- push docker by [@Frooodle](https://github.com/Frooodle) in [#5421](https://github.com/Stirling-Tools/Stirling-PDF/pull/5421)

##### Docker Updates

- build(deps): bump actions/setup-python from 6.0.0 to 6.1.0 by [@dependabot](https://github.com/dependabot)\[bot] in [#4992](https://github.com/Stirling-Tools/Stirling-PDF/pull/4992)
- build(deps): bump docker/metadata-action from 5.8.0 to 5.10.0 by [@dependabot](https://github.com/dependabot)\[bot] in [#5299](https://github.com/Stirling-Tools/Stirling-PDF/pull/5299)
- build(deps): bump debian from `7cb087f` to `1c25564` in /docker/embedded by [@dependabot](https://github.com/dependabot)\[bot] in [#5310](https://github.com/Stirling-Tools/Stirling-PDF/pull/5310)
- chore(ci): streamline GitHub workflows, labels, and license automation for main by [@Ludy87](https://github.com/Ludy87) in [#5356](https://github.com/Stirling-Tools/Stirling-PDF/pull/5356)
- OOM logs by [@Frooodle](https://github.com/Frooodle) in [#5405](https://github.com/Stirling-Tools/Stirling-PDF/pull/5405)

##### Development Tools

- build(deps): bump peter-evans/create-pull-request from 7.0.8 to 8.0.0 by [@dependabot](https://github.com/dependabot)\[bot] in [#5300](https://github.com/Stirling-Tools/Stirling-PDF/pull/5300)
- deps(ci): update Dependabot, pre-commit tooling, and testing dependencies by [@Ludy87](https://github.com/Ludy87) in [#5170](https://github.com/Stirling-Tools/Stirling-PDF/pull/5170)
- build(deps-dev): bump stylelint from 16.26.0 to 16.26.1 in /devTools by [@dependabot](https://github.com/dependabot)\[bot] in [#5314](https://github.com/Stirling-Tools/Stirling-PDF/pull/5314)

##### Other Changes

- Sync provider settings with settings.yml in config UI by [@Ludy87](https://github.com/Ludy87) in [#5270](https://github.com/Stirling-Tools/Stirling-PDF/pull/5270)
- Revert "Sync provider settings with settings.yml in config UI" by [@Frooodle](https://github.com/Frooodle) in [#5271](https://github.com/Stirling-Tools/Stirling-PDF/pull/5271)
- V1 merge by [@Frooodle](https://github.com/Frooodle) in [#5193](https://github.com/Stirling-Tools/Stirling-PDF/pull/5193)
- Bump logback from 1.5.21 to 1.5.22 by [@dependabot](https://github.com/dependabot)\[bot] in [#5281](https://github.com/Stirling-Tools/Stirling-PDF/pull/5281)
- \[V2] feat(pdfa): add PDF/A-3b option with updated descriptions and translations by [@balazs-szucs](https://github.com/balazs-szucs) in [#5286](https://github.com/Stirling-Tools/Stirling-PDF/pull/5286)
- build(deps): bump actions/ai-inference from 1.2.8 to 2.0.4 by [@dependabot](https://github.com/dependabot)\[bot] in [#5132](https://github.com/Stirling-Tools/Stirling-PDF/pull/5132)
- build(deps): bump actions/stale from 10.1.0 to 10.1.1 by [@dependabot](https://github.com/dependabot)\[bot] in [#5133](https://github.com/Stirling-Tools/Stirling-PDF/pull/5133)
- 🤖 format everything with pre-commit by stirlingbot by [@stirlingbot](https://github.com/stirlingbot)\[bot] in [#5144](https://github.com/Stirling-Tools/Stirling-PDF/pull/5144)
- build(deps): bump softprops/action-gh-release from 2.4.2 to 2.5.0 by [@dependabot](https://github.com/dependabot)\[bot] in [#5134](https://github.com/Stirling-Tools/Stirling-PDF/pull/5134)
- build(deps): bump bouncycastleVersion from 1.82 to 1.83 by [@dependabot](https://github.com/dependabot)\[bot] in [#5111](https://github.com/Stirling-Tools/Stirling-PDF/pull/5111)
- build(deps): bump com.squareup.okhttp3:okhttp-bom from 5.3.1 to 5.3.2 by [@dependabot](https://github.com/dependabot)\[bot] in [#4961](https://github.com/Stirling-Tools/Stirling-PDF/pull/4961)
- Revert "Revert "Sync provider settings with settings.yml in config UI"" by [@Frooodle](https://github.com/Frooodle) in [#5273](https://github.com/Stirling-Tools/Stirling-PDF/pull/5273)
- \[V2] feat(sign): add SVG support for signature image uploads by [@balazs-szucs](https://github.com/balazs-szucs) in [#5279](https://github.com/Stirling-Tools/Stirling-PDF/pull/5279)
- \[V2] feat(compress): add linearize option for fast web viewing by [@balazs-szucs](https://github.com/balazs-szucs) in [#5280](https://github.com/Stirling-Tools/Stirling-PDF/pull/5280)
- Cleanup/v2/text editor by [@EthanHealy01](https://github.com/EthanHealy01) in [#5169](https://github.com/Stirling-Tools/Stirling-PDF/pull/5169)
- \[V2] feat(split): add split mode options and custom page selection to section split by [@balazs-szucs](https://github.com/balazs-szucs) in [#5277](https://github.com/Stirling-Tools/Stirling-PDF/pull/5277)
- \[V2] feat(getPdfInfo): add attachment, embedded file, and image info display by [@balazs-szucs](https://github.com/balazs-szucs) in [#5278](https://github.com/Stirling-Tools/Stirling-PDF/pull/5278)
- build(deps): bump logback from 1.5.22 to 1.5.23 by [@dependabot](https://github.com/dependabot)\[bot] in [#5298](https://github.com/Stirling-Tools/Stirling-PDF/pull/5298)
- build(deps): bump imageioVersion from 3.12.0 to 3.13.0 by [@dependabot](https://github.com/dependabot)\[bot] in [#5295](https://github.com/Stirling-Tools/Stirling-PDF/pull/5295)
- \[V2] refactor(ui): replace native inputs with Mantine components by [@balazs-szucs](https://github.com/balazs-szucs) in [#4898](https://github.com/Stirling-Tools/Stirling-PDF/pull/4898)
- \[V2] feat(flatten): add optional rendering DPI parameter to settings in flatten by [@balazs-szucs](https://github.com/balazs-szucs) in [#5276](https://github.com/Stirling-Tools/Stirling-PDF/pull/5276)
- build(deps): bump actions/github-script from 7.0.1 to 8.0.0 by [@dependabot](https://github.com/dependabot)\[bot] in [#5302](https://github.com/Stirling-Tools/Stirling-PDF/pull/5302)
- \[V2] feat(crop): add auto-crop whitespace option to crop tool UI by [@balazs-szucs](https://github.com/balazs-szucs) in [#5275](https://github.com/Stirling-Tools/Stirling-PDF/pull/5275)
- \[V2] feat(convert): add eBook formats (EPUB, MOBI, AZW3, FB2) to supported formats list by [@balazs-szucs](https://github.com/balazs-szucs) in [#5307](https://github.com/Stirling-Tools/Stirling-PDF/pull/5307)
- 🤖 format everything with pre-commit by stirlingbot by [@stirlingbot](https://github.com/stirlingbot)\[bot] in [#5306](https://github.com/Stirling-Tools/Stirling-PDF/pull/5306)
- Update translation.toml by [@albanobattistella](https://github.com/albanobattistella) in [#5308](https://github.com/Stirling-Tools/Stirling-PDF/pull/5308)
- \[V2] feat(sign): add automatic white background removal for signature images by [@balazs-szucs](https://github.com/balazs-szucs) in [#5210](https://github.com/Stirling-Tools/Stirling-PDF/pull/5210)
- \[V2] feat(convert): add support for CBR to PDF and PDF to CBR conversions by [@balazs-szucs](https://github.com/balazs-szucs) in [#4833](https://github.com/Stirling-Tools/Stirling-PDF/pull/4833)
- fix(ci): correct pip --require-hashes usage in TOML check workflow by [@Ludy87](https://github.com/Ludy87) in [#5336](https://github.com/Stirling-Tools/Stirling-PDF/pull/5336)
- build(deps): bump org.sonarqube from 7.1.0.6387 to 7.2.2.6593 by [@dependabot](https://github.com/dependabot)\[bot] in [#5313](https://github.com/Stirling-Tools/Stirling-PDF/pull/5313)
- chore(ci): skip license bot actions for Dependabot PRs by [@Ludy87](https://github.com/Ludy87) in [#5368](https://github.com/Stirling-Tools/Stirling-PDF/pull/5368)
- Update CODEOWNERS for backend and frontend by [@Ludy87](https://github.com/Ludy87) in [#5415](https://github.com/Stirling-Tools/Stirling-PDF/pull/5415)

---
##### [\`2.1.5\`](https://github.com/Stirling-Tools/Stirling-PDF/releases/tag/v2.1.5)

Another quick release featuring some small changes and enhancements

- Anotations
- Saml bug fixes
- reintroducing static file overrides for custom files

#### What's Changed

##### Minor Enhancements

- allow static overrides by [@Frooodle](https://github.com/Frooodle) in [#5258](https://github.com/Stirling-Tools/Stirling-PDF/pull/5258)
- Saml fixes by [@Frooodle](https://github.com/Frooodle) in [#5256](https://github.com/Stirling-Tools/Stirling-PDF/pull/5256)

##### Other Changes

- Add Sign Up functionality to desktop app by [@jbrunton96](https://github.com/jbrunton96) in [#5244](https://github.com/Stirling-Tools/Stirling-PDF/pull/5244)
- Bug/v2/viewer annotations by [@reecebrowne](https://github.com/reecebrowne) in [#5245](https://github.com/Stirling-Tools/Stirling-PDF/pull/5245)
- Only allow dual page view when there is more than one page, update to… by [@reecebrowne](https://github.com/reecebrowne) in [#5246](https://github.com/Stirling-Tools/Stirling-PDF/pull/5246)
- Update translation.toml by [@Stephan-P](https://github.com/Stephan-P) in [#5254](https://github.com/Stirling-Tools/Stirling-PDF/pull/5254)
- Feature/annotations by [@reecebrowne](https://github.com/reecebrowne) in [#5260](https://github.com/Stirling-Tools/Stirling-PDF/pull/5260)
- Bumping version by [@DarioGii](https://github.com/DarioGii) in [#5268](https://github.com/Stirling-Tools/Stirling-PDF/pull/5268)

**Full Changelog**: <https://github.com/Stirling-Tools/Stirling-PDF/compare/v2.1.4...v2.1.5>

---
##### [\`2.1.4\`](https://github.com/Stirling-Tools/Stirling-PDF/releases/tag/v2.1.4)

This release contains bug fixes for

- SAML not working for certain installations
- PDF Viewer not working due to wasm loading issues
- PDF Text editor cache not found exception

It also contains new features such as

- Line art conversion (inside compress tool) to convert images into black and white lineart for further compression!
- Account change UI, which was missed in last update
- Onboard shortening (More changes to come)

#### What's Changed

##### Bug Fixes

- Bug/v2/static wasm by [@reecebrowne](https://github.com/reecebrowne) in [#5238](https://github.com/Stirling-Tools/Stirling-PDF/pull/5238)

##### Minor Enhancements

- Validate certificate inputs for cert signing by [@Frooodle](https://github.com/Frooodle) in [#5191](https://github.com/Stirling-Tools/Stirling-PDF/pull/5191)
- Shorten onbaording by [@EthanHealy01](https://github.com/EthanHealy01) in [#5198](https://github.com/Stirling-Tools/Stirling-PDF/pull/5198)
- Remove UserApi mapping from proprietary signature controller by [@Frooodle](https://github.com/Frooodle) in [#5239](https://github.com/Stirling-Tools/Stirling-PDF/pull/5239)
- line art  by [@Frooodle](https://github.com/Frooodle) in [#5052](https://github.com/Stirling-Tools/Stirling-PDF/pull/5052)
- Cache fix issues V2 by [@Frooodle](https://github.com/Frooodle) in [#5237](https://github.com/Stirling-Tools/Stirling-PDF/pull/5237)

##### Other Changes

- Account change details by [@Frooodle](https://github.com/Frooodle) in [#5190](https://github.com/Stirling-Tools/Stirling-PDF/pull/5190)
- Fix language codes in picker by [@reecebrowne](https://github.com/reecebrowne) in [#5233](https://github.com/Stirling-Tools/Stirling-PDF/pull/5233)
- Fix German text for sign tool text entry by [@jbrunton96](https://github.com/jbrunton96) in [#5232](https://github.com/Stirling-Tools/Stirling-PDF/pull/5232)
- Simplify V2 PR auto-deploy triggers by [@Frooodle](https://github.com/Frooodle) in [#5236](https://github.com/Stirling-Tools/Stirling-PDF/pull/5236)
- V2 Handle SSO account restrictions in account settings by [@Frooodle](https://github.com/Frooodle) in [#5225](https://github.com/Stirling-Tools/Stirling-PDF/pull/5225)

**Full Changelog**: <https://github.com/Stirling-Tools/Stirling-PDF/compare/v2.1.3...v2.1.4>

---
##### [\`2.1.3\`](https://github.com/Stirling-Tools/Stirling-PDF/releases/tag/v2.1.3)

Quick hotfix release for SSO login pages not being displayed correctly
Some other fixes included in this release are fixes for the bugs:

- cache clearing issues
- app version not showing correctly for desktop install
- mac not openning certain files correctly
- Airgapped issues for pdf viewer (previously was downloading pdfium on load)

Sadly onboarding change is still ongoing. I hope to have it out soon!

#### What's Changed

##### Minor Enhancements

- Fix: SSO Login Page by [@DarioGii](https://github.com/DarioGii) in [#5220](https://github.com/Stirling-Tools/Stirling-PDF/pull/5220)
- Bug/v2/improved cache busting by [@reecebrowne](https://github.com/reecebrowne) in [#5107](https://github.com/Stirling-Tools/Stirling-PDF/pull/5107)

##### Docker Updates

- Make lite version of CI by [@jbrunton96](https://github.com/jbrunton96) in [#5188](https://github.com/Stirling-Tools/Stirling-PDF/pull/5188)
- build(versioning): synchronize app version across Tauri and simulation configs by [@Ludy87](https://github.com/Ludy87) in [#5120](https://github.com/Stirling-Tools/Stirling-PDF/pull/5120)

##### Other Changes

- Improve styling of quick access bar by [@jbrunton96](https://github.com/jbrunton96) in [#5197](https://github.com/Stirling-Tools/Stirling-PDF/pull/5197)
- Fix Mac app not being able to open files with spaces in their name by [@jbrunton96](https://github.com/jbrunton96) in [#5218](https://github.com/Stirling-Tools/Stirling-PDF/pull/5218)
- fix tooltips on tab by [@reecebrowne](https://github.com/reecebrowne) in [#5219](https://github.com/Stirling-Tools/Stirling-PDF/pull/5219)
- Improved static upgrade flow by [@ConnorYoh](https://github.com/ConnorYoh) in [#5214](https://github.com/Stirling-Tools/Stirling-PDF/pull/5214)
- Offline pdfium by [@reecebrowne](https://github.com/reecebrowne) in [#5213](https://github.com/Stirling-Tools/Stirling-PDF/pull/5213)
- Chore/v2/ctrlf by [@reecebrowne](https://github.com/reecebrowne) in [#5217](https://github.com/Stirling-Tools/Stirling-PDF/pull/5217)
- Bump version from 2.1.2 to 2.1.3 by [@Frooodle](https://github.com/Frooodle) in [#5224](https://github.com/Stirling-Tools/Stirling-PDF/pull/5224)

**Full Changelog**: <https://github.com/Stirling-Tools/Stirling-PDF/compare/v2.1.2...v2.1.3>

---
##### [\`2.1.2\`](https://github.com/Stirling-Tools/Stirling-PDF/releases/tag/v2.1.2)

This release contains several bug and ui fixes including:

- SMTP not working under SSL, new settings.yml entries had been added for advanced customisation for this use case
- Extra font support for text editor
- Change password/username UI added for users
- Change password for admins added
- Possible fix for swagger access issues
- Fix for admin ui showing for users (Although not usable)

We planned to make changes to onboarding/popups to reduce them and add disable flags for certain parts, sadly this had to be delayed from this 2.1.2 release and will be in 2.1.3 later today or tomorrow

#### What's Changed

##### Minor Enhancements

- Add admin password reset option for users by [@Frooodle](https://github.com/Frooodle) in [#5180](https://github.com/Stirling-Tools/Stirling-PDF/pull/5180)
- Add configurable SMTP TLS/SSL options by [@Frooodle](https://github.com/Frooodle) in [#5204](https://github.com/Stirling-Tools/Stirling-PDF/pull/5204)
- extra font support in text editor by [@Frooodle](https://github.com/Frooodle) in [#5208](https://github.com/Stirling-Tools/Stirling-PDF/pull/5208)
- Handle restricted language configuration fallback V2  by [@Frooodle](https://github.com/Frooodle) in [#5154](https://github.com/Stirling-Tools/Stirling-PDF/pull/5154)
- Fix: Access to Swagger UI when login enabled by [@DarioGii](https://github.com/DarioGii) in [#5194](https://github.com/Stirling-Tools/Stirling-PDF/pull/5194)

##### Other Changes

- Chang etext on intro by [@Frooodle](https://github.com/Frooodle) in [#5160](https://github.com/Stirling-Tools/Stirling-PDF/pull/5160)
- Fix path to sample file in tour by [@jbrunton96](https://github.com/jbrunton96) in [#5186](https://github.com/Stirling-Tools/Stirling-PDF/pull/5186)
- Backport fixes from SaaS by [@jbrunton96](https://github.com/jbrunton96) in [#5187](https://github.com/Stirling-Tools/Stirling-PDF/pull/5187)
- Handle composition input in PDF text editor by [@Frooodle](https://github.com/Frooodle) in [#5192](https://github.com/Stirling-Tools/Stirling-PDF/pull/5192)
- Fiix colours by [@reecebrowne](https://github.com/reecebrowne) in [#5211](https://github.com/Stirling-Tools/Stirling-PDF/pull/5211)
- lang updates plus --include-existing flag by [@Frooodle](https://github.com/Frooodle) in [#5212](https://github.com/Stirling-Tools/Stirling-PDF/pull/5212)

**Full Changelog**: <https://github.com/Stirling-Tools/Stirling-PDF/compare/v2.1.1...v2.1.2>

---
##### [\`2.1.1\`](https://github.com/Stirling-Tools/Stirling-PDF/releases/tag/v2.1.1)

A quick hotfix update for general UI tweaks and bugs and possible fix for SSO issues
I would also like to take this time to apologise for any of the issues users have been seeing with SSO in our 2.0 update, we are doing the best we can to identify and resolve!

#### What's Changed

##### Minor Enhancements

- Desktop to match normal login screens by [@ConnorYoh](https://github.com/ConnorYoh) in [#5122](https://github.com/Stirling-Tools/Stirling-PDF/pull/5122)
- SSO login fix by [@DarioGii](https://github.com/DarioGii) in [#5167](https://github.com/Stirling-Tools/Stirling-PDF/pull/5167)

##### Other Changes

- More fixes for automate by [@jbrunton96](https://github.com/jbrunton96) in [#5168](https://github.com/Stirling-Tools/Stirling-PDF/pull/5168)
- Update OCR setup guide link in LanguagePicker by [@keonchennl](https://github.com/keonchennl) in [#5162](https://github.com/Stirling-Tools/Stirling-PDF/pull/5162)
- add enum SERVER to list of valid licenses by [@EthanHealy01](https://github.com/EthanHealy01) in [#5172](https://github.com/Stirling-Tools/Stirling-PDF/pull/5172)
- Chore/bump gradle version number by [@EthanHealy01](https://github.com/EthanHealy01) in [#5176](https://github.com/Stirling-Tools/Stirling-PDF/pull/5176)

#### New Contributors

- [@keonchennl](https://github.com/keonchennl) made their first contribution in [#5162](https://github.com/Stirling-Tools/Stirling-PDF/pull/5162)

**Full Changelog**: <https://github.com/Stirling-Tools/Stirling-PDF/compare/v2.1.0...v2.1.1>

---
##### [\`2.1.0\`](https://github.com/Stirling-Tools/Stirling-PDF/releases/tag/v2.1.0)

We are very happy to announce that we have open-sourced our PDF text editor!
With this you will be able to edit the existing text on PDFs and add/move images.
Whilst we are very proud of this feature and to release it to the open source community, it is an alpha version with its own quirks and issues. Do not expect perfect editing.
This is however, a foundation for what is to come and it can only improve from here!

<img width="3374" height="1082" alt="image" src="https://github.com/user-attachments/assets/30870255-ec1d-4296-b5a9-bb05800d20d4" />

The writer has two modes, single line mode and paragraph mode, both have their pros and cons so give it a try!

Other changes in this release:

- General SSO has moved into our SERVER plan from our enterprise plan
- Get all info on PDF feature added!

Bug fixes:

- Bug fixes for Convert to/from PDF erroring for multiple files
- Bug fix for SSO buttons not showing/linking correctly

#### What's Changed

##### Minor Enhancements

- opensource text editor by [@Frooodle](https://github.com/Frooodle) in [#5146](https://github.com/Stirling-Tools/Stirling-PDF/pull/5146)
- Fix-convert-V2 by [@ConnorYoh](https://github.com/ConnorYoh) in [#5147](https://github.com/Stirling-Tools/Stirling-PDF/pull/5147)
- V2 sso in server plan by [@Frooodle](https://github.com/Frooodle) in [#5158](https://github.com/Stirling-Tools/Stirling-PDF/pull/5158)

##### Translation Changes

- Toml by [@Frooodle](https://github.com/Frooodle) in [#5115](https://github.com/Stirling-Tools/Stirling-PDF/pull/5115)

##### Other Changes

- OAuth Provider Buttons by [@DarioGii](https://github.com/DarioGii) in [#5103](https://github.com/Stirling-Tools/Stirling-PDF/pull/5103)
- Add onboarding bypass flag V2 version2 version 2 by [@Frooodle](https://github.com/Frooodle) in [#5151](https://github.com/Stirling-Tools/Stirling-PDF/pull/5151)
- Fixes state management loops around getting results V2 by [@ConnorYoh](https://github.com/ConnorYoh) in [#5153](https://github.com/Stirling-Tools/Stirling-PDF/pull/5153)
- Feature/v2/get all info on pdf by [@EthanHealy01](https://github.com/EthanHealy01) in [#5105](https://github.com/Stirling-Tools/Stirling-PDF/pull/5105)
- couple of small fixes for text editor by [@EthanHealy01](https://github.com/EthanHealy01) in [#5155](https://github.com/Stirling-Tools/Stirling-PDF/pull/5155)

**Full Changelog**: <https://github.com/Stirling-Tools/Stirling-PDF/compare/v2.0.3...v2.1.0>

---
##### [\`2.0.3\`](https://github.com/Stirling-Tools/Stirling-PDF/releases/tag/v2.0.3)

This update address's several bugs such as

- SSO login issues
- Files over 100MB
- signature saving
- Automate not working when a user is logged in
- forms not visible in the viewer

As part of this change we have temporilly removed the MODE feature from the docker, which will be re-added in a later update

#### What's Changed

##### Minor Enhancements

- Reduce JWT Logs by [@DarioGii](https://github.com/DarioGii) in [#5108](https://github.com/Stirling-Tools/Stirling-PDF/pull/5108)
- Grandpa Fix by [@DarioGii](https://github.com/DarioGii) in [#5030](https://github.com/Stirling-Tools/Stirling-PDF/pull/5030)
- java frontend by [@Frooodle](https://github.com/Frooodle) in [#5097](https://github.com/Stirling-Tools/Stirling-PDF/pull/5097)
- Bug/v2/signature fixes by [@reecebrowne](https://github.com/reecebrowne) in [#5104](https://github.com/Stirling-Tools/Stirling-PDF/pull/5104)
- fixes for automate  by [@Frooodle](https://github.com/Frooodle) in [#5127](https://github.com/Stirling-Tools/Stirling-PDF/pull/5127)

##### Other Changes

- Chore/v2/onboarding flow cleanup by [@EthanHealy01](https://github.com/EthanHealy01) in [#5065](https://github.com/Stirling-Tools/Stirling-PDF/pull/5065)
- Print with embed by [@reecebrowne](https://github.com/reecebrowne) in [#5109](https://github.com/Stirling-Tools/Stirling-PDF/pull/5109)
- Revise README for improved structure and clarity by [@Frooodle](https://github.com/Frooodle) in [#5121](https://github.com/Stirling-Tools/Stirling-PDF/pull/5121)
- Update embed and allow form rendering by [@reecebrowne](https://github.com/reecebrowne) in [#5124](https://github.com/Stirling-Tools/Stirling-PDF/pull/5124)

**Full Changelog**: <https://github.com/Stirling-Tools/Stirling-PDF/compare/v2.0.2...v2.0.3>

---
##### [\`2.0.2\`](https://github.com/Stirling-Tools/Stirling-PDF/releases/tag/v2.0.2)

<!-- Release notes generated using configuration in .github/release.yml at V2 -->

We introduced some changes and bug fixes in this release
The main change is:

- Introduced an option to save signatures to server if login enabled, and if login disabled can save to browser storage

Lots more bug fixes in this hotfix

- Links showing correctly in PDF viewer
- OCR tool not correctly showing languages
- SMTP non auth not working
- Swagger access issues resolved (at website.com/swagger-ui/index.html )
- Desktop self-host server connection issues resolved
- Desktop loading issues

#### What's Changed

##### Enhancements

- \[V2] feat(viewer): Add interactive link layer with (basic) internal/external navigation support by [@balazs-szucs](https://github.com/balazs-szucs) in [#5077](https://github.com/Stirling-Tools/Stirling-PDF/pull/5077)

##### Minor Enhancements

- Cookie consent banner and footer on login screen by [@reecebrowne](https://github.com/reecebrowne) in [#5042](https://github.com/Stirling-Tools/Stirling-PDF/pull/5042)
- Fix email invite/ allow non auth and table refresh issues by [@Frooodle](https://github.com/Frooodle) in [#5076](https://github.com/Stirling-Tools/Stirling-PDF/pull/5076)
- Swagger fixes by [@Frooodle](https://github.com/Frooodle) in [#5071](https://github.com/Stirling-Tools/Stirling-PDF/pull/5071)
- Save signatures to server by [@reecebrowne](https://github.com/reecebrowne) in [#5080](https://github.com/Stirling-Tools/Stirling-PDF/pull/5080)
- Added file endpoint for license files and easy upload in admin UI by [@ConnorYoh](https://github.com/ConnorYoh) in [#5055](https://github.com/Stirling-Tools/Stirling-PDF/pull/5055)

##### Other Changes

- Disable admin plan section when no login by [@ConnorYoh](https://github.com/ConnorYoh) in [#5039](https://github.com/Stirling-Tools/Stirling-PDF/pull/5039)
- Don't block desktop app on backend starting up by [@jbrunton96](https://github.com/jbrunton96) in [#5041](https://github.com/Stirling-Tools/Stirling-PDF/pull/5041)
- Desktop Self-hosted guidance improvements by [@ConnorYoh](https://github.com/ConnorYoh) in [#5060](https://github.com/Stirling-Tools/Stirling-PDF/pull/5060)
- Improved language select by [@reecebrowne](https://github.com/reecebrowne) in [#5062](https://github.com/Stirling-Tools/Stirling-PDF/pull/5062)
- tauri remote connection fix by [@Frooodle](https://github.com/Frooodle) in [#5070](https://github.com/Stirling-Tools/Stirling-PDF/pull/5070)
- Audit viewer making api call when shouldnt by [@Frooodle](https://github.com/Frooodle) in [#5069](https://github.com/Stirling-Tools/Stirling-PDF/pull/5069)
- desktop fix debian by [@Frooodle](https://github.com/Frooodle) in [#5068](https://github.com/Stirling-Tools/Stirling-PDF/pull/5068)
- Use frontend translations for OCR language picker by [@Frooodle](https://github.com/Frooodle) in [#5051](https://github.com/Stirling-Tools/Stirling-PDF/pull/5051)
- Fix: Only block export when signatures are placed but not applied by [@reecebrowne](https://github.com/reecebrowne) in [#5084](https://github.com/Stirling-Tools/Stirling-PDF/pull/5084)

**Full Changelog**: <https://github.com/Stirling-Tools/Stirling-PDF/compare/v2.0.1...v2.0.2>

---
##### [\`2.0.1\`](https://github.com/Stirling-Tools/Stirling-PDF/releases/tag/v2.0.1)

<!-- Release notes generated using configuration in .github/release.yml at V2 -->

This is a hotfix release to fix issues identified in our [v2.0.0](https://github.com/Stirling-Tools/Stirling-PDF/releases/tag/v2.0.0) release (Please check [here](https://github.com/Stirling-Tools/Stirling-PDF/releases/tag/v2.0.0) if you wish to see the notes on that)

The main issues fixed are:

- Added frontend code into jar for easy single jar hosted as previous
- Added new -Server.jar for a jar without this additional frontend code
- Desktop installer issues with CORS and various other issues with connections and loading/refreshing
- The syling of certain UI components in darkmode
- Various UI prompts showing in incorrect order

Ongoing issues that are still being addressed

- Certain SSO providers are not working with V2,
- Users using a custom url subpath such as website.com/pdf are not being fully supported in V2
- Some users are not being grandfathered correctly
  We are looking into all three of these issues on priority and expect a release on this soon.

#### What's Changed

##### Minor Enhancements

- Fix CORS issues in desktop app by [@jbrunton96](https://github.com/jbrunton96) in [#5019](https://github.com/Stirling-Tools/Stirling-PDF/pull/5019)
- Chore/v2/hide banner in onboard by [@reecebrowne](https://github.com/reecebrowne) in [#5032](https://github.com/Stirling-Tools/Stirling-PDF/pull/5032)
- Builds custom Jar by [@Frooodle](https://github.com/Frooodle) in [#5029](https://github.com/Stirling-Tools/Stirling-PDF/pull/5029)

##### Docker Updates

- publish GHAs by [@Frooodle](https://github.com/Frooodle) in [#5026](https://github.com/Stirling-Tools/Stirling-PDF/pull/5026)

##### Other Changes

- fix the text color for the first time setup with default credentials by [@EthanHealy01](https://github.com/EthanHealy01) in [#5023](https://github.com/Stirling-Tools/Stirling-PDF/pull/5023)
- Added posthog variables directly to code by [@ConnorYoh](https://github.com/ConnorYoh) in [#5024](https://github.com/Stirling-Tools/Stirling-PDF/pull/5024)
- Fix login loop on self-hosted desktop   by [@jbrunton96](https://github.com/jbrunton96) in [#5022](https://github.com/Stirling-Tools/Stirling-PDF/pull/5022)
- Recreate translation files by [@jbrunton96](https://github.com/jbrunton96) in [#4826](https://github.com/Stirling-Tools/Stirling-PDF/pull/4826)
- various cookie banner fixes by [@reecebrowne](https://github.com/reecebrowne) in [#5027](https://github.com/Stirling-Tools/Stirling-PDF/pull/5027)

**Full Changelog**: <https://github.com/Stirling-Tools/Stirling-PDF/compare/v2.0.0...v2.0.1>

---
##### [\`2.0.0\`](https://github.com/Stirling-Tools/Stirling-PDF/releases/tag/v2.0.0)

Stirling PDF V2, our complete open-source replacement to Adobe Acrobat, is now live!
Version 2 has been a year in the making but brings a full redesign of the app, along with the most requested changes from the community over the past year.

### Highlights

- Brand new and quick UI with lots of polish to allow easy context switching
- Files can now move between operations, Upload a file once and perform multiple operations on it without requiring reuploads
- Undo, redo and complete version history for all files changed
- Native desktop applications with full **"open with"** functionality finally being a true desktop replacement for other PDF apps
- Allowing split deployments with a separated frontend and backend
- Complete System setting customisation from within UI so admins can customise all settings without interacting with server config files
- Desktop to server linkage so you can have a desktop experience whilst having the performance of a server for a hybrid experience
- **Text editing** (alpha), Basic PDF text editing is now available as an early-access feature for paid users. It’s still alpha and will improve over time.

### Licensing and pricing

- We’re introducing a new, unlimited-seat **SERVER** tier for the lowest price in the industry. Key details:
  - Unlimited seats
  - PDF Text Editing
  - Full admin control
  - **$99**/server/month or **$1000**/server/year
- Going forward, our open-core license will be enforced: individual users and teams up to 5 users can fully use Stirling PDF for free; organisations with more than 5 users will need a license.
- All existing users are **grandfathered**. If you’ve been with us up to this point, you should see no change in what you can use today. To access new features or make new changes to your users you can quickly upgrade in your Admin Settings.

### Migration

Due to this being a major release, any production deployments should consider backing up their config directory before deploying this change

### Extra notes

Please note that with this large update and introduction of several new pieces of functionality there may be rough edges.
If you run into issues please

- open a GitHub issue, or
- drop into Discord and let us know!

Our team will also be working to updating our github branching, documentation and various other artifacts over the next few days so please let us know if we miss anything or if you have questions!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

API API-related issues or pull requests chore Routine tasks or maintenance that don't modify src or test files ci Changes to CI configuration files and scripts Devtools Development tools Docker Pull requests that update Docker code Github Gradle Pull requests that update Gradle code Priority: High Issues or pull requests with high priority size:L This PR changes 100-499 lines ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants