fix: add sentry in ui, http and projection handlers (#1977)

* fix: add sentry in ui, http and projection handlers

* fix test
This commit is contained in:
Livio Amstutz 2021-07-06 13:36:35 +02:00 committed by GitHub
parent 9277928ef7
commit 0e472a347f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
78 changed files with 339 additions and 11 deletions

View File

@ -40,6 +40,10 @@ const (
customTextTable = "adminapi.custom_texts"
)
func (m *CustomText) Subscription() *v1.Subscription {
return m.subscription
}
func (m *CustomText) ViewModel() string {
return customTextTable
}

View File

@ -47,6 +47,10 @@ func (p *Features) subscribe() {
}()
}
func (p *Features) Subscription() *v1.Subscription {
return p.subscription
}
func (p *Features) ViewModel() string {
return featuresTable
}

View File

@ -49,7 +49,6 @@ func (m *IAMMember) subscribe() {
go func() {
for event := range m.subscription.Events {
query.ReduceEvent(m, event)
}
}()
@ -67,6 +66,10 @@ func (m *IAMMember) ViewModel() string {
return iamMemberTable
}
func (m *IAMMember) Subscription() *v1.Subscription {
return m.subscription
}
func (m *IAMMember) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{model.IAMAggregate, usr_es_model.UserAggregate}
}

View File

@ -39,6 +39,10 @@ func (i *IDPConfig) subscribe() {
}()
}
func (i *IDPConfig) Subscription() *v1.Subscription {
return i.subscription
}
func (i *IDPConfig) ViewModel() string {
return idpConfigTable
}

View File

@ -54,6 +54,10 @@ func (i *IDPProvider) subscribe() {
}()
}
func (i *IDPProvider) Subscription() *v1.Subscription {
return i.subscription
}
func (i *IDPProvider) ViewModel() string {
return idpProviderTable
}

View File

@ -44,6 +44,10 @@ func (p *LabelPolicy) ViewModel() string {
return labelPolicyTable
}
func (p *LabelPolicy) Subscription() *v1.Subscription {
return p.subscription
}
func (p *LabelPolicy) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{model.IAMAggregate}
}

View File

@ -2,7 +2,9 @@ package handler
import (
"context"
"github.com/caos/logging"
"github.com/caos/zitadel/internal/domain"
caos_errs "github.com/caos/zitadel/internal/errors"
"github.com/caos/zitadel/internal/eventstore/v1"
@ -12,7 +14,7 @@ import (
"github.com/caos/zitadel/internal/iam/repository/eventsourcing"
iam_es_model "github.com/caos/zitadel/internal/iam/repository/eventsourcing/model"
iam_model "github.com/caos/zitadel/internal/iam/repository/view/model"
model "github.com/caos/zitadel/internal/org/repository/eventsourcing/model"
"github.com/caos/zitadel/internal/org/repository/eventsourcing/model"
)
const (
@ -47,6 +49,10 @@ func (p *LoginPolicy) ViewModel() string {
return loginPolicyTable
}
func (p *LoginPolicy) Subscription() *v1.Subscription {
return p.subscription
}
func (p *LoginPolicy) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{iam_es_model.IAMAggregate, model.OrgAggregate}
}

View File

@ -44,12 +44,16 @@ func (m *MailTemplate) ViewModel() string {
return mailTemplateTable
}
func (_ *MailTemplate) AggregateTypes() []es_models.AggregateType {
func (m *MailTemplate) Subscription() *v1.Subscription {
return m.subscription
}
func (m *MailTemplate) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{iam_es_model.IAMAggregate}
}
func (p *MailTemplate) CurrentSequence() (uint64, error) {
sequence, err := p.view.GetLatestMailTemplateSequence()
func (m *MailTemplate) CurrentSequence() (uint64, error) {
sequence, err := m.view.GetLatestMailTemplateSequence()
if err != nil {
return 0, err
}
@ -99,6 +103,6 @@ func (m *MailTemplate) OnError(event *es_models.Event, err error) error {
return spooler.HandleError(event, err, m.view.GetLatestMailTemplateFailedEvent, m.view.ProcessedMailTemplateFailedEvent, m.view.ProcessedMailTemplateSequence, m.errorCountUntilSkip)
}
func (o *MailTemplate) OnSuccess() error {
return spooler.HandleSuccess(o.view.UpdateMailTemplateSpoolerRunTimestamp)
func (m *MailTemplate) OnSuccess() error {
return spooler.HandleSuccess(m.view.UpdateMailTemplateSpoolerRunTimestamp)
}

View File

@ -2,6 +2,7 @@ package handler
import (
"github.com/caos/logging"
caos_errs "github.com/caos/zitadel/internal/errors"
"github.com/caos/zitadel/internal/eventstore/v1"
@ -45,6 +46,10 @@ func (m *MessageText) ViewModel() string {
return mailTextTable
}
func (m *MessageText) Subscription() *v1.Subscription {
return m.subscription
}
func (_ *MessageText) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{iam_es_model.IAMAggregate}
}

View File

@ -44,6 +44,10 @@ func (o *Org) ViewModel() string {
return orgTable
}
func (o *Org) Subscription() *v1.Subscription {
return o.subscription
}
func (o *Org) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{model.OrgAggregate}
}

View File

@ -2,6 +2,7 @@ package handler
import (
"github.com/caos/logging"
"github.com/caos/zitadel/internal/eventstore/v1"
es_models "github.com/caos/zitadel/internal/eventstore/v1/models"
"github.com/caos/zitadel/internal/eventstore/v1/query"
@ -43,6 +44,10 @@ func (p *OrgIAMPolicy) ViewModel() string {
return orgIAMPolicyTable
}
func (p *OrgIAMPolicy) Subscription() *v1.Subscription {
return p.subscription
}
func (p *OrgIAMPolicy) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{model.OrgAggregate, iam_es_model.IAMAggregate}
}

View File

@ -2,6 +2,7 @@ package handler
import (
"github.com/caos/logging"
"github.com/caos/zitadel/internal/eventstore/v1"
iam_es_model "github.com/caos/zitadel/internal/iam/repository/eventsourcing/model"
@ -44,6 +45,10 @@ func (p *PasswordAgePolicy) ViewModel() string {
return passwordAgePolicyTable
}
func (p *PasswordAgePolicy) Subscription() *v1.Subscription {
return p.subscription
}
func (p *PasswordAgePolicy) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{model.OrgAggregate, iam_es_model.IAMAggregate}
}

View File

@ -2,6 +2,7 @@ package handler
import (
"github.com/caos/logging"
"github.com/caos/zitadel/internal/eventstore/v1"
iam_es_model "github.com/caos/zitadel/internal/iam/repository/eventsourcing/model"
@ -44,6 +45,10 @@ func (p *PasswordComplexityPolicy) ViewModel() string {
return passwordComplexityPolicyTable
}
func (m *PasswordComplexityPolicy) Subscription() *v1.Subscription {
return m.subscription
}
func (p *PasswordComplexityPolicy) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{model.OrgAggregate, iam_es_model.IAMAggregate}
}

View File

@ -44,6 +44,10 @@ func (p *PasswordLockoutPolicy) ViewModel() string {
return passwordLockoutPolicyTable
}
func (m *PasswordLockoutPolicy) Subscription() *v1.Subscription {
return m.subscription
}
func (p *PasswordLockoutPolicy) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{model.OrgAggregate, iam_es_model.IAMAggregate}
}

View File

@ -44,6 +44,10 @@ func (p *PrivacyPolicy) ViewModel() string {
return privacyPolicyTable
}
func (p *PrivacyPolicy) Subscription() *v1.Subscription {
return p.subscription
}
func (p *PrivacyPolicy) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{model.OrgAggregate, iam_es_model.IAMAggregate}
}

View File

@ -63,6 +63,10 @@ func (m *Styling) ViewModel() string {
return stylingTable
}
func (m *Styling) Subscription() *v1.Subscription {
return m.subscription
}
func (_ *Styling) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{model.OrgAggregate, iam_es_model.IAMAggregate}
}

View File

@ -60,6 +60,10 @@ func (u *User) ViewModel() string {
return userTable
}
func (u *User) Subscription() *v1.Subscription {
return u.subscription
}
func (u *User) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{es_model.UserAggregate, org_es_model.OrgAggregate}
}

View File

@ -59,6 +59,10 @@ func (i *ExternalIDP) ViewModel() string {
return externalIDPTable
}
func (i *ExternalIDP) Subscription() *v1.Subscription {
return i.subscription
}
func (i *ExternalIDP) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{model.UserAggregate, iam_es_model.IAMAggregate, org_es_model.OrgAggregate}
}

View File

@ -8,6 +8,7 @@ import (
"github.com/caos/zitadel/internal/telemetry/metrics"
"github.com/caos/zitadel/internal/telemetry/metrics/otel"
view_model "github.com/caos/zitadel/internal/view/model"
sentryhttp "github.com/getsentry/sentry-go/http"
"go.opentelemetry.io/otel/api/metric"
"net/http"
@ -78,7 +79,8 @@ func (a *API) RegisterServer(ctx context.Context, server server.Server) {
}
func (a *API) RegisterHandler(prefix string, handler http.Handler) {
a.gatewayHandler.RegisterHandler(prefix, handler)
sentryHandler := sentryhttp.New(sentryhttp.Options{})
a.gatewayHandler.RegisterHandler(prefix, sentryHandler.Handle(handler))
}
func (a *API) Start(ctx context.Context) {

View File

@ -49,6 +49,10 @@ func (a *Application) ViewModel() string {
return applicationTable
}
func (a *Application) Subscription() *v1.Subscription {
return a.subscription
}
func (_ *Application) AggregateTypes() []models.AggregateType {
return []models.AggregateType{es_model.ProjectAggregate}
}

View File

@ -46,6 +46,10 @@ func (k *AuthNKeys) ViewModel() string {
return authnKeysTable
}
func (k *AuthNKeys) Subscription() *v1.Subscription {
return k.subscription
}
func (_ *AuthNKeys) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{user_model.UserAggregate, proj_model.ProjectAggregate}
}

View File

@ -44,6 +44,10 @@ func (m *CustomText) ViewModel() string {
return customTextTable
}
func (m *CustomText) Subscription() *v1.Subscription {
return m.subscription
}
func (_ *CustomText) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{model.OrgAggregate, iam_es_model.IAMAggregate}
}

View File

@ -51,6 +51,10 @@ func (p *Features) ViewModel() string {
return featuresTable
}
func (p *Features) Subscription() *v1.Subscription {
return p.subscription
}
func (p *Features) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{iam_es_model.IAMAggregate, org_es_model.OrgAggregate}
}

View File

@ -44,6 +44,10 @@ func (i *IDPConfig) ViewModel() string {
return idpConfigTable
}
func (i *IDPConfig) Subscription() *v1.Subscription {
return i.subscription
}
func (_ *IDPConfig) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{model.OrgAggregate, iam_es_model.IAMAggregate}
}

View File

@ -59,6 +59,10 @@ func (i *IDPProvider) ViewModel() string {
return idpProviderTable
}
func (i *IDPProvider) Subscription() *v1.Subscription {
return i.subscription
}
func (_ *IDPProvider) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{model.IAMAggregate, org_es_model.OrgAggregate}
}

View File

@ -49,6 +49,10 @@ func (k *Key) ViewModel() string {
return keyTable
}
func (k *Key) Subscription() *v1.Subscription {
return k.subscription
}
func (_ *Key) AggregateTypes() []models.AggregateType {
return []models.AggregateType{es_model.KeyPairAggregate}
}

View File

@ -46,6 +46,10 @@ func (m *LabelPolicy) ViewModel() string {
return labelPolicyTable
}
func (p *LabelPolicy) Subscription() *v1.Subscription {
return p.subscription
}
func (_ *LabelPolicy) AggregateTypes() []models.AggregateType {
return []models.AggregateType{model.OrgAggregate, iam_es_model.IAMAggregate}
}

View File

@ -48,6 +48,10 @@ func (p *LoginPolicy) ViewModel() string {
return loginPolicyTable
}
func (p *LoginPolicy) Subscription() *v1.Subscription {
return p.subscription
}
func (_ *LoginPolicy) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{model.OrgAggregate, iam_es_model.IAMAggregate}
}

View File

@ -44,6 +44,10 @@ func (o *Org) ViewModel() string {
return orgTable
}
func (o *Org) Subscription() *v1.Subscription {
return o.subscription
}
func (_ *Org) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{model.OrgAggregate}
}

View File

@ -44,6 +44,10 @@ func (p *OrgIAMPolicy) ViewModel() string {
return orgIAMPolicyTable
}
func (p *OrgIAMPolicy) Subscription() *v1.Subscription {
return p.subscription
}
func (_ *OrgIAMPolicy) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{org_es_model.OrgAggregate, iam_es_model.IAMAggregate}
}

View File

@ -44,6 +44,10 @@ func (p *PasswordComplexityPolicy) ViewModel() string {
return passwordComplexityPolicyTable
}
func (p *PasswordComplexityPolicy) Subscription() *v1.Subscription {
return p.subscription
}
func (_ *PasswordComplexityPolicy) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{org_es_model.OrgAggregate, iam_es_model.IAMAggregate}
}

View File

@ -44,6 +44,10 @@ func (p *PrivacyPolicy) ViewModel() string {
return privacyPolicyTable
}
func (p *PrivacyPolicy) Subscription() *v1.Subscription {
return p.subscription
}
func (p *PrivacyPolicy) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{model.OrgAggregate, iam_es_model.IAMAggregate}
}

View File

@ -46,6 +46,10 @@ func (p *ProjectRole) ViewModel() string {
return projectRoleTable
}
func (p *ProjectRole) Subscription() *v1.Subscription {
return p.subscription
}
func (_ *ProjectRole) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{model.ProjectAggregate}
}

View File

@ -51,6 +51,10 @@ func (t *RefreshToken) ViewModel() string {
return refreshTokenTable
}
func (t *RefreshToken) Subscription() *v1.Subscription {
return t.subscription
}
func (t *RefreshToken) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{user_es_model.UserAggregate, project_es_model.ProjectAggregate}
}

View File

@ -53,6 +53,10 @@ func (t *Token) ViewModel() string {
return tokenTable
}
func (t *Token) Subscription() *v1.Subscription {
return t.subscription
}
func (_ *Token) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{user_es_model.UserAggregate, project_es_model.ProjectAggregate}
}

View File

@ -57,6 +57,9 @@ func (u *User) ViewModel() string {
return userTable
}
func (u *User) Subscription() *v1.Subscription {
return u.subscription
}
func (_ *User) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{es_model.UserAggregate, org_es_model.OrgAggregate}
}

View File

@ -59,6 +59,10 @@ func (i *ExternalIDP) ViewModel() string {
return externalIDPTable
}
func (i *ExternalIDP) Subscription() *v1.Subscription {
return i.subscription
}
func (_ *ExternalIDP) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{model.UserAggregate, iam_es_model.IAMAggregate, org_es_model.OrgAggregate}
}

View File

@ -71,6 +71,10 @@ func (u *UserGrant) ViewModel() string {
return userGrantTable
}
func (u *UserGrant) Subscription() *v1.Subscription {
return u.subscription
}
func (_ *UserGrant) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{grant_es_model.UserGrantAggregate, iam_es_model.IAMAggregate, org_es_model.OrgAggregate, usr_es_model.UserAggregate, proj_es_model.ProjectAggregate}
}

View File

@ -57,6 +57,10 @@ func (m *UserMembership) ViewModel() string {
return userMembershipTable
}
func (m *UserMembership) Subscription() *v1.Subscription {
return m.subscription
}
func (_ *UserMembership) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{iam_es_model.IAMAggregate, org_es_model.OrgAggregate, proj_es_model.ProjectAggregate, model.UserAggregate}
}

View File

@ -47,6 +47,10 @@ func (u *UserSession) ViewModel() string {
return userSessionTable
}
func (u *UserSession) Subscription() *v1.Subscription {
return u.subscription
}
func (_ *UserSession) AggregateTypes() []models.AggregateType {
return []models.AggregateType{es_model.UserAggregate}
}

View File

@ -44,6 +44,10 @@ func (a *Application) ViewModel() string {
return applicationTable
}
func (p *Application) Subscription() *v1.Subscription {
return p.subscription
}
func (a *Application) AggregateTypes() []models.AggregateType {
return []models.AggregateType{es_model.ProjectAggregate}
}

View File

@ -51,6 +51,10 @@ func (p *Features) ViewModel() string {
return featuresTable
}
func (p *Features) Subscription() *v1.Subscription {
return p.subscription
}
func (p *Features) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{iam_es_model.IAMAggregate, org_es_model.OrgAggregate}
}

View File

@ -44,6 +44,10 @@ func (o *Org) ViewModel() string {
return orgTable
}
func (o *Org) Subscription() *v1.Subscription {
return o.subscription
}
func (_ *Org) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{model.OrgAggregate}
}

View File

@ -60,6 +60,10 @@ func (u *UserGrant) ViewModel() string {
return userGrantTable
}
func (u *UserGrant) Subscription() *v1.Subscription {
return u.subscription
}
func (_ *UserGrant) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{iam_es_model.IAMAggregate, org_es_model.OrgAggregate, proj_es_model.ProjectAggregate}
}

View File

@ -57,6 +57,10 @@ func (m *UserMembership) ViewModel() string {
return userMembershipTable
}
func (m *UserMembership) Subscription() *v1.Subscription {
return m.subscription
}
func (_ *UserMembership) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{iam_es_model.IAMAggregate, org_es_model.OrgAggregate, proj_es_model.ProjectAggregate, model.UserAggregate}
}

View File

@ -2,9 +2,12 @@ package query
import (
"context"
"github.com/caos/zitadel/internal/eventstore/v1"
"time"
"github.com/getsentry/sentry-go"
"github.com/caos/zitadel/internal/eventstore/v1"
"github.com/caos/logging"
"github.com/caos/zitadel/internal/eventstore/v1/models"
@ -27,9 +30,19 @@ type Handler interface {
AggregateTypes() []models.AggregateType
CurrentSequence() (uint64, error)
Eventstore() v1.Eventstore
Subscription() *v1.Subscription
}
func ReduceEvent(handler Handler, event *models.Event) {
defer func() {
err := recover()
if err != nil {
sentry.CurrentHub().Recover(err)
handler.Subscription().Unsubscribe()
}
}()
currentSequence, err := handler.CurrentSequence()
if err != nil {
logging.Log("HANDL-BmpkC").WithError(err).Warn("unable to get current sequence")

View File

@ -2,6 +2,9 @@ package spooler
import (
"context"
"github.com/getsentry/sentry-go"
"github.com/caos/zitadel/internal/eventstore/v1"
"strconv"
"sync"
@ -64,7 +67,14 @@ func requeueTask(task *spooledHandler, queue chan<- *spooledHandler) {
func (s *spooledHandler) load(workerID string) {
errs := make(chan error)
defer close(errs)
defer func() {
close(errs)
err := recover()
if err != nil {
sentry.CurrentHub().Recover(err)
}
}()
ctx, cancel := context.WithCancel(context.Background())
go s.awaitError(cancel, errs, workerID)
hasLocked := s.lock(ctx, errs, workerID)

View File

@ -42,6 +42,10 @@ func (h *testHandler) ViewModel() string {
return h.viewModel
}
func (h *testHandler) Subscription() *v1.Subscription {
return nil
}
func (h *testHandler) EventQuery() (*models.SearchQuery, error) {
if h.queryError != nil {
return nil, h.queryError

View File

@ -51,6 +51,10 @@ func (a *Application) ViewModel() string {
return applicationTable
}
func (a *Application) Subscription() *v1.Subscription {
return a.subscription
}
func (_ *Application) AggregateTypes() []models.AggregateType {
return []models.AggregateType{es_model.ProjectAggregate}
}

View File

@ -46,6 +46,10 @@ func (k *AuthNKeys) ViewModel() string {
return authnKeysTable
}
func (k *AuthNKeys) Subscription() *v1.Subscription {
return k.subscription
}
func (_ *AuthNKeys) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{user_model.UserAggregate, proj_model.ProjectAggregate}
}

View File

@ -44,6 +44,10 @@ func (m *CustomText) ViewModel() string {
return customTextTable
}
func (m *CustomText) Subscription() *v1.Subscription {
return m.subscription
}
func (_ *CustomText) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{model.OrgAggregate, iam_es_model.IAMAggregate}
}

View File

@ -51,6 +51,10 @@ func (p *Features) ViewModel() string {
return featuresTable
}
func (p *Features) Subscription() *v1.Subscription {
return p.subscription
}
func (p *Features) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{iam_es_model.IAMAggregate, org_es_model.OrgAggregate}
}

View File

@ -45,6 +45,10 @@ func (m *IDPConfig) ViewModel() string {
return idpConfigTable
}
func (m *IDPConfig) Subscription() *v1.Subscription {
return m.subscription
}
func (_ *IDPConfig) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{model.OrgAggregate, iam_es_model.IAMAggregate}
}

View File

@ -57,6 +57,10 @@ func (m *IDPProvider) ViewModel() string {
return idpProviderTable
}
func (p *IDPProvider) Subscription() *v1.Subscription {
return p.subscription
}
func (_ *IDPProvider) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{model.IAMAggregate, org_es_model.OrgAggregate}
}

View File

@ -50,6 +50,10 @@ func (m *LabelPolicy) ViewModel() string {
return labelPolicyTable
}
func (p *LabelPolicy) Subscription() *v1.Subscription {
return p.subscription
}
func (_ *LabelPolicy) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{model.OrgAggregate, iam_es_model.IAMAggregate}
}

View File

@ -47,6 +47,10 @@ func (m *LoginPolicy) ViewModel() string {
return loginPolicyTable
}
func (p *LoginPolicy) Subscription() *v1.Subscription {
return p.subscription
}
func (_ *LoginPolicy) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{model.OrgAggregate, iam_es_model.IAMAggregate}
}

View File

@ -44,6 +44,10 @@ func (m *MailTemplate) ViewModel() string {
return mailTemplateTable
}
func (m *MailTemplate) Subscription() *v1.Subscription {
return m.subscription
}
func (_ *MailTemplate) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{model.OrgAggregate, iam_es_model.IAMAggregate}
}

View File

@ -44,6 +44,10 @@ func (m *MessageText) ViewModel() string {
return messageTextTable
}
func (m *MessageText) Subscription() *v1.Subscription {
return m.subscription
}
func (_ *MessageText) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{model.OrgAggregate, iam_es_model.IAMAggregate}
}

View File

@ -44,6 +44,10 @@ func (o *Org) ViewModel() string {
return orgTable
}
func (o *Org) Subscription() *v1.Subscription {
return o.subscription
}
func (_ *Org) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{model.OrgAggregate}
}

View File

@ -42,6 +42,10 @@ func (d *OrgDomain) ViewModel() string {
return orgDomainTable
}
func (d *OrgDomain) Subscription() *v1.Subscription {
return d.subscription
}
func (_ *OrgDomain) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{model.OrgAggregate}
}

View File

@ -43,6 +43,10 @@ func (m *OrgIAMPolicy) ViewModel() string {
return orgIAMPolicyTable
}
func (m *OrgIAMPolicy) Subscription() *v1.Subscription {
return m.subscription
}
func (_ *OrgIAMPolicy) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{model.OrgAggregate, iam_es_model.IAMAggregate}
}

View File

@ -58,6 +58,10 @@ func (m *OrgMember) ViewModel() string {
return orgMemberTable
}
func (m *OrgMember) Subscription() *v1.Subscription {
return m.subscription
}
func (_ *OrgMember) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{model.OrgAggregate, usr_es_model.UserAggregate}
}

View File

@ -43,6 +43,10 @@ func (m *PasswordAgePolicy) ViewModel() string {
return passwordAgePolicyTable
}
func (p *PasswordAgePolicy) Subscription() *v1.Subscription {
return p.subscription
}
func (_ *PasswordAgePolicy) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{model.OrgAggregate, iam_es_model.IAMAggregate}
}

View File

@ -43,6 +43,10 @@ func (p *PasswordComplexityPolicy) ViewModel() string {
return passwordComplexityPolicyTable
}
func (p *PasswordComplexityPolicy) Subscription() *v1.Subscription {
return p.subscription
}
func (_ *PasswordComplexityPolicy) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{model.OrgAggregate, iam_es_model.IAMAggregate}
}

View File

@ -44,6 +44,10 @@ func (p *PasswordLockoutPolicy) ViewModel() string {
return passwordLockoutPolicyTable
}
func (p *PasswordLockoutPolicy) Subscription() *v1.Subscription {
return p.subscription
}
func (_ *PasswordLockoutPolicy) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{model.OrgAggregate, iam_es_model.IAMAggregate}
}

View File

@ -44,6 +44,10 @@ func (p *PrivacyPolicy) ViewModel() string {
return privacyPolicyTable
}
func (p *PrivacyPolicy) Subscription() *v1.Subscription {
return p.subscription
}
func (p *PrivacyPolicy) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{model.OrgAggregate, iam_es_model.IAMAggregate}
}

View File

@ -44,6 +44,10 @@ func (p *Project) ViewModel() string {
return projectTable
}
func (p *Project) Subscription() *v1.Subscription {
return p.subscription
}
func (_ *Project) AggregateTypes() []models.AggregateType {
return []models.AggregateType{es_model.ProjectAggregate}
}

View File

@ -54,6 +54,10 @@ func (p *ProjectGrant) ViewModel() string {
return grantedProjectTable
}
func (p *ProjectGrant) Subscription() *v1.Subscription {
return p.subscription
}
func (_ *ProjectGrant) AggregateTypes() []models.AggregateType {
return []models.AggregateType{es_model.ProjectAggregate}
}

View File

@ -61,6 +61,10 @@ func (p *ProjectGrantMember) ViewModel() string {
return projectGrantMemberTable
}
func (p *ProjectGrantMember) Subscription() *v1.Subscription {
return p.subscription
}
func (_ *ProjectGrantMember) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{proj_es_model.ProjectAggregate, usr_es_model.UserAggregate}
}

View File

@ -61,6 +61,10 @@ func (p *ProjectMember) ViewModel() string {
return projectMemberTable
}
func (p *ProjectMember) Subscription() *v1.Subscription {
return p.subscription
}
func (_ *ProjectMember) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{proj_es_model.ProjectAggregate, usr_es_model.UserAggregate}
}

View File

@ -46,6 +46,10 @@ func (p *ProjectRole) ViewModel() string {
return projectRoleTable
}
func (p *ProjectRole) Subscription() *v1.Subscription {
return p.subscription
}
func (_ *ProjectRole) AggregateTypes() []models.AggregateType {
return []models.AggregateType{es_model.ProjectAggregate}
}

View File

@ -57,6 +57,10 @@ func (u *User) ViewModel() string {
return userTable
}
func (u *User) Subscription() *v1.Subscription {
return u.subscription
}
func (_ *User) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{es_model.UserAggregate, org_es_model.OrgAggregate}
}

View File

@ -61,6 +61,10 @@ func (i *ExternalIDP) ViewModel() string {
return externalIDPTable
}
func (i *ExternalIDP) Subscription() *v1.Subscription {
return i.subscription
}
func (_ *ExternalIDP) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{model.UserAggregate, iam_es_model.IAMAggregate, org_es_model.OrgAggregate}
}

View File

@ -58,6 +58,10 @@ func (u *UserGrant) ViewModel() string {
return userGrantTable
}
func (u *UserGrant) Subscription() *v1.Subscription {
return u.subscription
}
func (_ *UserGrant) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{grant_es_model.UserGrantAggregate, usr_es_model.UserAggregate, proj_es_model.ProjectAggregate, org_es_model.OrgAggregate}
}

View File

@ -56,6 +56,10 @@ func (m *UserMembership) ViewModel() string {
return userMembershipTable
}
func (m *UserMembership) Subscription() *v1.Subscription {
return m.subscription
}
func (_ *UserMembership) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{iam_es_model.IAMAggregate, org_es_model.OrgAggregate, proj_es_model.ProjectAggregate, model.UserAggregate}
}

View File

@ -92,6 +92,10 @@ func (n *Notification) ViewModel() string {
return notificationTable
}
func (n *Notification) Subscription() *v1.Subscription {
return n.subscription
}
func (_ *Notification) AggregateTypes() []models.AggregateType {
return []models.AggregateType{es_model.UserAggregate}
}

View File

@ -60,6 +60,10 @@ func (p *NotifyUser) ViewModel() string {
return userTable
}
func (p *NotifyUser) Subscription() *v1.Subscription {
return p.subscription
}
func (_ *NotifyUser) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{es_model.UserAggregate, org_es_model.OrgAggregate}
}

View File

@ -4,6 +4,8 @@ import (
"context"
"net/http"
sentryhttp "github.com/getsentry/sentry-go/http"
http_util "github.com/caos/zitadel/internal/api/http"
"github.com/caos/zitadel/internal/ui/console"
"github.com/caos/zitadel/internal/ui/login"
@ -32,7 +34,8 @@ func Create(config Config) *UI {
}
func (u *UI) RegisterHandler(prefix string, handler http.Handler) {
http_util.RegisterHandler(u.mux, prefix, handler)
sentryHandler := sentryhttp.New(sentryhttp.Options{})
http_util.RegisterHandler(u.mux, prefix, sentryHandler.Handle(handler))
}
func (u *UI) Start(ctx context.Context) {