Files
zitadel/docs
Livio Spring 9ebf2316c6 feat: exchange gRPC server implementation to connectRPC (#10145)
# Which Problems Are Solved

The current maintained gRPC server in combination with a REST (grpc)
gateway is getting harder and harder to maintain. Additionally, there
have been and still are issues with supporting / displaying `oneOf`s
correctly.
We therefore decided to exchange the server implementation to
connectRPC, which apart from supporting connect as protocol, also also
"standard" gRCP clients as well as HTTP/1.1 / rest like clients, e.g.
curl directly call the server without any additional gateway.

# How the Problems Are Solved

- All v2 services are moved to connectRPC implementation. (v1 services
are still served as pure grpc servers)
- All gRPC server interceptors were migrated / copied to a corresponding
connectRPC interceptor.
- API.ListGrpcServices and API. ListGrpcMethods were changed to include
the connect services and endpoints.
- gRPC server reflection was changed to a `StaticReflector` using the
`ListGrpcServices` list.
- The `grpc.Server` interfaces was split into different combinations to
be able to handle the different cases (grpc server and prefixed gateway,
connect server with grpc gateway, connect server only, ...)
- Docs of services serving connectRPC only with no additional gateway
(instance, webkey, project, app, org v2 beta) are changed to expose that
- since the plugin is not yet available on buf, we download it using
`postinstall` hook of the docs

# Additional Changes

- WebKey service is added as v2 service (in addition to the current
v2beta)

# Additional Context

closes #9483

---------

Co-authored-by: Elio Bischof <elio@zitadel.com>
2025-07-04 14:06:20 +00:00
..

ZITADEL-Docs

This website is built using Docusaurus 2, a modern static website generator.

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.

Installation

Install dependencies with

yarn install

then run

yarn generate

Local Development

Start a local development server with

yarn start

When working on the API docs, run a local development server with

yarn 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