# Which Problems Are Solved
#9861 added a `urn:zitadel:iam:org:projects:roles` claims to include all
roles from all requested roles. The intention was to return them on the
userinfo endpoint. But since the claims might also be returned in the id
and access tokens, they can grow big quite fast and break the size
limits for headers.
# How the Problems Are Solved
This PR revert the feature. The information for roles of other projects
is already available as a dedicated claim (for each project):
```json
"urn:zitadel:iam:org:project:328813096124547391:roles": {
"r2": {
"306639557921669515": "zitadel.localhost"
},
"r3": {
"306639557921669515": "zitadel.localhost"
},
"role": {
"306639557921669515": "zitadel.localhost"
}
},
"urn:zitadel:iam:org:project:341406882914631999:roles": {
"role": {
"306639557921669515": "zitadel.localhost",
"328237605990695334": "aa.localhost"
},
"test": {
"306639557921669515": "zitadel.localhost",
"328237605990695334": "aa.localhost"
}
},
"urn:zitadel:iam:org:project:roles": {
"r2": {
"306639557921669515": "zitadel.localhost"
},
"r3": {
"306639557921669515": "zitadel.localhost"
},
"role": {
"306639557921669515": "zitadel.localhost"
}
}
```
# Additional Changes
None
# Additional Context
- relates to #9861
- noted issues in production
- requires backport to v4.x
(cherry picked from commit b8bff3cdea)
ZITADEL-Docs
This website is built using Docusaurus 2, a modern static website generator.
The documentation is part of the ZITADEL monorepo and uses pnpm and Turbo for development and build processes.
Quick Start
# From the repository root
pnpm install
# Start development server (with Turbo)
pnpm turbo dev --filter=zitadel-docs
# Or start directly from docs directory
cd docs && pnpm start
The site will be available at http://localhost:3000
Available Scripts
All scripts can be run from the repository root using Turbo:
# Development server with live reload
pnpm turbo dev --filter=zitadel-docs
# Build for production
pnpm turbo build --filter=zitadel-docs
# Generate API documentation and configuration docs
pnpm turbo generate --filter=zitadel-docs
# Lint and fix code
pnpm turbo lint --filter=zitadel-docs
# Serve production build locally
cd docs && pnpm serve
Add new Sites to existing Topics
To add a new site to the already existing structure simply save the md file into the corresponding folder and append the sites id int the file sidebars.js.
If you are introducing new APIs (gRPC), you need to add a new entry to docusaurus.config.js under the plugins section.
Build Process
The documentation build process automatically:
- Downloads required protoc plugins - Ensures
protoc-gen-connect-openapiis available - Generates gRPC documentation - Creates API docs from proto files
- Generates API documentation - Creates OpenAPI specification docs
- Copies configuration files - Includes configuration examples
- Builds the Docusaurus site - Generates the final static site
Local Development
Standard Development
# Install dependencies
pnpm install
# Start development server
pnpm start
API Documentation Development
When working on the API docs, run a local development server with:
pnpm start:api
Container Image
If you just want to start docusaurus locally without installing node you can fallback to our container image. Execute the following commands from the repository root to build and start a local version of ZITADEL
docker build -f docs/Dockerfile . -t zitadel-docs
docker run -p 8080:8080 zitadel-docs