mirror of
https://github.com/zitadel/zitadel.git
synced 2025-08-11 20:37:30 +00:00
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>
This commit is contained in:
@@ -16,6 +16,7 @@ const sidebar_api_actions_v2 = require("./docs/apis/resources/action_service_v2/
|
||||
const sidebar_api_project_service_v2 = require("./docs/apis/resources/project_service_v2/sidebar.ts").default
|
||||
const sidebar_api_webkey_service_v2 = require("./docs/apis/resources/webkey_service_v2/sidebar.ts").default
|
||||
const sidebar_api_instance_service_v2 = require("./docs/apis/resources/instance_service_v2/sidebar.ts").default
|
||||
const sidebar_api_app_v2 = require("./docs/apis/resources/application_service_v2/sidebar.ts").default
|
||||
|
||||
module.exports = {
|
||||
guides: [
|
||||
@@ -806,6 +807,18 @@ module.exports = {
|
||||
},
|
||||
items: sidebar_api_org_service_v2,
|
||||
},
|
||||
{
|
||||
type: "category",
|
||||
label: "Organization (Beta)",
|
||||
link: {
|
||||
type: "generated-index",
|
||||
title: "Organization Service beta API",
|
||||
slug: "/apis/resources/org_service/v2beta",
|
||||
description:
|
||||
"This API is intended to manage organizations for ZITADEL. \n",
|
||||
},
|
||||
items: sidebar_api_org_service_v2beta,
|
||||
},
|
||||
{
|
||||
type: "category",
|
||||
label: "Identity Provider",
|
||||
@@ -820,19 +833,15 @@ module.exports = {
|
||||
},
|
||||
{
|
||||
type: "category",
|
||||
label: "Web key (Beta)",
|
||||
label: "Web Key",
|
||||
link: {
|
||||
type: "generated-index",
|
||||
title: "Web Key Service API (Beta)",
|
||||
title: "Web Key Service API",
|
||||
slug: "/apis/resources/webkey_service_v2",
|
||||
description:
|
||||
"This API is intended to manage web keys for a ZITADEL instance, used to sign and validate OIDC tokens.\n" +
|
||||
"\n" +
|
||||
"This service is in beta state. It can AND will continue breaking until a stable version is released.\n"+
|
||||
"\n"+
|
||||
"The public key endpoint (outside of this service) is used to retrieve the public keys of the active and inactive keys.\n"+
|
||||
"\n"+
|
||||
"Please make sure to enable the `web_key` feature flag on your instance to use this service and that you're running ZITADEL V3.",
|
||||
"The public key endpoint (outside of this service) is used to retrieve the public keys of the active and inactive keys.\n",
|
||||
},
|
||||
items: sidebar_api_webkey_service_v2
|
||||
},
|
||||
@@ -857,6 +866,54 @@ module.exports = {
|
||||
},
|
||||
items: sidebar_api_actions_v2,
|
||||
},
|
||||
{
|
||||
type: "category",
|
||||
label: "Project (Beta)",
|
||||
link: {
|
||||
type: "generated-index",
|
||||
title: "Project Service API (Beta)",
|
||||
slug: "/apis/resources/project_service_v2",
|
||||
description:
|
||||
"This API is intended to manage projects and subresources for ZITADEL. \n" +
|
||||
"\n" +
|
||||
"This service is in beta state. It can AND will continue breaking until a stable version is released.",
|
||||
},
|
||||
items: sidebar_api_project_service_v2,
|
||||
},
|
||||
{
|
||||
type: "category",
|
||||
label: "Instance (Beta)",
|
||||
link: {
|
||||
type: "generated-index",
|
||||
title: "Instance Service API (Beta)",
|
||||
slug: "/apis/resources/instance_service_v2",
|
||||
description:
|
||||
"This API is intended to manage instances, custom domains and trusted domains in ZITADEL.\n" +
|
||||
"\n" +
|
||||
"This service is in beta state. It can AND will continue breaking until a stable version is released.\n"+
|
||||
"\n" +
|
||||
"This v2 of the API provides the same functionalities as the v1, but organised on a per resource basis.\n" +
|
||||
"The whole functionality related to domains (custom and trusted) has been moved under this instance API."
|
||||
,
|
||||
},
|
||||
items: sidebar_api_instance_service_v2,
|
||||
},
|
||||
{
|
||||
type: "category",
|
||||
label: "App (Beta)",
|
||||
link: {
|
||||
type: "generated-index",
|
||||
title: "Application Service API (Beta)",
|
||||
slug: "/apis/resources/application_service_v2",
|
||||
description:
|
||||
"This API lets you manage Zitadel applications (API, SAML, OIDC).\n"+
|
||||
"\n"+
|
||||
"The API offers generic endpoints that work for all app types (API, SAML, OIDC), "+
|
||||
"\n"+
|
||||
"This API is in beta state. It can AND will continue breaking until a stable version is released.\n"
|
||||
},
|
||||
items: sidebar_api_app_v2,
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
|
Reference in New Issue
Block a user