diff --git a/cmd/admin/start/start.go b/cmd/admin/start/start.go index daf94f59bb..df58a1d7a2 100644 --- a/cmd/admin/start/start.go +++ b/cmd/admin/start/start.go @@ -165,7 +165,7 @@ func startAPIs(ctx context.Context, router *mux.Router, commands *command.Comman if err := apis.RegisterServer(ctx, system.CreateServer(commands, queries, adminRepo, config.Database.Database, config.DefaultInstance)); err != nil { return err } - if err := apis.RegisterServer(ctx, admin.CreateServer(commands, queries, adminRepo, config.ExternalSecure, keys.User)); err != nil { + if err := apis.RegisterServer(ctx, admin.CreateServer(config.Database.Database, commands, queries, adminRepo, config.ExternalSecure, keys.User)); err != nil { return err } if err := apis.RegisterServer(ctx, management.CreateServer(commands, queries, config.SystemDefaults, keys.User, config.ExternalSecure, oidc.HandlerPrefix, config.AuditLogRetention)); err != nil { diff --git a/internal/admin/repository/eventsourcing/eventstore/administrator.go b/internal/admin/repository/eventsourcing/eventstore/administrator.go index 1d48ca5807..22cfb9ccdb 100644 --- a/internal/admin/repository/eventsourcing/eventstore/administrator.go +++ b/internal/admin/repository/eventsourcing/eventstore/administrator.go @@ -8,7 +8,7 @@ import ( "github.com/zitadel/zitadel/internal/view/repository" ) -var dbList = []string{"auth", "authz", "adminapi", "notification"} +var dbList = []string{"auth", "adminapi", "notification"} type AdministratorRepo struct { View *view.View diff --git a/internal/api/grpc/admin/failed_event.go b/internal/api/grpc/admin/failed_event.go index f2fa66a523..b8e34f5d3e 100644 --- a/internal/api/grpc/admin/failed_event.go +++ b/internal/api/grpc/admin/failed_event.go @@ -18,14 +18,13 @@ func (s *Server) ListFailedEvents(ctx context.Context, req *admin_pb.ListFailedE if err != nil { return nil, err } - convertedNew := FailedEventsToPb(failedEvents) - convertedOld = append(convertedOld, convertedNew...) - return &admin_pb.ListFailedEventsResponse{Result: convertedOld}, nil + convertedNew := FailedEventsToPb(s.database, failedEvents) + return &admin_pb.ListFailedEventsResponse{Result: append(convertedOld, convertedNew...)}, nil } func (s *Server) RemoveFailedEvent(ctx context.Context, req *admin_pb.RemoveFailedEventRequest) (*admin_pb.RemoveFailedEventResponse, error) { var err error - if req.Database != "zitadel" { + if req.Database != s.database { err = s.administrator.RemoveFailedEvent(ctx, RemoveFailedEventRequestToModel(req)) } else { err = s.query.RemoveFailedEvent(ctx, req.ViewName, req.FailedSequence) diff --git a/internal/api/grpc/admin/failed_event_converter.go b/internal/api/grpc/admin/failed_event_converter.go index 44ec4a3581..afc59a425f 100644 --- a/internal/api/grpc/admin/failed_event_converter.go +++ b/internal/api/grpc/admin/failed_event_converter.go @@ -24,17 +24,17 @@ func FailedEventViewToPb(failedEvent *model.FailedEvent) *admin_pb.FailedEvent { } } -func FailedEventsToPb(failedEvents *query.FailedEvents) []*admin_pb.FailedEvent { +func FailedEventsToPb(database string, failedEvents *query.FailedEvents) []*admin_pb.FailedEvent { events := make([]*admin_pb.FailedEvent, len(failedEvents.FailedEvents)) for i, failedEvent := range failedEvents.FailedEvents { - events[i] = FailedEventToPb(failedEvent) + events[i] = FailedEventToPb(database, failedEvent) } return events } -func FailedEventToPb(failedEvent *query.FailedEvent) *admin_pb.FailedEvent { +func FailedEventToPb(database string, failedEvent *query.FailedEvent) *admin_pb.FailedEvent { return &admin_pb.FailedEvent{ - Database: "zitadel", + Database: database, ViewName: failedEvent.ProjectionName, FailedSequence: failedEvent.FailedSequence, FailureCount: failedEvent.FailureCount, diff --git a/internal/api/grpc/admin/server.go b/internal/api/grpc/admin/server.go index 438384e6c9..1665895847 100644 --- a/internal/api/grpc/admin/server.go +++ b/internal/api/grpc/admin/server.go @@ -24,6 +24,7 @@ var _ admin.AdminServiceServer = (*Server)(nil) type Server struct { admin.UnimplementedAdminServiceServer + database string command *command.Commands query *query.Queries administrator repository.AdministratorRepository @@ -35,13 +36,16 @@ type Config struct { Repository eventsourcing.Config } -func CreateServer(command *command.Commands, +func CreateServer( + database string, + command *command.Commands, query *query.Queries, repo repository.Repository, externalSecure bool, userCodeAlg crypto.EncryptionAlgorithm, ) *Server { return &Server{ + database: database, command: command, query: query, administrator: repo, diff --git a/internal/api/grpc/admin/view.go b/internal/api/grpc/admin/view.go index 04c939bf9b..6bc7014fb8 100644 --- a/internal/api/grpc/admin/view.go +++ b/internal/api/grpc/admin/view.go @@ -12,7 +12,7 @@ func (s *Server) ListViews(ctx context.Context, _ *admin_pb.ListViewsRequest) (* if err != nil { return nil, err } - convertedCurrentSequences := CurrentSequencesToPb(currentSequences) + convertedCurrentSequences := CurrentSequencesToPb(s.database, currentSequences) views, err := s.administrator.GetViews() if err != nil { return nil, err diff --git a/internal/api/grpc/admin/view_converter.go b/internal/api/grpc/admin/view_converter.go index e77a511e65..24ee45e4bf 100644 --- a/internal/api/grpc/admin/view_converter.go +++ b/internal/api/grpc/admin/view_converter.go @@ -25,17 +25,17 @@ func ViewToPb(view *model.View) *admin_pb.View { } } -func CurrentSequencesToPb(currentSequences *query.CurrentSequences) []*admin_pb.View { +func CurrentSequencesToPb(database string, currentSequences *query.CurrentSequences) []*admin_pb.View { v := make([]*admin_pb.View, len(currentSequences.CurrentSequences)) for i, currentSequence := range currentSequences.CurrentSequences { - v[i] = CurrentSequenceToPb(currentSequence) + v[i] = CurrentSequenceToPb(database, currentSequence) } return v } -func CurrentSequenceToPb(currentSequence *query.CurrentSequence) *admin_pb.View { +func CurrentSequenceToPb(database string, currentSequence *query.CurrentSequence) *admin_pb.View { return &admin_pb.View{ - Database: "zitadel", + Database: database, ViewName: currentSequence.ProjectionName, ProcessedSequence: currentSequence.CurrentSequence, EventTimestamp: timestamppb.New(currentSequence.Timestamp), diff --git a/internal/api/grpc/system/failed_event.go b/internal/api/grpc/system/failed_event.go index 9e2d248299..bb2972b9d9 100644 --- a/internal/api/grpc/system/failed_event.go +++ b/internal/api/grpc/system/failed_event.go @@ -18,14 +18,13 @@ func (s *Server) ListFailedEvents(ctx context.Context, req *system_pb.ListFailed if err != nil { return nil, err } - convertedNew := FailedEventsToPb(failedEvents) - convertedOld = append(convertedOld, convertedNew...) - return &system_pb.ListFailedEventsResponse{Result: convertedOld}, nil + convertedNew := FailedEventsToPb(s.database, failedEvents) + return &system_pb.ListFailedEventsResponse{Result: append(convertedOld, convertedNew...)}, nil } func (s *Server) RemoveFailedEvent(ctx context.Context, req *system_pb.RemoveFailedEventRequest) (*system_pb.RemoveFailedEventResponse, error) { var err error - if req.Database != "zitadel" { + if req.Database != s.database { err = s.administrator.RemoveFailedEvent(ctx, RemoveFailedEventRequestToModel(req)) } else { err = s.query.RemoveFailedEvent(ctx, req.ViewName, req.FailedSequence) diff --git a/internal/api/grpc/system/failed_event_converter.go b/internal/api/grpc/system/failed_event_converter.go index b73413adb4..9d194692cc 100644 --- a/internal/api/grpc/system/failed_event_converter.go +++ b/internal/api/grpc/system/failed_event_converter.go @@ -24,17 +24,17 @@ func FailedEventViewToPb(failedEvent *model.FailedEvent) *system_pb.FailedEvent } } -func FailedEventsToPb(failedEvents *query.FailedEvents) []*system_pb.FailedEvent { +func FailedEventsToPb(database string, failedEvents *query.FailedEvents) []*system_pb.FailedEvent { events := make([]*system_pb.FailedEvent, len(failedEvents.FailedEvents)) for i, failedEvent := range failedEvents.FailedEvents { - events[i] = FailedEventToPb(failedEvent) + events[i] = FailedEventToPb(database, failedEvent) } return events } -func FailedEventToPb(failedEvent *query.FailedEvent) *system_pb.FailedEvent { +func FailedEventToPb(database string, failedEvent *query.FailedEvent) *system_pb.FailedEvent { return &system_pb.FailedEvent{ - Database: "zitadel", + Database: database, ViewName: failedEvent.ProjectionName, FailedSequence: failedEvent.FailedSequence, FailureCount: failedEvent.FailureCount, diff --git a/internal/api/grpc/system/view.go b/internal/api/grpc/system/view.go index 8717420459..488a7de358 100644 --- a/internal/api/grpc/system/view.go +++ b/internal/api/grpc/system/view.go @@ -12,7 +12,7 @@ func (s *Server) ListViews(ctx context.Context, _ *system_pb.ListViewsRequest) ( if err != nil { return nil, err } - convertedCurrentSequences := CurrentSequencesToPb(currentSequences) + convertedCurrentSequences := CurrentSequencesToPb(s.database, currentSequences) views, err := s.administrator.GetViews() if err != nil { return nil, err diff --git a/internal/api/grpc/system/view_converter.go b/internal/api/grpc/system/view_converter.go index 5af11c9d77..b4b97afc01 100644 --- a/internal/api/grpc/system/view_converter.go +++ b/internal/api/grpc/system/view_converter.go @@ -25,17 +25,17 @@ func ViewToPb(view *model.View) *system_pb.View { } } -func CurrentSequencesToPb(currentSequences *query.CurrentSequences) []*system_pb.View { +func CurrentSequencesToPb(database string, currentSequences *query.CurrentSequences) []*system_pb.View { v := make([]*system_pb.View, len(currentSequences.CurrentSequences)) for i, currentSequence := range currentSequences.CurrentSequences { - v[i] = CurrentSequenceToPb(currentSequence) + v[i] = CurrentSequenceToPb(database, currentSequence) } return v } -func CurrentSequenceToPb(currentSequence *query.CurrentSequence) *system_pb.View { +func CurrentSequenceToPb(database string, currentSequence *query.CurrentSequence) *system_pb.View { return &system_pb.View{ - Database: "zitadel", + Database: database, ViewName: currentSequence.ProjectionName, ProcessedSequence: currentSequence.CurrentSequence, EventTimestamp: timestamppb.New(currentSequence.Timestamp),