What's changed
๐ Highlights
๐ Spring Boot and security
- Spring Boot 4.0.6 (#33553) - latest Spring Boot version for generated applications
- Configuration sanitization for hardening (#32708) - tighter handling of generated configuration
- JWT credentials fix (#33479) - fixes
SecurityUtils.getCurrentUserJWTfor JWT credentials
๐ ฐ๏ธ Angular
- OnPush change detection everywhere (#33218) - all generated components now use
ChangeDetectionStrategy.OnPush - Rewritten service worker provider (#33329) - cleaner service worker setup in generated apps
- SSR-safe html lang updates (#33330) - uses
inject(DOCUMENT)for server-safe language updates
โ๏ธ React
- Jest to Vitest migration (#33200) - generated React apps now use Vitest
- react-top-loading-bar (#33039) - replaces
react-redux-loading-bar - User management reducer fix (#33555) - fixes
errorMessagehandling
๐ฉ Vue
- @module-federation/vite (#33283) - Vue microfrontends now use the Vite integration
- rsbuild microfrontends by default (#33455) - rsbuild is now the default for generated Vue microfrontends
- Gateway resources through module federation (#33485) - exposes and loads gateway resources through module federation
- Stale auth token cleanup (#33503) - removes outdated authentication tokens from storage
๐งฉ Internal improvements
- Improved TypeScript support (#33332, #33096) - each generator exports its own types, and new blueprints are generated in TypeScript
- CI/CD generator split (#33398, #33388) - moves commands into
ci-cdandci-cd:common - Typed generator utilities (#33352, #33351, #33391) - more typed helpers and better
writeFilesinference
๐ค AI and generator workflow
- AGENTS.md and AI assistant disclosure policy (#33130) - documents expectations for AI-assisted contributions
๐ By the numbers
- 878 closed issues and pull requests since 9.0.0 (full list)
- Toolchain updates include Node.js 24.16.0, Gradle 9.5.1, and Maven 3.9.16
๐ง More changes
๐ง Core generator and templates
- Fix CLI filename:
cli/jhipster.cjs(#33526) @qmonmert - TextBlob fake data not loading properly (#33523) @qmonmert
- Fix SecurityUtils.getCurrentUserJWT for Jwt credentials (#33479) @duoduokouduo895
- Add
AGENTS.mdand the AI assistant disclosure policy (#33130) @jdubois - Add the
secret-samplesprofile to the Docker Compose file (#32970) @mshima - Fix
temporaryDirandclientDistDirfor Micronaut and Quarkus (#32968) @mshima - Fix entity generation overwriting
global.menu.entities.adminAuthority(#33056) @qmonmert - Fix filter problem on reverse many to one (#31834) @qmonmert
- Potential fix for code scanning alert no. 26: Overly permissive regular expression range (#32855) @qmonmert
- Update the Dockerfile base image from Java 17 to 21 (#32800) @AbhiratTermsirichit
๐ฅ๏ธ Frontend
- fix(react): update errorMessage handling in user-management reducer (#33555) @mshima
- vue: remove outdated authentication token from storage (#33503) @mshima
- vue: switch to @module-federation/vite (#33283) @mshima
- vue: expose/load gateway resources using module federation (#33485) @mshima
- vue: load i18n using module-federation exposed (#33428) @mshima
- vue: replace init with registerRemotes (#33432) @mshima
- vue: use rsbuild-plugin (#33483) @mshima
- vue: use prod build by default for rsbuild (#33486) @mshima
- vue: generate rsbuild microfrontends by default (#33455) @mshima
- [React] Migrate Jest to Vitest (#33200) @qmonmert
- [Angular] Rewrite service worker provider (#33329) @qmonmert
- [Angular] Refacto: use inject(DOCUMENT) for SSR-safe html lang updates (#33330) @qmonmert
- [Angular] Set ChangeDetectionStrategy.OnPush in all components (#33218) @qmonmert
๐งช Testing and CI
- cypress: add cypress-terminal-report (#33431) @mshima
- cypress: check translations (#33430) @mshima
- move cypress dependencies into cypress generator (#33414) @mshima
- generate-sample: add support to generate blueprints (#33326) @mshima
- testing: improve createTestHelpers (#33304) @mshima
- Fix Cypress audits (#33259) @qmonmert
- Update issue types in issue-check.yml (#32901) @mshima
- ci: work around Node.js 22
require(esm)V8 crash in CI workflows (#32899) @zhyd1997 - fix: update devcontainer Dockerfile to remove deleted test-integration scripts (#32898) @zhyd1997
๐พ JDL, internals, and blueprints
- move command to ci-cd and ci-cd:common generators (#33398) @mshima
- fix writeFiles implementation for given types (#33397) @mshima
- improve writeFiles type inference (#33391) @mshima
- ci-cd: add ci-cd:common generator (#33388) @mshima
- add detectGeneratorType utility (#33352) @mshima
- export typedResult utility (#33351) @mshima
- add defaultCommand to generator-jhipster (#33157) @mshima
- convert prepareSqlApplicationProperties to mutations (#33102) @mshima
- generate typescript blueprint by default (#33096) @mshima
- generate-blueprint: modularize (#33094) @mshima
- internal: implement delay support in mutateData (#33073) @mshima
- internal: only load selected commands (#33043) @mshima
- base-simple-application: unify application context handling (#33006) @mshima
- base: add cleanupBlueprintFiles (#32962) @mshima
- feat(security): implement configuration sanitization for hardening (#32708) @mshima
- fix: export-jdl preserves destination-side relationship annotations (#32662) @trifonnt
- fix: export-jdl now preserves field-level annotations (#32655) @trifonnt
๐ฌ Code quality
- use individual rules in eslint-disable and apply other rules (#33560) @mshima
- apply some eslint rules to files that have eslint disabled (#33556) @mshima
- add rule ejs-templates/no-output-negated-ternary to ejs templates (#33544) @mshima
- add no-extra-parens eslint rule to ejs templates (#33543) @mshima
- ESLint: Activate ejs-templates/prefer-output rule (#33525) @qmonmert
- Simplify templates (#33468) @qmonmert
- Use pattern matching for instanceof in templates (#33466) @qmonmert
- Use List.of() instead of Arrays.asList() in templates (#33460) @qmonmert
- Use Java text blocks for multi-line strings in templates (#33458) @qmonmert
- Clean imports in templates EJS (#33453) @qmonmert
- Prefer node:fs over fs (#32867) @qmonmert
- Fix: Prefer node:path over path (#32690) @qmonmert
- ESLint: add prefer-readonly rule (#32748) @qmonmert
- ESLint: add prefer-optional-chain rule (#32711) @qmonmert
๐ชถ Maven
- Fix: bump org.gaul:modernizer-maven-plugin from 3.3.0 to 3.4.0 (#33452) @qmonmert
- chore(deps): update dependency maven to v3.9.16 (#33439) @renovate[bot]
- chore(deps): update dependency maven to v3.9.15 (#33129) @renovate[bot]
- chore(deps): update dependency maven to v3.9.14 (#32668) @renovate[bot]
๐ Gradle
- chore(deps): update gradle to v9.5.1 (#33382) @renovate[bot]
- chore(deps): update gradle to v9.5.0 (#33231) @renovate[bot]
- Fix: bump org.graalvm.buildtools:native-gradle-plugin from 0.11.5 to 1.0.0 (#32917) @qmonmert
- Fix Gradle 9 deprecations in generator templates (#32892) @copilot-swe-agent[bot]
- chore(deps): update gradle to v9.4.1 (#32755) @renovate[bot]
๐ฆ Dependency updates
- Bump transitional dependencies (#33524, #33425, #33328, #33260, #33205, #33053, #32958, #32890, #32785, #32686) @github-actions[bot]
- chore(deps): update node.js to v24.16.0 (#33505) @renovate[bot]
- chore(deps): update dependency graalvm-reachability-metadata to v1.0.2 (#33504) @renovate[bot]
- Update Spring Boot to v3.5.13 (#33160) @github-actions[bot]
- Update Spring Boot to v4.0.5 (#33159) @github-actions[bot]
- Move micrometer-registry-prometheus-simpleclient to micrometer-registry-prometheus (#33210) @qmonmert
- Fix: bump @yeoman/namespace from 1.0.1 to 2.1.0 (#33206) @qmonmert
- bump simple-git to v3.36.0 (#33081) @mshima
- Fix: bump npm from 11.11.1 to 11.12.0 (#32854) @qmonmert
- Fix: bump @faker-js/faker from 10.3.0 to 10.4.0 (#32850) @qmonmert
- [Vue] Fix: bump bootstrap-vue-next from 0.43.9 to 0.44.0 (#32803) @qmonmert
- drop chai dependency (#32733) @mshima
- drop java-lint dependency (#32732) @mshima
- drop direct dependency on mocha (#32730) @mshima
- internal: drop sinon dependency (#32726) @mshima
๐ฆ Install
npm install -g generator-jhipster@9.1.0Refer to the upgrade instructions for upgrading existing applications.
๐ Contributors
Thanks to everyone who contributed to this release!