# Which Problems Are Solved - Several npm dependencies fell behind releases that contain security fixes (`pnpm audit` reported 36 findings, 12 of them high). - Some `pnpm-workspace.yaml` overrides had outdated floors or comments that no longer named the parent pinning the old version. # How the Problems Are Solved Direct bumps: | package | from | to | where | type | |---|---|---|---|---| | `next` | 16.3.6 | 16.3.8 | login, docs | patch | | `@next/eslint-plugin-next` | 16.3.6 | 16.3.8 | login | patch | | `@angular/*` framework packages (core, common, router, forms, …) | 21.2.24 | 21.2.25 | console | patch | | `@angular/build`, `@angular/cli` | 21.2.24 | 21.2.27 | console | patch | | `moment` | 2.30.1 | 2.31.0 | login, console | minor | | `concurrently` | 10.0.3 | 10.0.6 | login | patch | | `vitest` | 4.1.11 | 4.1.12 | login, `@zitadel/client` | patch | Lockfile refreshes within existing ranges: - `hono` 4.13.9 → 4.13.13 (via `@modelcontextprotocol/sdk`) - along with these, a few webpack subtree packages in docs (`raw-loader` → `webpack`) moved by a patch or minor version: `schema-utils`, `watchpack`, `minimizer-webpack-plugin`, `browserslist` - other transitive dependencies refreshed within their ranges Removed: - `@tailwindcss/typography` from docs (unused) Overrides: all existing overrides were removed, dependencies reinstalled, and only the ones `pnpm audit` still needs were re-added. On top of that, this PR adds new overrides for packages whose latest parent release still pins a vulnerable version. Each override is scoped to the vulnerable range and names the parent that pins it: | override | pinned by | |---|---| | `axios@>=1.0.0 <1.20.0` → `^1.20.0` (new) | nx 22.7.12 (latest 22.x) | | `follow-redirects@<1.16.1` → `^1.16.1` (new) | nx 22.7.12 (latest 22.x) | | `brace-expansion@>=4.0.0 <5.0.12` → `^5.0.12` (floor raised) | nx 22.7.12 | | `smol-toml@<1.9.0` → `^1.9.0` (floor raised) | nx 22.7.12 | | `@modelcontextprotocol/sdk@<1.32.0` → `^1.32.0` (new) | `@angular/cli` 21.2.27 (latest 21.x) | | `vite@>=7.0.0 <7.3.7` → `^7.3.7` (new) | `@angular/build` 21.2.27 (latest 21.x) | | `esbuild@>=0.27.3 <0.28.1` → `^0.28.1` | tsup 8.x (via `@zitadel/client`) | | `@opentelemetry/core`, `@opentelemetry/propagator-jaeger` | login's `@opentelemetry/sdk-node` 0.218 and `auto-instrumentations-node` 0.76 | Every new override stays within the same major version. # Additional Changes None of the bumps is a major release, and none changes anything operators can observe. Manual checks: - Login: `/ui/v2/login/loginname`, the password and passkey flows, and the image-heavy pages (Next 16.3.8). - Console: navigating between orgs, projects and users, including deep links and the back button (Angular router 21.2.25). - Docs: start the dev server and open a few MDX pages (vite override via `fumadocs-mdx`). # Additional Context Still open in `pnpm audit` on purpose (11 packages: 9 moderate, 2 high): - 8 `@opentelemetry/instrumentation-*` DB packages in login, pinned by `auto-instrumentations-node` 0.76. The bump to sdk-node 0.222+ / auto-instrumentations 0.80+ moves HTTP spans to stable semantic conventions, which changes operator dashboards, so it will come as its own PR. - `braces` and `sprintf-js` via `@changesets/cli` 2.x. There is no 2.x fix, and changesets 3 needs Node 22 while `release.yml` uses Node 20. - `node-forge`: there is no upstream fix. Only the dockerized login test CA uses it (`apps/login/dockerized/ca/utils/tls.ts`). Follow-ups that would remove overrides: nx 23/24 (axios, follow-redirects, brace-expansion, smol-toml), tsup 9 (esbuild), Angular 22 (MCP SDK, vite). Verified locally: `pnpm install --frozen-lockfile`, `build test-unit lint` for `@zitadel/login`, `@zitadel/client` and `@zitadel/console`, and `check-types test` for `@zitadel/docs`. I didn't run the docs static `build` locally (not enough disk), so that one relies on CI. I also didn't run the dockerized login tests, because nothing changes the image, containers or telemetry. - Supersedes #12728 (next) and #12892 (moment) 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Livio Spring <9405495+livio-a@users.noreply.github.com>
The Identity Infrastructure for Developers
ZITADEL is an open-source identity and access management platform built for teams that need more than basic auth. Whether you're securing a SaaS product, building a B2B platform, or self-hosting a production IAM stack — ZITADEL gives you everything out of the box: SSO, MFA, Passkeys, OIDC, SAML, SCIM, and a battle-tested multi-tenancy model.
No vendor lock-in. No compromise on control. Just a robust, API-first identity platform you can own.
🏡 Website | 💬 Chat | 📋 Docs | 🧑💻 Blog | 📞 Contact
Why ZITADEL
We built ZITADEL to handle the hardest IAM challenges at scale — starting with multi-tenancy.
| ZITADEL | FusionAuth | Keycloak | Auth0/Okta | |
|---|---|---|---|---|
| Open-source | ✅ | ❌ | ✅ | ❌ |
| Self-hostable | ✅ | ✅ | ✅ | ❌ |
| Infrastructure-level tenants | ✅ Instances (High scale) | ✅ Tenants | 🟡 Realms (Scaling limits) | ❌ (Multi-tenant = multi-account) |
| B2B Organizations | ✅ Native & Unlimited | 🟡 via Entity Management | ✅ (Recent addition) | 🟡 (Plan/Account dependent) |
| Full audit trail | ✅ Comprehensive Event Stream* | 🟡 Audit logs | 🟡 Audit logs | 🟡 Audit logs |
| Passkeys (FIDO2) | ✅ | ✅ | ✅ | ✅ |
| Actions / webhooks | ✅ | ✅ | 🟡 via SPI | ✅ |
| API-first (gRPC + REST) | ✅ | 🟡 REST only | 🟡 REST only | 🟡 REST only |
| SaaS + self-host parity | ✅ | ✅ | ➖ N/A | ➖ N/A |
ZITADEL Cloud and self-hosted ZITADEL run the same codebase.
Key differentiators for architects:
- Relational core, event-driven soul — every mutation is written as an immutable event for a complete, API-accessible audit trail. Unlike systems that log only select activities, ZITADEL provides a comprehensive event stream that can be audited or streamed to external systems via Webhooks.
- Strict multi-tenant hierarchy — Identity System → Organizations → Projects, with isolated data and policy scoping at multiple levels
- API-first design — every resource and action is available via connectRPC, gRPC, and HTTP/JSON APIs
- Zero-downtime updates and horizontal scalability without external session stores
Get Started in 3 Minutes
ZITADEL Self-Hosted
# Docker Compose — up and running in under 3 minutes
curl -LO https://raw.githubusercontent.com/zitadel/zitadel/main/deploy/compose/docker-compose.yml \
&& curl -LO https://raw.githubusercontent.com/zitadel/zitadel/main/deploy/compose/.env.example \
&& cp .env.example .env \
&& docker compose up -d --wait
Full deployment guides:
Need professional support for your self-hosted deployment? Contact us.
ZITADEL Cloud (SaaS)
Start for free at zitadel.com — no credit card required. Available in US · EU · AU · CH. Pay-as-you-go pricing.
Integrate with the V2 API
ZITADEL exposes every capability over a typed API. Here's how to create a user with the V2 REST API:
curl -X POST https://$ZITADEL_DOMAIN/v2/users/human \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"username": "alice@example.com",
"profile": { "givenName": "Alice", "familyName": "Smith" },
"email": { "email": "alice@example.com", "sendCode": {} }
}'
Explore the full API reference — including connectRPC and gRPC transports — or jump straight to quickstart examples.
Features
Authentication
- Single Sign On (SSO) · Username/Password · Passkeys (FIDO2 / WebAuthn)
- MFA: OTP, U2F, OTP Email, OTP SMS
- LDAP · Enterprise IdPs and social logins
- OpenID Connect certified · SAML 2.0 · Device authorization
- Machine-to-machine: JWT Profile, PAT, Client Credentials
- Token exchange and impersonation
- Custom sessions for flows beyond OIDC/SAML
- Hosted Login V2
Multi-Tenancy
- Identity brokering with pre-built IdP templates
- Customizable B2B onboarding with self-service for customers
- Delegated role management to third parties
- Domain discovery
Integration
- gRPC, connectRPC, and REST APIs for every resource
- Actions: webhooks, custom code, token enrichment
- RBAC · SCIM 2.0 Server
- Audit log and SOC/SIEM integration
- SDKs and example apps
Self-Service & Admin
- Self-registration with email/phone verification
- Administration Console for orgs and projects
- Custom branding per organization
Deployment
- PostgreSQL (≥ 14) · Zero-downtime updates · High scalability
Track upcoming features on our roadmap and follow our changelog for recent updates.
Showcase
Login V2
Our new, fully customizable login experience — documentation
Adopters & Ecosystem
Used in production by organizations worldwide. See the full Adopters list — and add yours by submitting a pull request.
- SDKs: All supported languages and frameworks
- Examples: Clone and use our examples
How To Contribute
ZITADEL is built in the open and welcoming to contributions of all kinds.
- 📖 Read the Contribution Guide to get started
- 💬 Join the conversation on Discord
- 🐛 Report bugs or request features via GitHub Issues
Contributors
Made with contrib.rocks.
Security
Security policy: SECURITY.md
Vulnerability Disclosure Policy — how to responsibly report security issues.
Technical Advisories are published for major issues that could impact security or stability in production.
License
AGPL-3.0 — see LICENSING.md for the full licensing policy, including Apache 2.0 and MIT exceptions for specific directories.


