v4.14.0
lyogavin/airllmv4.14.0Apr 24, 2026by github-actions[bot]
AI Summary
This release focuses on console UI improvements, OIDC enhancements, and login flow refinements. It introduces security features like authenticated encryption for tokens and support for new key types.
Key Highlights
- Console UI fixes for SMTP, settings, and onboarding
- OIDC callback URL normalization and JWT provider improvements
- New Portuguese (pt) translations for Login V2
- Authenticated encryption for opaque tokens
New Features
- x.509 certificate system-api-user tokens
- ECDSA and ED25519 public key support
- Portuguese (pt) translations
- ZITADEL_API_AWAITINITIALCONN support
- PKCS#1 key support for login client auth
- Standard OTEL environment variables via autoexport
Full Release Notes
# [4.14.0](https://github.com/zitadel/zitadel/compare/v4.13.1...v4.14.0) (2026-04-24) ### Bug Fixes * **console:** always show settings page to admin ([#11779](https://github.com/zitadel/zitadel/issues/11779)) ([2f81454](https://github.com/zitadel/zitadel/commit/2f81454fe31541f53e31cf76c1e46687cd59c4b0)), closes [#10912](https://github.com/zitadel/zitadel/issues/10912) * **console:** disallow smtp double create [#8964](https://github.com/zitadel/zitadel/issues/8964) ([#11868](https://github.com/zitadel/zitadel/issues/11868)) ([aeddf0e](https://github.com/zitadel/zitadel/commit/aeddf0ef91141052dea94ce5fae4f227047c95a0)) * **console:** Fix onboarding link for user login guide ([#11958](https://github.com/zitadel/zitadel/issues/11958)) ([677450e](https://github.com/zitadel/zitadel/commit/677450eec28ac84a2c049fe94ac476aa0da2ca66)) * **console:** jwt provider callback urls [#11589](https://github.com/zitadel/zitadel/issues/11589) ([#11966](https://github.com/zitadel/zitadel/issues/11966)) ([bfbf943](https://github.com/zitadel/zitadel/commit/bfbf943d7af61c3f9dd380efae726ee3752dd38a)) * **console:** normalize empty OIDC redirect uri updates [#12053](https://github.com/zitadel/zitadel/issues/12053) ([#12067](https://github.com/zitadel/zitadel/issues/12067)) ([c16667b](https://github.com/zitadel/zitadel/commit/c16667b67bd0067fab0fb0f0e2437d061f312d07)) * **console:** pass data to user delete dialog ([#11595](https://github.com/zitadel/zitadel/issues/11595)) ([4706a80](https://github.com/zitadel/zitadel/commit/4706a806145cc381e45d85097a85392d0090b69f)) * **console:** update protoc-gen-js ([#12046](https://github.com/zitadel/zitadel/issues/12046)) ([a1cd331](https://github.com/zitadel/zitadel/commit/a1cd33140893933dc84ba02d2762b27cc57cb9ab)) * **grpc:** increase MaxSendMsgSize ([#12066](https://github.com/zitadel/zitadel/issues/12066)) ([31ac2a4](https://github.com/zitadel/zitadel/commit/31ac2a49eac9907492ef0ecb1f55bf5e94b1ea36)) * **grpc:** return 401 for unauthenticated v1 gateway errors ([#11786](https://github.com/zitadel/zitadel/issues/11786)) ([5b4e6ec](https://github.com/zitadel/zitadel/commit/5b4e6ec4ee4afea0251f2d5e309a3a909926d969)), closes [#11730](https://github.com/zitadel/zitadel/issues/11730) * invalid jwt assertion error handling ([#11933](https://github.com/zitadel/zitadel/issues/11933)) ([1c04220](https://github.com/zitadel/zitadel/commit/1c0422031bbe12d94c603dca515a77f5355c9d7e)), closes [/github.com/zitadel/oidc/blob/main/pkg/oidc/verifier.go#L195](https://github.com//github.com/zitadel/oidc/blob/main/pkg/oidc/verifier.go/issues/L195) * **login:** add OIDC/SAML requestId to resend invite / resend email code ([#11927](https://github.com/zitadel/zitadel/issues/11927)) ([501091c](https://github.com/zitadel/zitadel/commit/501091c9be37fbdc9593fffcd2f4f4ad5a6b05fc)) * **login:** ClassifiedConnectError breaking ConnectError instanceof checks ([#12022](https://github.com/zitadel/zitadel/issues/12022)) ([72bbfd4](https://github.com/zitadel/zitadel/commit/72bbfd47b70e6a7d7a539008c4bd71354e56516e)), closes [#11903](https://github.com/zitadel/zitadel/issues/11903) [#11926](https://github.com/zitadel/zitadel/issues/11926) * **login:** improve error classification ([#11926](https://github.com/zitadel/zitadel/issues/11926)) ([6b9062f](https://github.com/zitadel/zitadel/commit/6b9062f58baee4ed5497d208e53ff8feb23c7070)), closes [#11923](https://github.com/zitadel/zitadel/issues/11923) * **login:** invite flow instead of email verification for users with no primary method, improve sending behaviour ([#11837](https://github.com/zitadel/zitadel/issues/11837)) ([fa1d9e8](https://github.com/zitadel/zitadel/commit/fa1d9e8e03e11ba709cd42b13531b075c0665821)), closes [#10929](https://github.com/zitadel/zitadel/issues/10929) * **login:** load SSL_CERT_DIR certificates without requiring hashed filenames ([#12029](https://github.com/zitadel/zitadel/issues/12029)) ([95f61c7](https://github.com/zitadel/zitadel/commit/95f61c769d52771bccb6f816581397dfa10bc576)) * **login:** preserve OIDC request context during email verification ([#11990](https://github.com/zitadel/zitadel/issues/11990)) ([b61ad1e](https://github.com/zitadel/zitadel/commit/b61ad1e5ae08b7abbbc0177d92db89a137a24ee4)) * **login:** prevent duplicate email-code verification issue ([#11893](https://github.com/zitadel/zitadel/issues/11893)) ([c1919db](https://github.com/zitadel/zitadel/commit/c1919dbe9a3cfe08506d434436ae204c8f1b7a0f)), closes [#11857](https://github.com/zitadel/zitadel/issues/11857) * **login:** replace custom SWR cache with lru-cache ([#11945](https://github.com/zitadel/zitadel/issues/11945)) ([c3b0982](https://github.com/zitadel/zitadel/commit/c3b098201f5133f56a9b27bb0a1a7e21e72d8f42)) * **login:** respect branding themeMode for theme toggle, fix CSP ([#11903](https://github.com/zitadel/zitadel/issues/11903)) ([643088f](https://github.com/zitadel/zitadel/commit/643088ffd504c361545c438b95a6b2df4dcb4dd7)), closes [#11721](https://github.com/zitadel/zitadel/issues/11721) * **oidc:** use authenticated encryption for opaque tokens ([#12017](https://github.com/zitadel/zitadel/issues/12017)) ([4ad07d2](https://github.com/zitadel/zitadel/commit/4ad07d22398bf8b2d6655439529a8bb8997758df)), closes [#11315](https://github.com/zitadel/zitadel/issues/11315) * propagate non-NotFound errors from instance interceptor ([#12019](https://github.com/zitadel/zitadel/issues/12019)) ([52f9d7e](https://github.com/zitadel/zitadel/commit/52f9d7eab6805436b93c6b631caa7319a2bce280)) ### Features * add option to use x.509 certificate system-api-user tokens ([#11876](https://github.com/zitadel/zitadel/issues/11876)) ([9a00c49](https://github.com/zitadel/zitadel/commit/9a00c493366fba456716100517d1c8f2bda60686)), closes [#11442](https://github.com/zitadel/zitadel/issues/11442) * allow ECDSA and ED25519 public keys ([#11819](https://github.com/zitadel/zitadel/issues/11819)) ([bce7c48](https://github.com/zitadel/zitadel/commit/bce7c48bfa13e0db8d1b35e6b0a22233551bfb6c)), closes [#8433](https://github.com/zitadel/zitadel/issues/8433) [#8433](https://github.com/zitadel/zitadel/issues/8433) * **console:** improve org search performance in create project grant page [#11121](https://github.com/zitadel/zitadel/issues/11121) ([#12057](https://github.com/zitadel/zitadel/issues/12057)) ([7e20724](https://github.com/zitadel/zitadel/commit/7e207245f270c5e4d21a4caa5cb2e7482af0a14c)) * **login:** add Portuguese (pt) translations for Login V2 ([#11897](https://github.com/zitadel/zitadel/issues/11897)) ([88ba29c](https://github.com/zitadel/zitadel/commit/88ba29ce85684709b420c12fd5cf219e360a0d23)), closes [#11782](https://github.com/zitadel/zitadel/issues/11782) [#11782](https://github.com/zitadel/zitadel/issues/11782) * **login:** add ZITADEL_API_AWAITINITIALCONN support ([#12032](https://github.com/zitadel/zitadel/issues/12032)) ([ad6b5b1](https://github.com/zitadel/zitadel/commit/ad6b5b143795996981d6398029822a04c7dae905)) * **login:** simplify login client auth and support PKCS[#1](https://github.com/zitadel/zitadel/issues/1) keys ([#11888](https://github.com/zitadel/zitadel/issues/11888)) ([810b344](https://github.com/zitadel/zitadel/commit/810b344686ffcd5c18c11294a40cdc091105cfb9)) * support standard OTEL env vars via autoexport ([#11864](https://github.com/zitadel/zitadel/issues/11864)) ([3f1a29f](https://github.com/zitadel/zitadel/commit/3f1a29f3b38ccda3183c854033ebd27b49664a10))