feat(domain): Instance APIs with relational tables (#10953)

# Which Problems Are Solved

This PR implements the endpoints listed in
https://github.com/zitadel/zitadel/issues/10443 .

# How the Problems Are Solved

The implementation follows the same pattern as the Organization one.
There are no peculiarities to this PR. The `Update`, `Delete` are
implementing the `Commander` interface, while `Get` and `List`
instance(s) endpoints are implementing the `Querier` interace.

# Additional Context

- Closes #10443
- Depends on #10445
This commit is contained in:
Marco A.
2025-10-28 14:17:19 +00:00
committed by GitHub
parent ad8e8bf61f
commit 39a29f534a
28 changed files with 4448 additions and 196 deletions
@@ -6,10 +6,16 @@ import (
"connectrpc.com/connect"
"google.golang.org/protobuf/types/known/timestamppb"
instancev2 "github.com/zitadel/zitadel/backend/v3/api/instance/v2"
"github.com/zitadel/zitadel/internal/api/authz"
instance "github.com/zitadel/zitadel/pkg/grpc/instance/v2beta"
)
func (s *Server) DeleteInstance(ctx context.Context, request *connect.Request[instance.DeleteInstanceRequest]) (*connect.Response[instance.DeleteInstanceResponse], error) {
if authz.GetFeatures(ctx).EnableRelationalTables {
return instancev2.DeleteInstance(ctx, request)
}
obj, err := s.command.RemoveInstance(ctx, request.Msg.GetInstanceId())
if err != nil {
return nil, err
@@ -22,6 +28,10 @@ func (s *Server) DeleteInstance(ctx context.Context, request *connect.Request[in
}
func (s *Server) UpdateInstance(ctx context.Context, request *connect.Request[instance.UpdateInstanceRequest]) (*connect.Response[instance.UpdateInstanceResponse], error) {
if authz.GetFeatures(ctx).EnableRelationalTables {
return instancev2.UpdateInstance(ctx, request)
}
obj, err := s.command.UpdateInstance(ctx, request.Msg.GetInstanceName())
if err != nil {
return nil, err