feat(admin-api): list events (#4989)

* docs: update cockroachdb version to 22.2
* feat(adminAPI): ListEventTypes returns the list of event types ZITADEL implements
* feat(adminAPI): ListAggregateTypes returns the list of aggregate types ZITADEL implements
* feat(adminAPI): ListEvents allows `IAM_OWNERS` to search for events
This commit is contained in:
Silvan 2023-01-16 12:30:03 +01:00 committed by GitHub
parent 74c1c39207
commit 1bf1f335dc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
30 changed files with 888 additions and 360 deletions

View File

@ -110,7 +110,7 @@ We add the label "good first issue" for problems we think are a good starting po
### Backend / Login ### Backend / Login
By executing the commands from this section, you run everything you need to develop the ZITADEL backend locally. By executing the commands from this section, you run everything you need to develop the ZITADEL backend locally.
Using [Docker Compose](https://docs.docker.com/compose/), you run a [CockroachDB](https://www.cockroachlabs.com/docs/v22.1/start-a-local-cluster-in-docker-mac.html) on your local machine. Using [Docker Compose](https://docs.docker.com/compose/), you run a [CockroachDB](https://www.cockroachlabs.com/docs/stable/start-a-local-cluster-in-docker-mac.html) on your local machine.
With [goreleaser](https://opencollective.com/goreleaser), you build a debuggable ZITADEL binary and run it using [delve](https://github.com/go-delve/delve). With [goreleaser](https://opencollective.com/goreleaser), you build a debuggable ZITADEL binary and run it using [delve](https://github.com/go-delve/delve).
Then, you test your changes via the console your binary is serving at http://<span because="breaks the link"></span>localhost:8080 and by verifying the database. Then, you test your changes via the console your binary is serving at http://<span because="breaks the link"></span>localhost:8080 and by verifying the database.
Once you are happy with your changes, you run end-to-end tests and tear everything down. Once you are happy with your changes, you run end-to-end tests and tear everything down.
@ -175,7 +175,7 @@ docker compose --file ./e2e/docker-compose.yaml down
### Console ### Console
By executing the commands from this section, you run everything you need to develop the console locally. By executing the commands from this section, you run everything you need to develop the console locally.
Using [Docker Compose](https://docs.docker.com/compose/), you run [CockroachDB](https://www.cockroachlabs.com/docs/v22.1/start-a-local-cluster-in-docker-mac.html) and the [latest release of ZITADEL](https://github.com/zitadel/zitadel/releases/latest) on your local machine. Using [Docker Compose](https://docs.docker.com/compose/), you run [CockroachDB](https://www.cockroachlabs.com/docs/stable/start-a-local-cluster-in-docker-mac.html) and the [latest release of ZITADEL](https://github.com/zitadel/zitadel/releases/latest) on your local machine.
You use the ZITADEL container as backend for your console. You use the ZITADEL container as backend for your console.
The console is run in your [Node](https://nodejs.org/en/about/) environment using [a local development server for Angular](https://angular.io/cli/serve#ng-serve), so you have fast feedback about your changes. The console is run in your [Node](https://nodejs.org/en/about/) environment using [a local development server for Angular](https://angular.io/cli/serve#ng-serve), so you have fast feedback about your changes.

View File

@ -87,7 +87,7 @@ COPY --from=go-stub /go/src/github.com/zitadel/zitadel/internal/api/assets/route
FROM go-base as go-test FROM go-base as go-test
ARG COCKROACH_BINARY=/usr/local/bin/cockroach ARG COCKROACH_BINARY=/usr/local/bin/cockroach
ARG COCKROACH_VERSION=v22.1.11 ARG COCKROACH_VERSION=v22.2.2
RUN apt install openssl tzdata tar RUN apt install openssl tzdata tar
# cockroach binary used to backup database # cockroach binary used to backup database

View File

@ -126,6 +126,10 @@ protoc \
-I=/proto/include \ -I=/proto/include \
--doc_out=${DOCS_PATH} --doc_opt=${PROTO_PATH}/docs/zitadel-md.tmpl,change.md \ --doc_out=${DOCS_PATH} --doc_opt=${PROTO_PATH}/docs/zitadel-md.tmpl,change.md \
${PROTO_PATH}/change.proto ${PROTO_PATH}/change.proto
protoc \
-I=/proto/include \
--doc_out=${DOCS_PATH} --doc_opt=${PROTO_PATH}/docs/zitadel-md.tmpl,event.md \
${PROTO_PATH}/event.proto
protoc \ protoc \
-I=/proto/include \ -I=/proto/include \
--doc_out=${DOCS_PATH} --doc_opt=${PROTO_PATH}/docs/zitadel-md.tmpl,idp.md \ --doc_out=${DOCS_PATH} --doc_opt=${PROTO_PATH}/docs/zitadel-md.tmpl,idp.md \

View File

@ -624,6 +624,7 @@ InternalAuthZ:
- "project.grant.member.read" - "project.grant.member.read"
- "project.grant.member.write" - "project.grant.member.write"
- "project.grant.member.delete" - "project.grant.member.delete"
- "events.read"
- Role: "IAM_OWNER_VIEWER" - Role: "IAM_OWNER_VIEWER"
Permissions: Permissions:
- "iam.read" - "iam.read"
@ -648,6 +649,7 @@ InternalAuthZ:
- "project.app.read" - "project.app.read"
- "project.grant.read" - "project.grant.read"
- "project.grant.member.read" - "project.grant.member.read"
- "events.read"
- Role: "IAM_ORG_MANAGER" - Role: "IAM_ORG_MANAGER"
Permissions: Permissions:
- "org.read" - "org.read"

View File

@ -98,7 +98,7 @@ spec:
topologyKey: kubernetes.io/hostname topologyKey: kubernetes.io/hostname
containers: containers:
- name: cockroachdb - name: cockroachdb
image: cockroachdb/cockroach:v22.1.2 image: cockroachdb/cockroach:v22.2.2
imagePullPolicy: IfNotPresent imagePullPolicy: IfNotPresent
# TODO: Change these to appropriate values for the hardware that you're running. You can see # TODO: Change these to appropriate values for the hardware that you're running. You can see
# the resources that can be allocated on each of your Kubernetes nodes by running: # the resources that can be allocated on each of your Kubernetes nodes by running:

View File

@ -1566,6 +1566,42 @@ Exports data from instance
POST: /export POST: /export
### ListEventTypes
> **rpc** ListEventTypes([ListEventTypesRequest](#listeventtypesrequest))
[ListEventTypesResponse](#listeventtypesresponse)
POST: /events/types/_search
### ListEvents
> **rpc** ListEvents([ListEventsRequest](#listeventsrequest))
[ListEventsResponse](#listeventsresponse)
POST: /events/_search
### ListAggregateTypes
> **rpc** ListAggregateTypes([ListAggregateTypesRequest](#listaggregatetypesrequest))
[ListAggregateTypesResponse](#listaggregatetypesresponse)
POST: /aggregates/types/_search
@ -3072,6 +3108,70 @@ at least one argument has to be provided
### ListAggregateTypesRequest
### ListAggregateTypesResponse
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| aggregate_types | repeated string | - | |
### ListEventTypesRequest
### ListEventTypesResponse
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| event_types | repeated string | - | |
### ListEventsRequest
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| sequence | uint64 | sequence represents the order of events. It's always upcounting if asc is false sequence is used as less than filter if asc is true sequence is used as greater than filter if sequence is 0 the field is ignored | |
| limit | uint32 | - | |
| asc | bool | - | |
| editor_user_id | string | - | |
| event_types | repeated string | the types are or filtered and must match the type exatly | |
| aggregate_id | string | - | |
| aggregate_type | string | - | |
| resource_owner | string | - | |
| creation_date | google.protobuf.Timestamp | if asc is false creation_date is used as less than filter if asc is true creation_date is used as greater than filter if creation_date is not set the field is ignored | |
### ListEventsResponse
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| events | repeated zitadel.event.v1.Event | - | |
### ListFailedEventsRequest ### ListFailedEventsRequest
This is an empty request This is an empty request

View File

@ -0,0 +1,55 @@
---
title: zitadel/event.proto
---
> This document reflects the state from API 1.0 (available from 20.04.2021)
## Messages
### Aggregate
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| id | string | - | |
| type | string | - | |
| resource_owner | string | - | |
### Editor
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| user_id | string | - | |
| display_name | string | - | |
| service | string | - | |
### Event
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| editor | Editor | - | |
| aggregate | Aggregate | - | |
| sequence | uint64 | - | |
| creation_date | google.protobuf.Timestamp | The timestamp the event occurred | |
| payload | google.protobuf.Struct | - | |
| type | string | - | |

View File

@ -26,7 +26,7 @@ services:
restart: 'always' restart: 'always'
networks: networks:
- 'zitadel' - 'zitadel'
image: 'cockroachdb/cockroach:v22.1.3' image: 'cockroachdb/cockroach:v22.2.2'
command: 'start-single-node --insecure' command: 'start-single-node --insecure'
healthcheck: healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/health?ready=1"] test: ["CMD", "curl", "-f", "http://localhost:8080/health?ready=1"]

View File

@ -20,7 +20,7 @@ services:
restart: 'always' restart: 'always'
networks: networks:
- 'zitadel' - 'zitadel'
image: 'cockroachdb/cockroach:v22.1.3' image: 'cockroachdb/cockroach:v22.2.2'
command: 'start-single-node --insecure' command: 'start-single-node --insecure'
healthcheck: healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/health?ready=1"] test: ["CMD", "curl", "-f", "http://localhost:8080/health?ready=1"]

View File

@ -8,8 +8,8 @@ import Next from './_next.mdx'
## Install CockroachDB ## Install CockroachDB
Download a `cockroach` binary as described [in the CockroachDB docs](https://www.cockroachlabs.com/docs/v22.1/install-cockroachdb). Download a `cockroach` binary as described [in the CockroachDB docs](https://www.cockroachlabs.com/docs/stable/install-cockroachdb).
ZITADEL is tested against CockroachDB v22.1.0 and Ubuntu 20.04. ZITADEL is tested against CockroachDB v22.2.2 and Ubuntu 20.04.
## Run CockroachDB ## Run CockroachDB

View File

@ -28,7 +28,7 @@ services:
- 'zitadel-certs:/crdb-certs:ro' - 'zitadel-certs:/crdb-certs:ro'
certs: certs:
image: 'cockroachdb/cockroach:v22.1.0' image: 'cockroachdb/cockroach:v22.2.2'
entrypoint: [ '/bin/bash', '-c' ] entrypoint: [ '/bin/bash', '-c' ]
command: [ 'cp /certs/* /zitadel-certs/ && cockroach cert create-client --overwrite --certs-dir /zitadel-certs/ --ca-key /zitadel-certs/ca.key zitadel_user && chown 1000:1000 /zitadel-certs/*' ] command: [ 'cp /certs/* /zitadel-certs/ && cockroach cert create-client --overwrite --certs-dir /zitadel-certs/ --ca-key /zitadel-certs/ca.key zitadel_user && chown 1000:1000 /zitadel-certs/*' ]
volumes: volumes:
@ -42,7 +42,7 @@ services:
restart: 'always' restart: 'always'
networks: networks:
- 'zitadel' - 'zitadel'
image: 'cockroachdb/cockroach:v22.1.0' image: 'cockroachdb/cockroach:v22.2.2'
command: 'start-single-node --advertise-addr my-cockroach-db' command: 'start-single-node --advertise-addr my-cockroach-db'
healthcheck: healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/health?ready=1"] test: ["CMD", "curl", "-f", "http://localhost:8080/health?ready=1"]

View File

@ -8,8 +8,8 @@ import Next from './_next.mdx'
## Install CockroachDB ## Install CockroachDB
Download a `cockroach` binary as described [in the CockroachDB docs](https://www.cockroachlabs.com/docs/v22.1/install-cockroachdb). Download a `cockroach` binary as described [in the CockroachDB docs](https://www.cockroachlabs.com/docs/stable/install-cockroachdb).
ZITADEL is tested against CockroachDB v22.1.0. ZITADEL is tested against CockroachDB v22.2.2.
## Run CockroachDB ## Run CockroachDB

View File

@ -19,7 +19,7 @@ services:
- "zitadel-certs:/crdb-certs:ro" - "zitadel-certs:/crdb-certs:ro"
certs: certs:
image: "cockroachdb/cockroach:v22.1.0" image: "cockroachdb/cockroach:v22.2.2"
entrypoint: ["/bin/bash", "-c"] entrypoint: ["/bin/bash", "-c"]
command: command:
[ [
@ -36,7 +36,7 @@ services:
restart: "always" restart: "always"
networks: networks:
- "zitadel" - "zitadel"
image: "cockroachdb/cockroach:v22.1.0" image: "cockroachdb/cockroach:v22.2.2"
command: "start-single-node --advertise-addr my-cockroach-db" command: "start-single-node --advertise-addr my-cockroach-db"
healthcheck: healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/health?ready=1"] test: ["CMD", "curl", "-f", "http://localhost:8080/health?ready=1"]

View File

@ -19,7 +19,7 @@ services:
db: db:
restart: 'always' restart: 'always'
image: 'cockroachdb/cockroach:v22.1.0' image: 'cockroachdb/cockroach:v22.2.2'
command: 'start-single-node --insecure --http-addr :9090' command: 'start-single-node --insecure --http-addr :9090'
healthcheck: healthcheck:
test: ['CMD', 'curl', '-f', 'http://localhost:9090/health?ready=1'] test: ['CMD', 'curl', '-f', 'http://localhost:9090/health?ready=1']

View File

@ -0,0 +1,107 @@
package admin
import (
"context"
"google.golang.org/protobuf/types/known/structpb"
"google.golang.org/protobuf/types/known/timestamppb"
"github.com/zitadel/zitadel/internal/api/authz"
"github.com/zitadel/zitadel/internal/errors"
"github.com/zitadel/zitadel/internal/eventstore"
"github.com/zitadel/zitadel/internal/query"
admin_pb "github.com/zitadel/zitadel/pkg/grpc/admin"
event_pb "github.com/zitadel/zitadel/pkg/grpc/event"
)
func (s *Server) ListEvents(ctx context.Context, in *admin_pb.ListEventsRequest) (*admin_pb.ListEventsResponse, error) {
filter, err := eventRequestToFilter(ctx, in)
if err != nil {
return nil, err
}
events, err := s.query.SearchEvents(ctx, filter)
if err != nil {
return nil, err
}
return convertEventsToResponse(events)
}
func (s *Server) ListEventTypes(ctx context.Context, in *admin_pb.ListEventTypesRequest) (*admin_pb.ListEventTypesResponse, error) {
return &admin_pb.ListEventTypesResponse{
EventTypes: s.query.SearchEventTypes(ctx),
}, nil
}
func (s *Server) ListAggregateTypes(ctx context.Context, in *admin_pb.ListAggregateTypesRequest) (*admin_pb.ListAggregateTypesResponse, error) {
return &admin_pb.ListAggregateTypesResponse{
AggregateTypes: s.query.SearchAggregateTypes(ctx),
}, nil
}
func eventRequestToFilter(ctx context.Context, req *admin_pb.ListEventsRequest) (*eventstore.SearchQueryBuilder, error) {
eventTypes := make([]eventstore.EventType, len(req.EventTypes))
for i, eventType := range req.EventTypes {
eventTypes[i] = eventstore.EventType(eventType)
}
builder := eventstore.NewSearchQueryBuilder(eventstore.ColumnsEvent).
OrderDesc().
InstanceID(authz.GetInstance(ctx).InstanceID()).
Limit(uint64(req.Limit)).
ResourceOwner(req.ResourceOwner).
EditorUser(req.EditorUserId).
AddQuery().
AggregateIDs(req.AggregateId).
AggregateTypes(eventstore.AggregateType(req.AggregateType)).
EventTypes(eventTypes...).
CreationDateAfter(req.CreationDate.AsTime()).
SequenceGreater(req.Sequence).
Builder()
if req.Asc {
builder.OrderAsc()
}
return builder, nil
}
func convertEventsToResponse(events []*query.Event) (response *admin_pb.ListEventsResponse, err error) {
response = &admin_pb.ListEventsResponse{
Events: make([]*event_pb.Event, len(events)),
}
for i, event := range events {
response.Events[i], err = convertEvent(event)
if err != nil {
return nil, err
}
}
return response, nil
}
func convertEvent(event *query.Event) (*event_pb.Event, error) {
var payload *structpb.Struct
if len(event.Payload) > 0 {
payload = new(structpb.Struct)
if err := payload.UnmarshalJSON(event.Payload); err != nil {
return nil, errors.ThrowInternal(err, "ADMIN-eaimD", "Errors.Internal")
}
}
return &event_pb.Event{
Editor: &event_pb.Editor{
UserId: event.Editor.ID,
DisplayName: event.Editor.DisplayName,
Service: event.Editor.Service,
},
Aggregate: &event_pb.Aggregate{
Id: event.Aggregate.ID,
Type: string(event.Aggregate.Type),
ResourceOwner: event.Aggregate.ResourceOwner,
},
Sequence: event.Sequence,
CreationDate: timestamppb.New(event.CreationDate),
Payload: payload,
Type: event.Type,
}, nil
}

View File

@ -5,6 +5,7 @@ import (
"database/sql" "database/sql"
"encoding/json" "encoding/json"
"reflect" "reflect"
"sort"
"sync" "sync"
"time" "time"
@ -19,6 +20,8 @@ type Eventstore struct {
repo repository.Repository repo repository.Repository
interceptorMutex sync.Mutex interceptorMutex sync.Mutex
eventInterceptors map[EventType]eventTypeInterceptors eventInterceptors map[EventType]eventTypeInterceptors
eventTypes []string
aggregateTypes []string
PushTimeout time.Duration PushTimeout time.Duration
} }
@ -73,6 +76,14 @@ func (es *Eventstore) NewInstance(ctx context.Context, instanceID string) error
return es.repo.CreateInstance(ctx, instanceID) return es.repo.CreateInstance(ctx, instanceID)
} }
func (es *Eventstore) EventTypes() []string {
return es.eventTypes
}
func (es *Eventstore) AggregateTypes() []string {
return es.aggregateTypes
}
func commandsToRepository(instanceID string, cmds []Command) (events []*repository.Event, constraints []*repository.UniqueConstraint, err error) { func commandsToRepository(instanceID string, cmds []Command) (events []*repository.Event, constraints []*repository.UniqueConstraint, err error) {
events = make([]*repository.Event, len(cmds)) events = make([]*repository.Event, len(cmds))
for i, cmd := range cmds { for i, cmd := range cmds {
@ -224,13 +235,16 @@ func (es *Eventstore) FilterToQueryReducer(ctx context.Context, r QueryReducer)
} }
// RegisterFilterEventMapper registers a function for mapping an eventstore event to an event // RegisterFilterEventMapper registers a function for mapping an eventstore event to an event
func (es *Eventstore) RegisterFilterEventMapper(eventType EventType, mapper func(*repository.Event) (Event, error)) *Eventstore { func (es *Eventstore) RegisterFilterEventMapper(aggregateType AggregateType, eventType EventType, mapper func(*repository.Event) (Event, error)) *Eventstore {
if mapper == nil || eventType == "" { if mapper == nil || eventType == "" {
return es return es
} }
es.interceptorMutex.Lock() es.interceptorMutex.Lock()
defer es.interceptorMutex.Unlock() defer es.interceptorMutex.Unlock()
es.appendEventType(eventType)
es.appendAggregateType(aggregateType)
interceptor := es.eventInterceptors[eventType] interceptor := es.eventInterceptors[eventType]
interceptor.eventMapper = mapper interceptor.eventMapper = mapper
es.eventInterceptors[eventType] = interceptor es.eventInterceptors[eventType] = interceptor
@ -238,6 +252,22 @@ func (es *Eventstore) RegisterFilterEventMapper(eventType EventType, mapper func
return es return es
} }
func (es *Eventstore) appendEventType(typ EventType) {
i := sort.SearchStrings(es.eventTypes, string(typ))
if i > 0 && es.eventTypes[i-1] == string(typ) {
return
}
es.eventTypes = append(es.eventTypes[:i], append([]string{string(typ)}, es.eventTypes[i:]...)...)
}
func (es *Eventstore) appendAggregateType(typ AggregateType) {
i := sort.SearchStrings(es.aggregateTypes, string(typ))
if len(es.aggregateTypes) > i && es.aggregateTypes[i] == string(typ) {
return
}
es.aggregateTypes = append(es.aggregateTypes[:i], append([]string{string(typ)}, es.aggregateTypes[i:]...)...)
}
func EventData(event Command) ([]byte, error) { func EventData(event Command) ([]byte, error) {
switch data := event.Data().(type) { switch data := event.Data().(type) {
case nil: case nil:

View File

@ -156,7 +156,7 @@ func Test_eventstore_RegisterFilterEventMapper(t *testing.T) {
es := &Eventstore{ es := &Eventstore{
eventInterceptors: tt.fields.eventMapper, eventInterceptors: tt.fields.eventMapper,
} }
es = es.RegisterFilterEventMapper(tt.args.eventType, tt.args.mapper) es = es.RegisterFilterEventMapper("test", tt.args.eventType, tt.args.mapper)
if len(es.eventInterceptors) != tt.res.mapperCount { if len(es.eventInterceptors) != tt.res.mapperCount {
t.Errorf("unexpected mapper count: want %d, got %d", tt.res.mapperCount, len(es.eventInterceptors)) t.Errorf("unexpected mapper count: want %d, got %d", tt.res.mapperCount, len(es.eventInterceptors))
return return
@ -990,7 +990,7 @@ func TestEventstore_Push(t *testing.T) {
eventInterceptors: map[EventType]eventTypeInterceptors{}, eventInterceptors: map[EventType]eventTypeInterceptors{},
} }
for eventType, mapper := range tt.fields.eventMapper { for eventType, mapper := range tt.fields.eventMapper {
es = es.RegisterFilterEventMapper(eventType, mapper) es = es.RegisterFilterEventMapper("test", eventType, mapper)
} }
if len(es.eventInterceptors) != len(tt.fields.eventMapper) { if len(es.eventInterceptors) != len(tt.fields.eventMapper) {
t.Errorf("register event mapper failed expected mapper amount: %d, got: %d", len(tt.fields.eventMapper), len(es.eventInterceptors)) t.Errorf("register event mapper failed expected mapper amount: %d, got: %d", len(tt.fields.eventMapper), len(es.eventInterceptors))
@ -1130,7 +1130,7 @@ func TestEventstore_FilterEvents(t *testing.T) {
} }
for eventType, mapper := range tt.fields.eventMapper { for eventType, mapper := range tt.fields.eventMapper {
es = es.RegisterFilterEventMapper(eventType, mapper) es = es.RegisterFilterEventMapper("test", eventType, mapper)
} }
if len(es.eventInterceptors) != len(tt.fields.eventMapper) { if len(es.eventInterceptors) != len(tt.fields.eventMapper) {
t.Errorf("register event mapper failed expected mapper amount: %d, got: %d", len(tt.fields.eventMapper), len(es.eventInterceptors)) t.Errorf("register event mapper failed expected mapper amount: %d, got: %d", len(tt.fields.eventMapper), len(es.eventInterceptors))
@ -1448,7 +1448,7 @@ func TestEventstore_FilterToReducer(t *testing.T) {
eventInterceptors: map[EventType]eventTypeInterceptors{}, eventInterceptors: map[EventType]eventTypeInterceptors{},
} }
for eventType, mapper := range tt.fields.eventMapper { for eventType, mapper := range tt.fields.eventMapper {
es = es.RegisterFilterEventMapper(eventType, mapper) es = es.RegisterFilterEventMapper("test", eventType, mapper)
} }
if len(es.eventInterceptors) != len(tt.fields.eventMapper) { if len(es.eventInterceptors) != len(tt.fields.eventMapper) {
t.Errorf("register event mapper failed expected mapper amount: %d, got: %d", len(tt.fields.eventMapper), len(es.eventInterceptors)) t.Errorf("register event mapper failed expected mapper amount: %d, got: %d", len(tt.fields.eventMapper), len(es.eventInterceptors))
@ -1589,7 +1589,7 @@ func TestEventstore_mapEvents(t *testing.T) {
eventInterceptors: map[EventType]eventTypeInterceptors{}, eventInterceptors: map[EventType]eventTypeInterceptors{},
} }
for eventType, mapper := range tt.fields.eventMapper { for eventType, mapper := range tt.fields.eventMapper {
es = es.RegisterFilterEventMapper(eventType, mapper) es = es.RegisterFilterEventMapper("test", eventType, mapper)
} }
if len(es.eventInterceptors) != len(tt.fields.eventMapper) { if len(es.eventInterceptors) != len(tt.fields.eventMapper) {
t.Errorf("register event mapper failed expected mapper amount: %d, got: %d", len(tt.fields.eventMapper), len(es.eventInterceptors)) t.Errorf("register event mapper failed expected mapper amount: %d, got: %d", len(tt.fields.eventMapper), len(es.eventInterceptors))

View File

@ -43,8 +43,8 @@ func NewUserAddedEvent(id string, firstName string) *UserAddedEvent {
} }
} }
func UserAddedEventMapper() (eventstore.EventType, func(*repository.Event) (eventstore.Event, error)) { func UserAddedEventMapper() (eventstore.AggregateType, eventstore.EventType, func(*repository.Event) (eventstore.Event, error)) {
return "user.added", func(event *repository.Event) (eventstore.Event, error) { return "user", "user.added", func(event *repository.Event) (eventstore.Event, error) {
e := &UserAddedEvent{ e := &UserAddedEvent{
BaseEvent: *eventstore.BaseEventFromRepo(event), BaseEvent: *eventstore.BaseEventFromRepo(event),
} }
@ -88,8 +88,8 @@ func NewUserFirstNameChangedEvent(id, firstName string) *UserFirstNameChangedEve
} }
} }
func UserFirstNameChangedMapper() (eventstore.EventType, func(*repository.Event) (eventstore.Event, error)) { func UserFirstNameChangedMapper() (eventstore.AggregateType, eventstore.EventType, func(*repository.Event) (eventstore.Event, error)) {
return "user.firstName.changed", func(event *repository.Event) (eventstore.Event, error) { return "user", "user.firstName.changed", func(event *repository.Event) (eventstore.Event, error) {
e := &UserFirstNameChangedEvent{ e := &UserFirstNameChangedEvent{
BaseEvent: *eventstore.BaseEventFromRepo(event), BaseEvent: *eventstore.BaseEventFromRepo(event),
} }
@ -130,8 +130,8 @@ func NewUserPasswordCheckedEvent(id string) *UserPasswordCheckedEvent {
} }
} }
func UserPasswordCheckedMapper() (eventstore.EventType, func(*repository.Event) (eventstore.Event, error)) { func UserPasswordCheckedMapper() (eventstore.AggregateType, eventstore.EventType, func(*repository.Event) (eventstore.Event, error)) {
return "user.password.checked", func(event *repository.Event) (eventstore.Event, error) { return "user", "user.password.checked", func(event *repository.Event) (eventstore.Event, error) {
return &UserPasswordCheckedEvent{ return &UserPasswordCheckedEvent{
BaseEvent: *eventstore.BaseEventFromRepo(event), BaseEvent: *eventstore.BaseEventFromRepo(event),
}, nil }, nil
@ -167,8 +167,8 @@ func NewUserDeletedEvent(id string) *UserDeletedEvent {
} }
} }
func UserDeletedMapper() (eventstore.EventType, func(*repository.Event) (eventstore.Event, error)) { func UserDeletedMapper() (eventstore.AggregateType, eventstore.EventType, func(*repository.Event) (eventstore.Event, error)) {
return "user.deleted", func(event *repository.Event) (eventstore.Event, error) { return "user", "user.deleted", func(event *repository.Event) (eventstore.Event, error) {
return &UserDeletedEvent{ return &UserDeletedEvent{
BaseEvent: *eventstore.BaseEventFromRepo(event), BaseEvent: *eventstore.BaseEventFromRepo(event),
}, nil }, nil

View File

@ -17,6 +17,7 @@ type SearchQueryBuilder struct {
desc bool desc bool
resourceOwner string resourceOwner string
instanceID string instanceID string
editorUser string
queries []*SearchQuery queries []*SearchQuery
tx *sql.Tx tx *sql.Tx
} }
@ -124,6 +125,11 @@ func (builder *SearchQueryBuilder) SetTx(tx *sql.Tx) *SearchQueryBuilder {
return builder return builder
} }
func (builder *SearchQueryBuilder) EditorUser(id string) *SearchQueryBuilder {
builder.editorUser = id
return builder
}
// AddQuery creates a new sub query. // AddQuery creates a new sub query.
// All fields in the sub query are AND-connected in the storage request. // All fields in the sub query are AND-connected in the storage request.
// Multiple sub queries are OR-connected in the storage request. // Multiple sub queries are OR-connected in the storage request.
@ -245,6 +251,7 @@ func (builder *SearchQueryBuilder) build(instanceID string) (*repository.SearchQ
query.creationDateAfterFilter, query.creationDateAfterFilter,
query.builder.resourceOwnerFilter, query.builder.resourceOwnerFilter,
query.builder.instanceIDFilter, query.builder.instanceIDFilter,
query.builder.editorUserFilter,
} { } {
if filter := f(); filter != nil { if filter := f(); filter != nil {
if err := filter.Validate(); err != nil { if err := filter.Validate(); err != nil {
@ -353,6 +360,13 @@ func (builder *SearchQueryBuilder) instanceIDFilter() *repository.Filter {
return repository.NewFilter(repository.FieldInstanceID, builder.instanceID, repository.OperationEquals) return repository.NewFilter(repository.FieldInstanceID, builder.instanceID, repository.OperationEquals)
} }
func (builder *SearchQueryBuilder) editorUserFilter() *repository.Filter {
if builder.editorUser == "" {
return nil
}
return repository.NewFilter(repository.FieldEditorUser, builder.editorUser, repository.OperationEquals)
}
func (query *SearchQuery) creationDateAfterFilter() *repository.Filter { func (query *SearchQuery) creationDateAfterFilter() *repository.Filter {
if query.creationDateAfter.IsZero() { if query.creationDateAfter.IsZero() {
return nil return nil

View File

@ -97,10 +97,10 @@ func (s *SetupStep) UniqueConstraints() []*eventstore.EventUniqueConstraint {
} }
func RegisterMappers(es *eventstore.Eventstore) { func RegisterMappers(es *eventstore.Eventstore) {
es.RegisterFilterEventMapper(startedType, SetupMapper) es.RegisterFilterEventMapper(aggregateType, startedType, SetupMapper)
es.RegisterFilterEventMapper(doneType, SetupMapper) es.RegisterFilterEventMapper(aggregateType, doneType, SetupMapper)
es.RegisterFilterEventMapper(failedType, SetupMapper) es.RegisterFilterEventMapper(aggregateType, failedType, SetupMapper)
es.RegisterFilterEventMapper(repeatableDoneType, SetupMapper) es.RegisterFilterEventMapper(aggregateType, repeatableDoneType, SetupMapper)
} }
func SetupMapper(event *repository.Event) (eventstore.Event, error) { func SetupMapper(event *repository.Event) (eventstore.Event, error) {

73
internal/query/event.go Normal file
View File

@ -0,0 +1,73 @@
package query
import (
"context"
"time"
"github.com/zitadel/zitadel/internal/eventstore"
)
type Event struct {
Editor *EventEditor
Aggregate eventstore.Aggregate
Sequence uint64
CreationDate time.Time
Type string
Payload []byte
}
type EventEditor struct {
ID string
DisplayName string
Service string
}
func (q *Queries) SearchEvents(ctx context.Context, query *eventstore.SearchQueryBuilder) ([]*Event, error) {
events, err := q.eventstore.Filter(ctx, query)
if err != nil {
return nil, err
}
return q.convertEvents(ctx, events), nil
}
func (q *Queries) SearchEventTypes(ctx context.Context) []string {
return q.eventstore.EventTypes()
}
func (q *Queries) SearchAggregateTypes(ctx context.Context) []string {
return q.eventstore.AggregateTypes()
}
func (q *Queries) convertEvents(ctx context.Context, events []eventstore.Event) []*Event {
result := make([]*Event, len(events))
for i, event := range events {
result[i] = q.convertEvent(ctx, event)
}
return result
}
func (q *Queries) convertEvent(ctx context.Context, event eventstore.Event) *Event {
displayName := event.EditorUser()
user, err := q.GetUserByID(ctx, false, event.EditorUser(), false)
if err == nil {
if user.Human != nil {
displayName = user.Human.DisplayName
} else if user.Machine != nil {
displayName = user.Machine.Name
}
}
return &Event{
Editor: &EventEditor{
ID: event.EditorUser(),
Service: event.EditorService(),
DisplayName: displayName,
},
Aggregate: event.Aggregate(),
Sequence: event.Sequence(),
CreationDate: event.CreationDate(),
Type: string(event.Type()),
Payload: event.DataAsBytes(),
}
}

View File

@ -3,9 +3,9 @@ package action
import "github.com/zitadel/zitadel/internal/eventstore" import "github.com/zitadel/zitadel/internal/eventstore"
func RegisterEventMappers(es *eventstore.Eventstore) { func RegisterEventMappers(es *eventstore.Eventstore) {
es.RegisterFilterEventMapper(AddedEventType, AddedEventMapper). es.RegisterFilterEventMapper(AggregateType, AddedEventType, AddedEventMapper).
RegisterFilterEventMapper(ChangedEventType, ChangedEventMapper). RegisterFilterEventMapper(AggregateType, ChangedEventType, ChangedEventMapper).
RegisterFilterEventMapper(DeactivatedEventType, DeactivatedEventMapper). RegisterFilterEventMapper(AggregateType, DeactivatedEventType, DeactivatedEventMapper).
RegisterFilterEventMapper(ReactivatedEventType, ReactivatedEventMapper). RegisterFilterEventMapper(AggregateType, ReactivatedEventType, ReactivatedEventMapper).
RegisterFilterEventMapper(RemovedEventType, RemovedEventMapper) RegisterFilterEventMapper(AggregateType, RemovedEventType, RemovedEventMapper)
} }

View File

@ -5,89 +5,89 @@ import (
) )
func RegisterEventMappers(es *eventstore.Eventstore) { func RegisterEventMappers(es *eventstore.Eventstore) {
es.RegisterFilterEventMapper(DefaultOrgSetEventType, DefaultOrgSetMapper). es.RegisterFilterEventMapper(AggregateType, DefaultOrgSetEventType, DefaultOrgSetMapper).
RegisterFilterEventMapper(ProjectSetEventType, ProjectSetMapper). RegisterFilterEventMapper(AggregateType, ProjectSetEventType, ProjectSetMapper).
RegisterFilterEventMapper(ConsoleSetEventType, ConsoleSetMapper). RegisterFilterEventMapper(AggregateType, ConsoleSetEventType, ConsoleSetMapper).
RegisterFilterEventMapper(DefaultLanguageSetEventType, DefaultLanguageSetMapper). RegisterFilterEventMapper(AggregateType, DefaultLanguageSetEventType, DefaultLanguageSetMapper).
RegisterFilterEventMapper(SecretGeneratorAddedEventType, SecretGeneratorAddedEventMapper). RegisterFilterEventMapper(AggregateType, SecretGeneratorAddedEventType, SecretGeneratorAddedEventMapper).
RegisterFilterEventMapper(SecretGeneratorChangedEventType, SecretGeneratorChangedEventMapper). RegisterFilterEventMapper(AggregateType, SecretGeneratorChangedEventType, SecretGeneratorChangedEventMapper).
RegisterFilterEventMapper(SecretGeneratorRemovedEventType, SecretGeneratorRemovedEventMapper). RegisterFilterEventMapper(AggregateType, SecretGeneratorRemovedEventType, SecretGeneratorRemovedEventMapper).
RegisterFilterEventMapper(SMTPConfigAddedEventType, SMTPConfigAddedEventMapper). RegisterFilterEventMapper(AggregateType, SMTPConfigAddedEventType, SMTPConfigAddedEventMapper).
RegisterFilterEventMapper(SMTPConfigChangedEventType, SMTPConfigChangedEventMapper). RegisterFilterEventMapper(AggregateType, SMTPConfigChangedEventType, SMTPConfigChangedEventMapper).
RegisterFilterEventMapper(SMTPConfigPasswordChangedEventType, SMTPConfigPasswordChangedEventMapper). RegisterFilterEventMapper(AggregateType, SMTPConfigPasswordChangedEventType, SMTPConfigPasswordChangedEventMapper).
RegisterFilterEventMapper(SMTPConfigRemovedEventType, SMTPConfigRemovedEventMapper). RegisterFilterEventMapper(AggregateType, SMTPConfigRemovedEventType, SMTPConfigRemovedEventMapper).
RegisterFilterEventMapper(SMSConfigTwilioAddedEventType, SMSConfigTwilioAddedEventMapper). RegisterFilterEventMapper(AggregateType, SMSConfigTwilioAddedEventType, SMSConfigTwilioAddedEventMapper).
RegisterFilterEventMapper(SMSConfigTwilioChangedEventType, SMSConfigTwilioChangedEventMapper). RegisterFilterEventMapper(AggregateType, SMSConfigTwilioChangedEventType, SMSConfigTwilioChangedEventMapper).
RegisterFilterEventMapper(SMSConfigTwilioTokenChangedEventType, SMSConfigTwilioTokenChangedEventMapper). RegisterFilterEventMapper(AggregateType, SMSConfigTwilioTokenChangedEventType, SMSConfigTwilioTokenChangedEventMapper).
RegisterFilterEventMapper(SMSConfigActivatedEventType, SMSConfigActivatedEventMapper). RegisterFilterEventMapper(AggregateType, SMSConfigActivatedEventType, SMSConfigActivatedEventMapper).
RegisterFilterEventMapper(SMSConfigDeactivatedEventType, SMSConfigDeactivatedEventMapper). RegisterFilterEventMapper(AggregateType, SMSConfigDeactivatedEventType, SMSConfigDeactivatedEventMapper).
RegisterFilterEventMapper(SMSConfigRemovedEventType, SMSConfigRemovedEventMapper). RegisterFilterEventMapper(AggregateType, SMSConfigRemovedEventType, SMSConfigRemovedEventMapper).
RegisterFilterEventMapper(DebugNotificationProviderFileAddedEventType, DebugNotificationProviderFileAddedEventMapper). RegisterFilterEventMapper(AggregateType, DebugNotificationProviderFileAddedEventType, DebugNotificationProviderFileAddedEventMapper).
RegisterFilterEventMapper(DebugNotificationProviderFileChangedEventType, DebugNotificationProviderFileChangedEventMapper). RegisterFilterEventMapper(AggregateType, DebugNotificationProviderFileChangedEventType, DebugNotificationProviderFileChangedEventMapper).
RegisterFilterEventMapper(DebugNotificationProviderFileRemovedEventType, DebugNotificationProviderFileRemovedEventMapper). RegisterFilterEventMapper(AggregateType, DebugNotificationProviderFileRemovedEventType, DebugNotificationProviderFileRemovedEventMapper).
RegisterFilterEventMapper(DebugNotificationProviderLogAddedEventType, DebugNotificationProviderLogAddedEventMapper). RegisterFilterEventMapper(AggregateType, DebugNotificationProviderLogAddedEventType, DebugNotificationProviderLogAddedEventMapper).
RegisterFilterEventMapper(DebugNotificationProviderLogChangedEventType, DebugNotificationProviderLogChangedEventMapper). RegisterFilterEventMapper(AggregateType, DebugNotificationProviderLogChangedEventType, DebugNotificationProviderLogChangedEventMapper).
RegisterFilterEventMapper(DebugNotificationProviderLogRemovedEventType, DebugNotificationProviderLogRemovedEventMapper). RegisterFilterEventMapper(AggregateType, DebugNotificationProviderLogRemovedEventType, DebugNotificationProviderLogRemovedEventMapper).
RegisterFilterEventMapper(OIDCSettingsAddedEventType, OIDCSettingsAddedEventMapper). RegisterFilterEventMapper(AggregateType, OIDCSettingsAddedEventType, OIDCSettingsAddedEventMapper).
RegisterFilterEventMapper(OIDCSettingsChangedEventType, OIDCSettingsChangedEventMapper). RegisterFilterEventMapper(AggregateType, OIDCSettingsChangedEventType, OIDCSettingsChangedEventMapper).
RegisterFilterEventMapper(SecurityPolicySetEventType, SecurityPolicySetEventMapper). RegisterFilterEventMapper(AggregateType, SecurityPolicySetEventType, SecurityPolicySetEventMapper).
RegisterFilterEventMapper(LabelPolicyAddedEventType, LabelPolicyAddedEventMapper). RegisterFilterEventMapper(AggregateType, LabelPolicyAddedEventType, LabelPolicyAddedEventMapper).
RegisterFilterEventMapper(LabelPolicyChangedEventType, LabelPolicyChangedEventMapper). RegisterFilterEventMapper(AggregateType, LabelPolicyChangedEventType, LabelPolicyChangedEventMapper).
RegisterFilterEventMapper(LabelPolicyActivatedEventType, LabelPolicyActivatedEventMapper). RegisterFilterEventMapper(AggregateType, LabelPolicyActivatedEventType, LabelPolicyActivatedEventMapper).
RegisterFilterEventMapper(LabelPolicyLogoAddedEventType, LabelPolicyLogoAddedEventMapper). RegisterFilterEventMapper(AggregateType, LabelPolicyLogoAddedEventType, LabelPolicyLogoAddedEventMapper).
RegisterFilterEventMapper(LabelPolicyLogoRemovedEventType, LabelPolicyLogoRemovedEventMapper). RegisterFilterEventMapper(AggregateType, LabelPolicyLogoRemovedEventType, LabelPolicyLogoRemovedEventMapper).
RegisterFilterEventMapper(LabelPolicyIconAddedEventType, LabelPolicyIconAddedEventMapper). RegisterFilterEventMapper(AggregateType, LabelPolicyIconAddedEventType, LabelPolicyIconAddedEventMapper).
RegisterFilterEventMapper(LabelPolicyIconRemovedEventType, LabelPolicyIconRemovedEventMapper). RegisterFilterEventMapper(AggregateType, LabelPolicyIconRemovedEventType, LabelPolicyIconRemovedEventMapper).
RegisterFilterEventMapper(LabelPolicyLogoDarkAddedEventType, LabelPolicyLogoDarkAddedEventMapper). RegisterFilterEventMapper(AggregateType, LabelPolicyLogoDarkAddedEventType, LabelPolicyLogoDarkAddedEventMapper).
RegisterFilterEventMapper(LabelPolicyLogoDarkRemovedEventType, LabelPolicyLogoDarkRemovedEventMapper). RegisterFilterEventMapper(AggregateType, LabelPolicyLogoDarkRemovedEventType, LabelPolicyLogoDarkRemovedEventMapper).
RegisterFilterEventMapper(LabelPolicyIconDarkAddedEventType, LabelPolicyIconDarkAddedEventMapper). RegisterFilterEventMapper(AggregateType, LabelPolicyIconDarkAddedEventType, LabelPolicyIconDarkAddedEventMapper).
RegisterFilterEventMapper(LabelPolicyIconDarkRemovedEventType, LabelPolicyIconDarkRemovedEventMapper). RegisterFilterEventMapper(AggregateType, LabelPolicyIconDarkRemovedEventType, LabelPolicyIconDarkRemovedEventMapper).
RegisterFilterEventMapper(LabelPolicyFontAddedEventType, LabelPolicyFontAddedEventMapper). RegisterFilterEventMapper(AggregateType, LabelPolicyFontAddedEventType, LabelPolicyFontAddedEventMapper).
RegisterFilterEventMapper(LabelPolicyFontRemovedEventType, LabelPolicyFontRemovedEventMapper). RegisterFilterEventMapper(AggregateType, LabelPolicyFontRemovedEventType, LabelPolicyFontRemovedEventMapper).
RegisterFilterEventMapper(LabelPolicyAssetsRemovedEventType, LabelPolicyAssetsRemovedEventMapper). RegisterFilterEventMapper(AggregateType, LabelPolicyAssetsRemovedEventType, LabelPolicyAssetsRemovedEventMapper).
RegisterFilterEventMapper(LoginPolicyAddedEventType, LoginPolicyAddedEventMapper). RegisterFilterEventMapper(AggregateType, LoginPolicyAddedEventType, LoginPolicyAddedEventMapper).
RegisterFilterEventMapper(LoginPolicyChangedEventType, LoginPolicyChangedEventMapper). RegisterFilterEventMapper(AggregateType, LoginPolicyChangedEventType, LoginPolicyChangedEventMapper).
RegisterFilterEventMapper(DomainPolicyAddedEventType, DomainPolicyAddedEventMapper). RegisterFilterEventMapper(AggregateType, DomainPolicyAddedEventType, DomainPolicyAddedEventMapper).
RegisterFilterEventMapper(DomainPolicyChangedEventType, DomainPolicyChangedEventMapper). RegisterFilterEventMapper(AggregateType, DomainPolicyChangedEventType, DomainPolicyChangedEventMapper).
RegisterFilterEventMapper(PasswordAgePolicyAddedEventType, PasswordAgePolicyAddedEventMapper). RegisterFilterEventMapper(AggregateType, PasswordAgePolicyAddedEventType, PasswordAgePolicyAddedEventMapper).
RegisterFilterEventMapper(PasswordAgePolicyChangedEventType, PasswordAgePolicyChangedEventMapper). RegisterFilterEventMapper(AggregateType, PasswordAgePolicyChangedEventType, PasswordAgePolicyChangedEventMapper).
RegisterFilterEventMapper(PasswordComplexityPolicyAddedEventType, PasswordComplexityPolicyAddedEventMapper). RegisterFilterEventMapper(AggregateType, PasswordComplexityPolicyAddedEventType, PasswordComplexityPolicyAddedEventMapper).
RegisterFilterEventMapper(PasswordComplexityPolicyChangedEventType, PasswordComplexityPolicyChangedEventMapper). RegisterFilterEventMapper(AggregateType, PasswordComplexityPolicyChangedEventType, PasswordComplexityPolicyChangedEventMapper).
RegisterFilterEventMapper(LockoutPolicyAddedEventType, LockoutPolicyAddedEventMapper). RegisterFilterEventMapper(AggregateType, LockoutPolicyAddedEventType, LockoutPolicyAddedEventMapper).
RegisterFilterEventMapper(LockoutPolicyChangedEventType, LockoutPolicyChangedEventMapper). RegisterFilterEventMapper(AggregateType, LockoutPolicyChangedEventType, LockoutPolicyChangedEventMapper).
RegisterFilterEventMapper(PrivacyPolicyAddedEventType, PrivacyPolicyAddedEventMapper). RegisterFilterEventMapper(AggregateType, PrivacyPolicyAddedEventType, PrivacyPolicyAddedEventMapper).
RegisterFilterEventMapper(PrivacyPolicyChangedEventType, PrivacyPolicyChangedEventMapper). RegisterFilterEventMapper(AggregateType, PrivacyPolicyChangedEventType, PrivacyPolicyChangedEventMapper).
RegisterFilterEventMapper(MemberAddedEventType, MemberAddedEventMapper). RegisterFilterEventMapper(AggregateType, MemberAddedEventType, MemberAddedEventMapper).
RegisterFilterEventMapper(MemberChangedEventType, MemberChangedEventMapper). RegisterFilterEventMapper(AggregateType, MemberChangedEventType, MemberChangedEventMapper).
RegisterFilterEventMapper(MemberRemovedEventType, MemberRemovedEventMapper). RegisterFilterEventMapper(AggregateType, MemberRemovedEventType, MemberRemovedEventMapper).
RegisterFilterEventMapper(MemberCascadeRemovedEventType, MemberCascadeRemovedEventMapper). RegisterFilterEventMapper(AggregateType, MemberCascadeRemovedEventType, MemberCascadeRemovedEventMapper).
RegisterFilterEventMapper(IDPConfigAddedEventType, IDPConfigAddedEventMapper). RegisterFilterEventMapper(AggregateType, IDPConfigAddedEventType, IDPConfigAddedEventMapper).
RegisterFilterEventMapper(IDPConfigChangedEventType, IDPConfigChangedEventMapper). RegisterFilterEventMapper(AggregateType, IDPConfigChangedEventType, IDPConfigChangedEventMapper).
RegisterFilterEventMapper(IDPConfigRemovedEventType, IDPConfigRemovedEventMapper). RegisterFilterEventMapper(AggregateType, IDPConfigRemovedEventType, IDPConfigRemovedEventMapper).
RegisterFilterEventMapper(IDPConfigDeactivatedEventType, IDPConfigDeactivatedEventMapper). RegisterFilterEventMapper(AggregateType, IDPConfigDeactivatedEventType, IDPConfigDeactivatedEventMapper).
RegisterFilterEventMapper(IDPConfigReactivatedEventType, IDPConfigReactivatedEventMapper). RegisterFilterEventMapper(AggregateType, IDPConfigReactivatedEventType, IDPConfigReactivatedEventMapper).
RegisterFilterEventMapper(IDPOIDCConfigAddedEventType, IDPOIDCConfigAddedEventMapper). RegisterFilterEventMapper(AggregateType, IDPOIDCConfigAddedEventType, IDPOIDCConfigAddedEventMapper).
RegisterFilterEventMapper(IDPOIDCConfigChangedEventType, IDPOIDCConfigChangedEventMapper). RegisterFilterEventMapper(AggregateType, IDPOIDCConfigChangedEventType, IDPOIDCConfigChangedEventMapper).
RegisterFilterEventMapper(IDPJWTConfigAddedEventType, IDPJWTConfigAddedEventMapper). RegisterFilterEventMapper(AggregateType, IDPJWTConfigAddedEventType, IDPJWTConfigAddedEventMapper).
RegisterFilterEventMapper(IDPJWTConfigChangedEventType, IDPJWTConfigChangedEventMapper). RegisterFilterEventMapper(AggregateType, IDPJWTConfigChangedEventType, IDPJWTConfigChangedEventMapper).
RegisterFilterEventMapper(LoginPolicyIDPProviderAddedEventType, IdentityProviderAddedEventMapper). RegisterFilterEventMapper(AggregateType, LoginPolicyIDPProviderAddedEventType, IdentityProviderAddedEventMapper).
RegisterFilterEventMapper(LoginPolicyIDPProviderRemovedEventType, IdentityProviderRemovedEventMapper). RegisterFilterEventMapper(AggregateType, LoginPolicyIDPProviderRemovedEventType, IdentityProviderRemovedEventMapper).
RegisterFilterEventMapper(LoginPolicyIDPProviderCascadeRemovedEventType, IdentityProviderCascadeRemovedEventMapper). RegisterFilterEventMapper(AggregateType, LoginPolicyIDPProviderCascadeRemovedEventType, IdentityProviderCascadeRemovedEventMapper).
RegisterFilterEventMapper(LoginPolicySecondFactorAddedEventType, SecondFactorAddedEventMapper). RegisterFilterEventMapper(AggregateType, LoginPolicySecondFactorAddedEventType, SecondFactorAddedEventMapper).
RegisterFilterEventMapper(LoginPolicySecondFactorRemovedEventType, SecondFactorRemovedEventMapper). RegisterFilterEventMapper(AggregateType, LoginPolicySecondFactorRemovedEventType, SecondFactorRemovedEventMapper).
RegisterFilterEventMapper(LoginPolicyMultiFactorAddedEventType, MultiFactorAddedEventMapper). RegisterFilterEventMapper(AggregateType, LoginPolicyMultiFactorAddedEventType, MultiFactorAddedEventMapper).
RegisterFilterEventMapper(LoginPolicyMultiFactorRemovedEventType, MultiFactorRemovedEventMapper). RegisterFilterEventMapper(AggregateType, LoginPolicyMultiFactorRemovedEventType, MultiFactorRemovedEventMapper).
RegisterFilterEventMapper(MailTemplateAddedEventType, MailTemplateAddedEventMapper). RegisterFilterEventMapper(AggregateType, MailTemplateAddedEventType, MailTemplateAddedEventMapper).
RegisterFilterEventMapper(MailTemplateChangedEventType, MailTemplateChangedEventMapper). RegisterFilterEventMapper(AggregateType, MailTemplateChangedEventType, MailTemplateChangedEventMapper).
RegisterFilterEventMapper(MailTextAddedEventType, MailTextAddedEventMapper). RegisterFilterEventMapper(AggregateType, MailTextAddedEventType, MailTextAddedEventMapper).
RegisterFilterEventMapper(MailTextChangedEventType, MailTextChangedEventMapper). RegisterFilterEventMapper(AggregateType, MailTextChangedEventType, MailTextChangedEventMapper).
RegisterFilterEventMapper(CustomTextSetEventType, CustomTextSetEventMapper). RegisterFilterEventMapper(AggregateType, CustomTextSetEventType, CustomTextSetEventMapper).
RegisterFilterEventMapper(CustomTextRemovedEventType, CustomTextRemovedEventMapper). RegisterFilterEventMapper(AggregateType, CustomTextRemovedEventType, CustomTextRemovedEventMapper).
RegisterFilterEventMapper(CustomTextTemplateRemovedEventType, CustomTextTemplateRemovedEventMapper). RegisterFilterEventMapper(AggregateType, CustomTextTemplateRemovedEventType, CustomTextTemplateRemovedEventMapper).
RegisterFilterEventMapper(InstanceDomainAddedEventType, DomainAddedEventMapper). RegisterFilterEventMapper(AggregateType, InstanceDomainAddedEventType, DomainAddedEventMapper).
RegisterFilterEventMapper(InstanceDomainPrimarySetEventType, DomainPrimarySetEventMapper). RegisterFilterEventMapper(AggregateType, InstanceDomainPrimarySetEventType, DomainPrimarySetEventMapper).
RegisterFilterEventMapper(InstanceDomainRemovedEventType, DomainRemovedEventMapper). RegisterFilterEventMapper(AggregateType, InstanceDomainRemovedEventType, DomainRemovedEventMapper).
RegisterFilterEventMapper(InstanceAddedEventType, InstanceAddedEventMapper). RegisterFilterEventMapper(AggregateType, InstanceAddedEventType, InstanceAddedEventMapper).
RegisterFilterEventMapper(InstanceChangedEventType, InstanceChangedEventMapper). RegisterFilterEventMapper(AggregateType, InstanceChangedEventType, InstanceChangedEventMapper).
RegisterFilterEventMapper(InstanceRemovedEventType, InstanceRemovedEventMapper) RegisterFilterEventMapper(AggregateType, InstanceRemovedEventType, InstanceRemovedEventMapper)
} }

View File

@ -5,6 +5,6 @@ import (
) )
func RegisterEventMappers(es *eventstore.Eventstore) { func RegisterEventMappers(es *eventstore.Eventstore) {
es.RegisterFilterEventMapper(AddedEventType, AddedEventMapper) es.RegisterFilterEventMapper(AggregateType, AddedEventType, AddedEventMapper)
es.RegisterFilterEventMapper(AddedCertificateEventType, AddedCertificateEventMapper) es.RegisterFilterEventMapper(AggregateType, AddedCertificateEventType, AddedCertificateEventMapper)
} }

View File

@ -5,83 +5,83 @@ import (
) )
func RegisterEventMappers(es *eventstore.Eventstore) { func RegisterEventMappers(es *eventstore.Eventstore) {
es.RegisterFilterEventMapper(OrgAddedEventType, OrgAddedEventMapper). es.RegisterFilterEventMapper(AggregateType, OrgAddedEventType, OrgAddedEventMapper).
RegisterFilterEventMapper(OrgChangedEventType, OrgChangedEventMapper). RegisterFilterEventMapper(AggregateType, OrgChangedEventType, OrgChangedEventMapper).
RegisterFilterEventMapper(OrgDeactivatedEventType, OrgDeactivatedEventMapper). RegisterFilterEventMapper(AggregateType, OrgDeactivatedEventType, OrgDeactivatedEventMapper).
RegisterFilterEventMapper(OrgReactivatedEventType, OrgReactivatedEventMapper). RegisterFilterEventMapper(AggregateType, OrgReactivatedEventType, OrgReactivatedEventMapper).
RegisterFilterEventMapper(OrgRemovedEventType, OrgRemovedEventMapper). RegisterFilterEventMapper(AggregateType, OrgRemovedEventType, OrgRemovedEventMapper).
RegisterFilterEventMapper(OrgDomainAddedEventType, DomainAddedEventMapper). RegisterFilterEventMapper(AggregateType, OrgDomainAddedEventType, DomainAddedEventMapper).
RegisterFilterEventMapper(OrgDomainVerificationAddedEventType, DomainVerificationAddedEventMapper). RegisterFilterEventMapper(AggregateType, OrgDomainVerificationAddedEventType, DomainVerificationAddedEventMapper).
RegisterFilterEventMapper(OrgDomainVerificationFailedEventType, DomainVerificationFailedEventMapper). RegisterFilterEventMapper(AggregateType, OrgDomainVerificationFailedEventType, DomainVerificationFailedEventMapper).
RegisterFilterEventMapper(OrgDomainVerifiedEventType, DomainVerifiedEventMapper). RegisterFilterEventMapper(AggregateType, OrgDomainVerifiedEventType, DomainVerifiedEventMapper).
RegisterFilterEventMapper(OrgDomainPrimarySetEventType, DomainPrimarySetEventMapper). RegisterFilterEventMapper(AggregateType, OrgDomainPrimarySetEventType, DomainPrimarySetEventMapper).
RegisterFilterEventMapper(OrgDomainRemovedEventType, DomainRemovedEventMapper). RegisterFilterEventMapper(AggregateType, OrgDomainRemovedEventType, DomainRemovedEventMapper).
RegisterFilterEventMapper(MemberAddedEventType, MemberAddedEventMapper). RegisterFilterEventMapper(AggregateType, MemberAddedEventType, MemberAddedEventMapper).
RegisterFilterEventMapper(MemberChangedEventType, MemberChangedEventMapper). RegisterFilterEventMapper(AggregateType, MemberChangedEventType, MemberChangedEventMapper).
RegisterFilterEventMapper(MemberRemovedEventType, MemberRemovedEventMapper). RegisterFilterEventMapper(AggregateType, MemberRemovedEventType, MemberRemovedEventMapper).
RegisterFilterEventMapper(MemberCascadeRemovedEventType, MemberCascadeRemovedEventMapper). RegisterFilterEventMapper(AggregateType, MemberCascadeRemovedEventType, MemberCascadeRemovedEventMapper).
RegisterFilterEventMapper(LabelPolicyAddedEventType, LabelPolicyAddedEventMapper). RegisterFilterEventMapper(AggregateType, LabelPolicyAddedEventType, LabelPolicyAddedEventMapper).
RegisterFilterEventMapper(LabelPolicyChangedEventType, LabelPolicyChangedEventMapper). RegisterFilterEventMapper(AggregateType, LabelPolicyChangedEventType, LabelPolicyChangedEventMapper).
RegisterFilterEventMapper(LabelPolicyActivatedEventType, LabelPolicyActivatedEventMapper). RegisterFilterEventMapper(AggregateType, LabelPolicyActivatedEventType, LabelPolicyActivatedEventMapper).
RegisterFilterEventMapper(LabelPolicyRemovedEventType, LabelPolicyRemovedEventMapper). RegisterFilterEventMapper(AggregateType, LabelPolicyRemovedEventType, LabelPolicyRemovedEventMapper).
RegisterFilterEventMapper(LabelPolicyLogoAddedEventType, LabelPolicyLogoAddedEventMapper). RegisterFilterEventMapper(AggregateType, LabelPolicyLogoAddedEventType, LabelPolicyLogoAddedEventMapper).
RegisterFilterEventMapper(LabelPolicyLogoRemovedEventType, LabelPolicyLogoRemovedEventMapper). RegisterFilterEventMapper(AggregateType, LabelPolicyLogoRemovedEventType, LabelPolicyLogoRemovedEventMapper).
RegisterFilterEventMapper(LabelPolicyIconAddedEventType, LabelPolicyIconAddedEventMapper). RegisterFilterEventMapper(AggregateType, LabelPolicyIconAddedEventType, LabelPolicyIconAddedEventMapper).
RegisterFilterEventMapper(LabelPolicyIconRemovedEventType, LabelPolicyIconRemovedEventMapper). RegisterFilterEventMapper(AggregateType, LabelPolicyIconRemovedEventType, LabelPolicyIconRemovedEventMapper).
RegisterFilterEventMapper(LabelPolicyLogoDarkAddedEventType, LabelPolicyLogoDarkAddedEventMapper). RegisterFilterEventMapper(AggregateType, LabelPolicyLogoDarkAddedEventType, LabelPolicyLogoDarkAddedEventMapper).
RegisterFilterEventMapper(LabelPolicyLogoDarkRemovedEventType, LabelPolicyLogoDarkRemovedEventMapper). RegisterFilterEventMapper(AggregateType, LabelPolicyLogoDarkRemovedEventType, LabelPolicyLogoDarkRemovedEventMapper).
RegisterFilterEventMapper(LabelPolicyIconDarkAddedEventType, LabelPolicyIconDarkAddedEventMapper). RegisterFilterEventMapper(AggregateType, LabelPolicyIconDarkAddedEventType, LabelPolicyIconDarkAddedEventMapper).
RegisterFilterEventMapper(LabelPolicyIconDarkRemovedEventType, LabelPolicyIconDarkRemovedEventMapper). RegisterFilterEventMapper(AggregateType, LabelPolicyIconDarkRemovedEventType, LabelPolicyIconDarkRemovedEventMapper).
RegisterFilterEventMapper(LabelPolicyFontAddedEventType, LabelPolicyFontAddedEventMapper). RegisterFilterEventMapper(AggregateType, LabelPolicyFontAddedEventType, LabelPolicyFontAddedEventMapper).
RegisterFilterEventMapper(LabelPolicyFontRemovedEventType, LabelPolicyFontRemovedEventMapper). RegisterFilterEventMapper(AggregateType, LabelPolicyFontRemovedEventType, LabelPolicyFontRemovedEventMapper).
RegisterFilterEventMapper(LabelPolicyAssetsRemovedEventType, LabelPolicyAssetsRemovedEventMapper). RegisterFilterEventMapper(AggregateType, LabelPolicyAssetsRemovedEventType, LabelPolicyAssetsRemovedEventMapper).
RegisterFilterEventMapper(LoginPolicyAddedEventType, LoginPolicyAddedEventMapper). RegisterFilterEventMapper(AggregateType, LoginPolicyAddedEventType, LoginPolicyAddedEventMapper).
RegisterFilterEventMapper(LoginPolicyChangedEventType, LoginPolicyChangedEventMapper). RegisterFilterEventMapper(AggregateType, LoginPolicyChangedEventType, LoginPolicyChangedEventMapper).
RegisterFilterEventMapper(LoginPolicyRemovedEventType, LoginPolicyRemovedEventMapper). RegisterFilterEventMapper(AggregateType, LoginPolicyRemovedEventType, LoginPolicyRemovedEventMapper).
RegisterFilterEventMapper(LoginPolicySecondFactorAddedEventType, SecondFactorAddedEventEventMapper). RegisterFilterEventMapper(AggregateType, LoginPolicySecondFactorAddedEventType, SecondFactorAddedEventEventMapper).
RegisterFilterEventMapper(LoginPolicySecondFactorRemovedEventType, SecondFactorRemovedEventEventMapper). RegisterFilterEventMapper(AggregateType, LoginPolicySecondFactorRemovedEventType, SecondFactorRemovedEventEventMapper).
RegisterFilterEventMapper(LoginPolicyMultiFactorAddedEventType, MultiFactorAddedEventEventMapper). RegisterFilterEventMapper(AggregateType, LoginPolicyMultiFactorAddedEventType, MultiFactorAddedEventEventMapper).
RegisterFilterEventMapper(LoginPolicyMultiFactorRemovedEventType, MultiFactorRemovedEventEventMapper). RegisterFilterEventMapper(AggregateType, LoginPolicyMultiFactorRemovedEventType, MultiFactorRemovedEventEventMapper).
RegisterFilterEventMapper(LoginPolicyIDPProviderAddedEventType, IdentityProviderAddedEventMapper). RegisterFilterEventMapper(AggregateType, LoginPolicyIDPProviderAddedEventType, IdentityProviderAddedEventMapper).
RegisterFilterEventMapper(LoginPolicyIDPProviderRemovedEventType, IdentityProviderRemovedEventMapper). RegisterFilterEventMapper(AggregateType, LoginPolicyIDPProviderRemovedEventType, IdentityProviderRemovedEventMapper).
RegisterFilterEventMapper(LoginPolicyIDPProviderCascadeRemovedEventType, IdentityProviderCascadeRemovedEventMapper). RegisterFilterEventMapper(AggregateType, LoginPolicyIDPProviderCascadeRemovedEventType, IdentityProviderCascadeRemovedEventMapper).
RegisterFilterEventMapper(DomainPolicyAddedEventType, DomainPolicyAddedEventMapper). RegisterFilterEventMapper(AggregateType, DomainPolicyAddedEventType, DomainPolicyAddedEventMapper).
RegisterFilterEventMapper(DomainPolicyChangedEventType, DomainPolicyChangedEventMapper). RegisterFilterEventMapper(AggregateType, DomainPolicyChangedEventType, DomainPolicyChangedEventMapper).
RegisterFilterEventMapper(DomainPolicyRemovedEventType, DomainPolicyRemovedEventMapper). RegisterFilterEventMapper(AggregateType, DomainPolicyRemovedEventType, DomainPolicyRemovedEventMapper).
RegisterFilterEventMapper(PasswordAgePolicyAddedEventType, PasswordAgePolicyAddedEventMapper). RegisterFilterEventMapper(AggregateType, PasswordAgePolicyAddedEventType, PasswordAgePolicyAddedEventMapper).
RegisterFilterEventMapper(PasswordAgePolicyChangedEventType, PasswordAgePolicyChangedEventMapper). RegisterFilterEventMapper(AggregateType, PasswordAgePolicyChangedEventType, PasswordAgePolicyChangedEventMapper).
RegisterFilterEventMapper(PasswordAgePolicyRemovedEventType, PasswordAgePolicyRemovedEventMapper). RegisterFilterEventMapper(AggregateType, PasswordAgePolicyRemovedEventType, PasswordAgePolicyRemovedEventMapper).
RegisterFilterEventMapper(PasswordComplexityPolicyAddedEventType, PasswordComplexityPolicyAddedEventMapper). RegisterFilterEventMapper(AggregateType, PasswordComplexityPolicyAddedEventType, PasswordComplexityPolicyAddedEventMapper).
RegisterFilterEventMapper(PasswordComplexityPolicyChangedEventType, PasswordComplexityPolicyChangedEventMapper). RegisterFilterEventMapper(AggregateType, PasswordComplexityPolicyChangedEventType, PasswordComplexityPolicyChangedEventMapper).
RegisterFilterEventMapper(PasswordComplexityPolicyRemovedEventType, PasswordComplexityPolicyRemovedEventMapper). RegisterFilterEventMapper(AggregateType, PasswordComplexityPolicyRemovedEventType, PasswordComplexityPolicyRemovedEventMapper).
RegisterFilterEventMapper(LockoutPolicyAddedEventType, LockoutPolicyAddedEventMapper). RegisterFilterEventMapper(AggregateType, LockoutPolicyAddedEventType, LockoutPolicyAddedEventMapper).
RegisterFilterEventMapper(LockoutPolicyChangedEventType, LockoutPolicyChangedEventMapper). RegisterFilterEventMapper(AggregateType, LockoutPolicyChangedEventType, LockoutPolicyChangedEventMapper).
RegisterFilterEventMapper(LockoutPolicyRemovedEventType, LockoutPolicyRemovedEventMapper). RegisterFilterEventMapper(AggregateType, LockoutPolicyRemovedEventType, LockoutPolicyRemovedEventMapper).
RegisterFilterEventMapper(PrivacyPolicyAddedEventType, PrivacyPolicyAddedEventMapper). RegisterFilterEventMapper(AggregateType, PrivacyPolicyAddedEventType, PrivacyPolicyAddedEventMapper).
RegisterFilterEventMapper(PrivacyPolicyChangedEventType, PrivacyPolicyChangedEventMapper). RegisterFilterEventMapper(AggregateType, PrivacyPolicyChangedEventType, PrivacyPolicyChangedEventMapper).
RegisterFilterEventMapper(PrivacyPolicyRemovedEventType, PrivacyPolicyRemovedEventMapper). RegisterFilterEventMapper(AggregateType, PrivacyPolicyRemovedEventType, PrivacyPolicyRemovedEventMapper).
RegisterFilterEventMapper(MailTemplateAddedEventType, MailTemplateAddedEventMapper). RegisterFilterEventMapper(AggregateType, MailTemplateAddedEventType, MailTemplateAddedEventMapper).
RegisterFilterEventMapper(MailTemplateChangedEventType, MailTemplateChangedEventMapper). RegisterFilterEventMapper(AggregateType, MailTemplateChangedEventType, MailTemplateChangedEventMapper).
RegisterFilterEventMapper(MailTemplateRemovedEventType, MailTemplateRemovedEventMapper). RegisterFilterEventMapper(AggregateType, MailTemplateRemovedEventType, MailTemplateRemovedEventMapper).
RegisterFilterEventMapper(MailTextAddedEventType, MailTextAddedEventMapper). RegisterFilterEventMapper(AggregateType, MailTextAddedEventType, MailTextAddedEventMapper).
RegisterFilterEventMapper(MailTextChangedEventType, MailTextChangedEventMapper). RegisterFilterEventMapper(AggregateType, MailTextChangedEventType, MailTextChangedEventMapper).
RegisterFilterEventMapper(MailTextRemovedEventType, MailTextRemovedEventMapper). RegisterFilterEventMapper(AggregateType, MailTextRemovedEventType, MailTextRemovedEventMapper).
RegisterFilterEventMapper(CustomTextSetEventType, CustomTextSetEventMapper). RegisterFilterEventMapper(AggregateType, CustomTextSetEventType, CustomTextSetEventMapper).
RegisterFilterEventMapper(CustomTextRemovedEventType, CustomTextRemovedEventMapper). RegisterFilterEventMapper(AggregateType, CustomTextRemovedEventType, CustomTextRemovedEventMapper).
RegisterFilterEventMapper(CustomTextTemplateRemovedEventType, CustomTextTemplateRemovedEventMapper). RegisterFilterEventMapper(AggregateType, CustomTextTemplateRemovedEventType, CustomTextTemplateRemovedEventMapper).
RegisterFilterEventMapper(IDPConfigAddedEventType, IDPConfigAddedEventMapper). RegisterFilterEventMapper(AggregateType, IDPConfigAddedEventType, IDPConfigAddedEventMapper).
RegisterFilterEventMapper(IDPConfigChangedEventType, IDPConfigChangedEventMapper). RegisterFilterEventMapper(AggregateType, IDPConfigChangedEventType, IDPConfigChangedEventMapper).
RegisterFilterEventMapper(IDPConfigRemovedEventType, IDPConfigRemovedEventMapper). RegisterFilterEventMapper(AggregateType, IDPConfigRemovedEventType, IDPConfigRemovedEventMapper).
RegisterFilterEventMapper(IDPConfigDeactivatedEventType, IDPConfigDeactivatedEventMapper). RegisterFilterEventMapper(AggregateType, IDPConfigDeactivatedEventType, IDPConfigDeactivatedEventMapper).
RegisterFilterEventMapper(IDPConfigReactivatedEventType, IDPConfigReactivatedEventMapper). RegisterFilterEventMapper(AggregateType, IDPConfigReactivatedEventType, IDPConfigReactivatedEventMapper).
RegisterFilterEventMapper(IDPOIDCConfigAddedEventType, IDPOIDCConfigAddedEventMapper). RegisterFilterEventMapper(AggregateType, IDPOIDCConfigAddedEventType, IDPOIDCConfigAddedEventMapper).
RegisterFilterEventMapper(IDPOIDCConfigChangedEventType, IDPOIDCConfigChangedEventMapper). RegisterFilterEventMapper(AggregateType, IDPOIDCConfigChangedEventType, IDPOIDCConfigChangedEventMapper).
RegisterFilterEventMapper(IDPJWTConfigAddedEventType, IDPJWTConfigAddedEventMapper). RegisterFilterEventMapper(AggregateType, IDPJWTConfigAddedEventType, IDPJWTConfigAddedEventMapper).
RegisterFilterEventMapper(IDPJWTConfigChangedEventType, IDPJWTConfigChangedEventMapper). RegisterFilterEventMapper(AggregateType, IDPJWTConfigChangedEventType, IDPJWTConfigChangedEventMapper).
RegisterFilterEventMapper(TriggerActionsSetEventType, TriggerActionsSetEventMapper). RegisterFilterEventMapper(AggregateType, TriggerActionsSetEventType, TriggerActionsSetEventMapper).
RegisterFilterEventMapper(TriggerActionsCascadeRemovedEventType, TriggerActionsCascadeRemovedEventMapper). RegisterFilterEventMapper(AggregateType, TriggerActionsCascadeRemovedEventType, TriggerActionsCascadeRemovedEventMapper).
RegisterFilterEventMapper(FlowClearedEventType, FlowClearedEventMapper). RegisterFilterEventMapper(AggregateType, FlowClearedEventType, FlowClearedEventMapper).
RegisterFilterEventMapper(MetadataSetType, MetadataSetEventMapper). RegisterFilterEventMapper(AggregateType, MetadataSetType, MetadataSetEventMapper).
RegisterFilterEventMapper(MetadataRemovedType, MetadataRemovedEventMapper). RegisterFilterEventMapper(AggregateType, MetadataRemovedType, MetadataRemovedEventMapper).
RegisterFilterEventMapper(MetadataRemovedAllType, MetadataRemovedAllEventMapper) RegisterFilterEventMapper(AggregateType, MetadataRemovedAllType, MetadataRemovedAllEventMapper)
} }

View File

@ -5,43 +5,43 @@ import (
) )
func RegisterEventMappers(es *eventstore.Eventstore) { func RegisterEventMappers(es *eventstore.Eventstore) {
es.RegisterFilterEventMapper(ProjectAddedType, ProjectAddedEventMapper). es.RegisterFilterEventMapper(AggregateType, ProjectAddedType, ProjectAddedEventMapper).
RegisterFilterEventMapper(ProjectChangedType, ProjectChangeEventMapper). RegisterFilterEventMapper(AggregateType, ProjectChangedType, ProjectChangeEventMapper).
RegisterFilterEventMapper(ProjectDeactivatedType, ProjectDeactivatedEventMapper). RegisterFilterEventMapper(AggregateType, ProjectDeactivatedType, ProjectDeactivatedEventMapper).
RegisterFilterEventMapper(ProjectReactivatedType, ProjectReactivatedEventMapper). RegisterFilterEventMapper(AggregateType, ProjectReactivatedType, ProjectReactivatedEventMapper).
RegisterFilterEventMapper(ProjectRemovedType, ProjectRemovedEventMapper). RegisterFilterEventMapper(AggregateType, ProjectRemovedType, ProjectRemovedEventMapper).
RegisterFilterEventMapper(MemberAddedType, MemberAddedEventMapper). RegisterFilterEventMapper(AggregateType, MemberAddedType, MemberAddedEventMapper).
RegisterFilterEventMapper(MemberChangedType, MemberChangedEventMapper). RegisterFilterEventMapper(AggregateType, MemberChangedType, MemberChangedEventMapper).
RegisterFilterEventMapper(MemberRemovedType, MemberRemovedEventMapper). RegisterFilterEventMapper(AggregateType, MemberRemovedType, MemberRemovedEventMapper).
RegisterFilterEventMapper(MemberCascadeRemovedType, MemberCascadeRemovedEventMapper). RegisterFilterEventMapper(AggregateType, MemberCascadeRemovedType, MemberCascadeRemovedEventMapper).
RegisterFilterEventMapper(RoleAddedType, RoleAddedEventMapper). RegisterFilterEventMapper(AggregateType, RoleAddedType, RoleAddedEventMapper).
RegisterFilterEventMapper(RoleChangedType, RoleChangedEventMapper). RegisterFilterEventMapper(AggregateType, RoleChangedType, RoleChangedEventMapper).
RegisterFilterEventMapper(RoleRemovedType, RoleRemovedEventMapper). RegisterFilterEventMapper(AggregateType, RoleRemovedType, RoleRemovedEventMapper).
RegisterFilterEventMapper(GrantAddedType, GrantAddedEventMapper). RegisterFilterEventMapper(AggregateType, GrantAddedType, GrantAddedEventMapper).
RegisterFilterEventMapper(GrantChangedType, GrantChangedEventMapper). RegisterFilterEventMapper(AggregateType, GrantChangedType, GrantChangedEventMapper).
RegisterFilterEventMapper(GrantCascadeChangedType, GrantCascadeChangedEventMapper). RegisterFilterEventMapper(AggregateType, GrantCascadeChangedType, GrantCascadeChangedEventMapper).
RegisterFilterEventMapper(GrantDeactivatedType, GrantDeactivateEventMapper). RegisterFilterEventMapper(AggregateType, GrantDeactivatedType, GrantDeactivateEventMapper).
RegisterFilterEventMapper(GrantReactivatedType, GrantReactivatedEventMapper). RegisterFilterEventMapper(AggregateType, GrantReactivatedType, GrantReactivatedEventMapper).
RegisterFilterEventMapper(GrantRemovedType, GrantRemovedEventMapper). RegisterFilterEventMapper(AggregateType, GrantRemovedType, GrantRemovedEventMapper).
RegisterFilterEventMapper(GrantMemberAddedType, GrantMemberAddedEventMapper). RegisterFilterEventMapper(AggregateType, GrantMemberAddedType, GrantMemberAddedEventMapper).
RegisterFilterEventMapper(GrantMemberChangedType, GrantMemberChangedEventMapper). RegisterFilterEventMapper(AggregateType, GrantMemberChangedType, GrantMemberChangedEventMapper).
RegisterFilterEventMapper(GrantMemberRemovedType, GrantMemberRemovedEventMapper). RegisterFilterEventMapper(AggregateType, GrantMemberRemovedType, GrantMemberRemovedEventMapper).
RegisterFilterEventMapper(GrantMemberCascadeRemovedType, GrantMemberCascadeRemovedEventMapper). RegisterFilterEventMapper(AggregateType, GrantMemberCascadeRemovedType, GrantMemberCascadeRemovedEventMapper).
RegisterFilterEventMapper(ApplicationAddedType, ApplicationAddedEventMapper). RegisterFilterEventMapper(AggregateType, ApplicationAddedType, ApplicationAddedEventMapper).
RegisterFilterEventMapper(ApplicationChangedType, ApplicationChangedEventMapper). RegisterFilterEventMapper(AggregateType, ApplicationChangedType, ApplicationChangedEventMapper).
RegisterFilterEventMapper(ApplicationRemovedType, ApplicationRemovedEventMapper). RegisterFilterEventMapper(AggregateType, ApplicationRemovedType, ApplicationRemovedEventMapper).
RegisterFilterEventMapper(ApplicationDeactivatedType, ApplicationDeactivatedEventMapper). RegisterFilterEventMapper(AggregateType, ApplicationDeactivatedType, ApplicationDeactivatedEventMapper).
RegisterFilterEventMapper(ApplicationReactivatedType, ApplicationReactivatedEventMapper). RegisterFilterEventMapper(AggregateType, ApplicationReactivatedType, ApplicationReactivatedEventMapper).
RegisterFilterEventMapper(OIDCConfigAddedType, OIDCConfigAddedEventMapper). RegisterFilterEventMapper(AggregateType, OIDCConfigAddedType, OIDCConfigAddedEventMapper).
RegisterFilterEventMapper(OIDCConfigChangedType, OIDCConfigChangedEventMapper). RegisterFilterEventMapper(AggregateType, OIDCConfigChangedType, OIDCConfigChangedEventMapper).
RegisterFilterEventMapper(OIDCConfigSecretChangedType, OIDCConfigSecretChangedEventMapper). RegisterFilterEventMapper(AggregateType, OIDCConfigSecretChangedType, OIDCConfigSecretChangedEventMapper).
RegisterFilterEventMapper(OIDCClientSecretCheckSucceededType, OIDCConfigSecretCheckSucceededEventMapper). RegisterFilterEventMapper(AggregateType, OIDCClientSecretCheckSucceededType, OIDCConfigSecretCheckSucceededEventMapper).
RegisterFilterEventMapper(OIDCClientSecretCheckFailedType, OIDCConfigSecretCheckFailedEventMapper). RegisterFilterEventMapper(AggregateType, OIDCClientSecretCheckFailedType, OIDCConfigSecretCheckFailedEventMapper).
RegisterFilterEventMapper(APIConfigAddedType, APIConfigAddedEventMapper). RegisterFilterEventMapper(AggregateType, APIConfigAddedType, APIConfigAddedEventMapper).
RegisterFilterEventMapper(APIConfigChangedType, APIConfigChangedEventMapper). RegisterFilterEventMapper(AggregateType, APIConfigChangedType, APIConfigChangedEventMapper).
RegisterFilterEventMapper(APIConfigSecretChangedType, APIConfigSecretChangedEventMapper). RegisterFilterEventMapper(AggregateType, APIConfigSecretChangedType, APIConfigSecretChangedEventMapper).
RegisterFilterEventMapper(ApplicationKeyAddedEventType, ApplicationKeyAddedEventMapper). RegisterFilterEventMapper(AggregateType, ApplicationKeyAddedEventType, ApplicationKeyAddedEventMapper).
RegisterFilterEventMapper(ApplicationKeyRemovedEventType, ApplicationKeyRemovedEventMapper). RegisterFilterEventMapper(AggregateType, ApplicationKeyRemovedEventType, ApplicationKeyRemovedEventMapper).
RegisterFilterEventMapper(SAMLConfigAddedType, SAMLConfigAddedEventMapper). RegisterFilterEventMapper(AggregateType, SAMLConfigAddedType, SAMLConfigAddedEventMapper).
RegisterFilterEventMapper(SAMLConfigChangedType, SAMLConfigChangedEventMapper) RegisterFilterEventMapper(AggregateType, SAMLConfigChangedType, SAMLConfigChangedEventMapper)
} }

View File

@ -5,113 +5,113 @@ import (
) )
func RegisterEventMappers(es *eventstore.Eventstore) { func RegisterEventMappers(es *eventstore.Eventstore) {
es.RegisterFilterEventMapper(UserV1AddedType, HumanAddedEventMapper). es.RegisterFilterEventMapper(AggregateType, UserV1AddedType, HumanAddedEventMapper).
RegisterFilterEventMapper(UserV1RegisteredType, HumanRegisteredEventMapper). RegisterFilterEventMapper(AggregateType, UserV1RegisteredType, HumanRegisteredEventMapper).
RegisterFilterEventMapper(UserV1InitialCodeAddedType, HumanInitialCodeAddedEventMapper). RegisterFilterEventMapper(AggregateType, UserV1InitialCodeAddedType, HumanInitialCodeAddedEventMapper).
RegisterFilterEventMapper(UserV1InitialCodeSentType, HumanInitialCodeSentEventMapper). RegisterFilterEventMapper(AggregateType, UserV1InitialCodeSentType, HumanInitialCodeSentEventMapper).
RegisterFilterEventMapper(UserV1InitializedCheckSucceededType, HumanInitializedCheckSucceededEventMapper). RegisterFilterEventMapper(AggregateType, UserV1InitializedCheckSucceededType, HumanInitializedCheckSucceededEventMapper).
RegisterFilterEventMapper(UserV1InitializedCheckFailedType, HumanInitializedCheckFailedEventMapper). RegisterFilterEventMapper(AggregateType, UserV1InitializedCheckFailedType, HumanInitializedCheckFailedEventMapper).
RegisterFilterEventMapper(UserV1SignedOutType, HumanSignedOutEventMapper). RegisterFilterEventMapper(AggregateType, UserV1SignedOutType, HumanSignedOutEventMapper).
RegisterFilterEventMapper(UserV1PasswordChangedType, HumanPasswordChangedEventMapper). RegisterFilterEventMapper(AggregateType, UserV1PasswordChangedType, HumanPasswordChangedEventMapper).
RegisterFilterEventMapper(UserV1PasswordCodeAddedType, HumanPasswordCodeAddedEventMapper). RegisterFilterEventMapper(AggregateType, UserV1PasswordCodeAddedType, HumanPasswordCodeAddedEventMapper).
RegisterFilterEventMapper(UserV1PasswordCodeSentType, HumanPasswordCodeSentEventMapper). RegisterFilterEventMapper(AggregateType, UserV1PasswordCodeSentType, HumanPasswordCodeSentEventMapper).
RegisterFilterEventMapper(UserV1PasswordCheckSucceededType, HumanPasswordCheckSucceededEventMapper). RegisterFilterEventMapper(AggregateType, UserV1PasswordCheckSucceededType, HumanPasswordCheckSucceededEventMapper).
RegisterFilterEventMapper(UserV1PasswordCheckFailedType, HumanPasswordCheckFailedEventMapper). RegisterFilterEventMapper(AggregateType, UserV1PasswordCheckFailedType, HumanPasswordCheckFailedEventMapper).
RegisterFilterEventMapper(UserV1EmailChangedType, HumanEmailChangedEventMapper). RegisterFilterEventMapper(AggregateType, UserV1EmailChangedType, HumanEmailChangedEventMapper).
RegisterFilterEventMapper(UserV1EmailVerifiedType, HumanEmailVerifiedEventMapper). RegisterFilterEventMapper(AggregateType, UserV1EmailVerifiedType, HumanEmailVerifiedEventMapper).
RegisterFilterEventMapper(UserV1EmailVerificationFailedType, HumanEmailVerificationFailedEventMapper). RegisterFilterEventMapper(AggregateType, UserV1EmailVerificationFailedType, HumanEmailVerificationFailedEventMapper).
RegisterFilterEventMapper(UserV1EmailCodeAddedType, HumanEmailCodeAddedEventMapper). RegisterFilterEventMapper(AggregateType, UserV1EmailCodeAddedType, HumanEmailCodeAddedEventMapper).
RegisterFilterEventMapper(UserV1EmailCodeSentType, HumanEmailCodeSentEventMapper). RegisterFilterEventMapper(AggregateType, UserV1EmailCodeSentType, HumanEmailCodeSentEventMapper).
RegisterFilterEventMapper(UserV1PhoneChangedType, HumanPhoneChangedEventMapper). RegisterFilterEventMapper(AggregateType, UserV1PhoneChangedType, HumanPhoneChangedEventMapper).
RegisterFilterEventMapper(UserV1PhoneRemovedType, HumanPhoneRemovedEventMapper). RegisterFilterEventMapper(AggregateType, UserV1PhoneRemovedType, HumanPhoneRemovedEventMapper).
RegisterFilterEventMapper(UserV1PhoneVerifiedType, HumanPhoneVerifiedEventMapper). RegisterFilterEventMapper(AggregateType, UserV1PhoneVerifiedType, HumanPhoneVerifiedEventMapper).
RegisterFilterEventMapper(UserV1PhoneVerificationFailedType, HumanPhoneVerificationFailedEventMapper). RegisterFilterEventMapper(AggregateType, UserV1PhoneVerificationFailedType, HumanPhoneVerificationFailedEventMapper).
RegisterFilterEventMapper(UserV1PhoneCodeAddedType, HumanPhoneCodeAddedEventMapper). RegisterFilterEventMapper(AggregateType, UserV1PhoneCodeAddedType, HumanPhoneCodeAddedEventMapper).
RegisterFilterEventMapper(UserV1PhoneCodeSentType, HumanPhoneCodeSentEventMapper). RegisterFilterEventMapper(AggregateType, UserV1PhoneCodeSentType, HumanPhoneCodeSentEventMapper).
RegisterFilterEventMapper(UserV1ProfileChangedType, HumanProfileChangedEventMapper). RegisterFilterEventMapper(AggregateType, UserV1ProfileChangedType, HumanProfileChangedEventMapper).
RegisterFilterEventMapper(UserV1AddressChangedType, HumanAddressChangedEventMapper). RegisterFilterEventMapper(AggregateType, UserV1AddressChangedType, HumanAddressChangedEventMapper).
RegisterFilterEventMapper(UserV1MFAInitSkippedType, HumanMFAInitSkippedEventMapper). RegisterFilterEventMapper(AggregateType, UserV1MFAInitSkippedType, HumanMFAInitSkippedEventMapper).
RegisterFilterEventMapper(UserV1MFAOTPAddedType, HumanOTPAddedEventMapper). RegisterFilterEventMapper(AggregateType, UserV1MFAOTPAddedType, HumanOTPAddedEventMapper).
RegisterFilterEventMapper(UserV1MFAOTPVerifiedType, HumanOTPVerifiedEventMapper). RegisterFilterEventMapper(AggregateType, UserV1MFAOTPVerifiedType, HumanOTPVerifiedEventMapper).
RegisterFilterEventMapper(UserV1MFAOTPRemovedType, HumanOTPRemovedEventMapper). RegisterFilterEventMapper(AggregateType, UserV1MFAOTPRemovedType, HumanOTPRemovedEventMapper).
RegisterFilterEventMapper(UserV1MFAOTPCheckSucceededType, HumanOTPCheckSucceededEventMapper). RegisterFilterEventMapper(AggregateType, UserV1MFAOTPCheckSucceededType, HumanOTPCheckSucceededEventMapper).
RegisterFilterEventMapper(UserV1MFAOTPCheckFailedType, HumanOTPCheckFailedEventMapper). RegisterFilterEventMapper(AggregateType, UserV1MFAOTPCheckFailedType, HumanOTPCheckFailedEventMapper).
RegisterFilterEventMapper(UserLockedType, UserLockedEventMapper). RegisterFilterEventMapper(AggregateType, UserLockedType, UserLockedEventMapper).
RegisterFilterEventMapper(UserUnlockedType, UserUnlockedEventMapper). RegisterFilterEventMapper(AggregateType, UserUnlockedType, UserUnlockedEventMapper).
RegisterFilterEventMapper(UserDeactivatedType, UserDeactivatedEventMapper). RegisterFilterEventMapper(AggregateType, UserDeactivatedType, UserDeactivatedEventMapper).
RegisterFilterEventMapper(UserReactivatedType, UserReactivatedEventMapper). RegisterFilterEventMapper(AggregateType, UserReactivatedType, UserReactivatedEventMapper).
RegisterFilterEventMapper(UserRemovedType, UserRemovedEventMapper). RegisterFilterEventMapper(AggregateType, UserRemovedType, UserRemovedEventMapper).
RegisterFilterEventMapper(UserTokenAddedType, UserTokenAddedEventMapper). RegisterFilterEventMapper(AggregateType, UserTokenAddedType, UserTokenAddedEventMapper).
RegisterFilterEventMapper(UserTokenRemovedType, UserTokenRemovedEventMapper). RegisterFilterEventMapper(AggregateType, UserTokenRemovedType, UserTokenRemovedEventMapper).
RegisterFilterEventMapper(UserDomainClaimedType, DomainClaimedEventMapper). RegisterFilterEventMapper(AggregateType, UserDomainClaimedType, DomainClaimedEventMapper).
RegisterFilterEventMapper(UserDomainClaimedSentType, DomainClaimedSentEventMapper). RegisterFilterEventMapper(AggregateType, UserDomainClaimedSentType, DomainClaimedSentEventMapper).
RegisterFilterEventMapper(UserUserNameChangedType, UsernameChangedEventMapper). RegisterFilterEventMapper(AggregateType, UserUserNameChangedType, UsernameChangedEventMapper).
RegisterFilterEventMapper(MetadataSetType, MetadataSetEventMapper). RegisterFilterEventMapper(AggregateType, MetadataSetType, MetadataSetEventMapper).
RegisterFilterEventMapper(MetadataRemovedType, MetadataRemovedEventMapper). RegisterFilterEventMapper(AggregateType, MetadataRemovedType, MetadataRemovedEventMapper).
RegisterFilterEventMapper(MetadataRemovedAllType, MetadataRemovedAllEventMapper). RegisterFilterEventMapper(AggregateType, MetadataRemovedAllType, MetadataRemovedAllEventMapper).
RegisterFilterEventMapper(HumanAddedType, HumanAddedEventMapper). RegisterFilterEventMapper(AggregateType, HumanAddedType, HumanAddedEventMapper).
RegisterFilterEventMapper(HumanRegisteredType, HumanRegisteredEventMapper). RegisterFilterEventMapper(AggregateType, HumanRegisteredType, HumanRegisteredEventMapper).
RegisterFilterEventMapper(HumanInitialCodeAddedType, HumanInitialCodeAddedEventMapper). RegisterFilterEventMapper(AggregateType, HumanInitialCodeAddedType, HumanInitialCodeAddedEventMapper).
RegisterFilterEventMapper(HumanInitialCodeSentType, HumanInitialCodeSentEventMapper). RegisterFilterEventMapper(AggregateType, HumanInitialCodeSentType, HumanInitialCodeSentEventMapper).
RegisterFilterEventMapper(HumanInitializedCheckSucceededType, HumanInitializedCheckSucceededEventMapper). RegisterFilterEventMapper(AggregateType, HumanInitializedCheckSucceededType, HumanInitializedCheckSucceededEventMapper).
RegisterFilterEventMapper(HumanInitializedCheckFailedType, HumanInitializedCheckFailedEventMapper). RegisterFilterEventMapper(AggregateType, HumanInitializedCheckFailedType, HumanInitializedCheckFailedEventMapper).
RegisterFilterEventMapper(HumanSignedOutType, HumanSignedOutEventMapper). RegisterFilterEventMapper(AggregateType, HumanSignedOutType, HumanSignedOutEventMapper).
RegisterFilterEventMapper(HumanPasswordChangedType, HumanPasswordChangedEventMapper). RegisterFilterEventMapper(AggregateType, HumanPasswordChangedType, HumanPasswordChangedEventMapper).
RegisterFilterEventMapper(HumanPasswordCodeAddedType, HumanPasswordCodeAddedEventMapper). RegisterFilterEventMapper(AggregateType, HumanPasswordCodeAddedType, HumanPasswordCodeAddedEventMapper).
RegisterFilterEventMapper(HumanPasswordCodeSentType, HumanPasswordCodeSentEventMapper). RegisterFilterEventMapper(AggregateType, HumanPasswordCodeSentType, HumanPasswordCodeSentEventMapper).
RegisterFilterEventMapper(HumanPasswordCheckSucceededType, HumanPasswordCheckSucceededEventMapper). RegisterFilterEventMapper(AggregateType, HumanPasswordCheckSucceededType, HumanPasswordCheckSucceededEventMapper).
RegisterFilterEventMapper(HumanPasswordCheckFailedType, HumanPasswordCheckFailedEventMapper). RegisterFilterEventMapper(AggregateType, HumanPasswordCheckFailedType, HumanPasswordCheckFailedEventMapper).
RegisterFilterEventMapper(UserIDPLinkAddedType, UserIDPLinkAddedEventMapper). RegisterFilterEventMapper(AggregateType, UserIDPLinkAddedType, UserIDPLinkAddedEventMapper).
RegisterFilterEventMapper(UserIDPLinkRemovedType, UserIDPLinkRemovedEventMapper). RegisterFilterEventMapper(AggregateType, UserIDPLinkRemovedType, UserIDPLinkRemovedEventMapper).
RegisterFilterEventMapper(UserIDPLinkCascadeRemovedType, UserIDPLinkCascadeRemovedEventMapper). RegisterFilterEventMapper(AggregateType, UserIDPLinkCascadeRemovedType, UserIDPLinkCascadeRemovedEventMapper).
RegisterFilterEventMapper(UserIDPLoginCheckSucceededType, UserIDPCheckSucceededEventMapper). RegisterFilterEventMapper(AggregateType, UserIDPLoginCheckSucceededType, UserIDPCheckSucceededEventMapper).
RegisterFilterEventMapper(HumanEmailChangedType, HumanEmailChangedEventMapper). RegisterFilterEventMapper(AggregateType, HumanEmailChangedType, HumanEmailChangedEventMapper).
RegisterFilterEventMapper(HumanEmailVerifiedType, HumanEmailVerifiedEventMapper). RegisterFilterEventMapper(AggregateType, HumanEmailVerifiedType, HumanEmailVerifiedEventMapper).
RegisterFilterEventMapper(HumanEmailVerificationFailedType, HumanEmailVerificationFailedEventMapper). RegisterFilterEventMapper(AggregateType, HumanEmailVerificationFailedType, HumanEmailVerificationFailedEventMapper).
RegisterFilterEventMapper(HumanEmailCodeAddedType, HumanEmailCodeAddedEventMapper). RegisterFilterEventMapper(AggregateType, HumanEmailCodeAddedType, HumanEmailCodeAddedEventMapper).
RegisterFilterEventMapper(HumanEmailCodeSentType, HumanEmailCodeSentEventMapper). RegisterFilterEventMapper(AggregateType, HumanEmailCodeSentType, HumanEmailCodeSentEventMapper).
RegisterFilterEventMapper(HumanPhoneChangedType, HumanPhoneChangedEventMapper). RegisterFilterEventMapper(AggregateType, HumanPhoneChangedType, HumanPhoneChangedEventMapper).
RegisterFilterEventMapper(HumanPhoneRemovedType, HumanPhoneRemovedEventMapper). RegisterFilterEventMapper(AggregateType, HumanPhoneRemovedType, HumanPhoneRemovedEventMapper).
RegisterFilterEventMapper(HumanPhoneVerifiedType, HumanPhoneVerifiedEventMapper). RegisterFilterEventMapper(AggregateType, HumanPhoneVerifiedType, HumanPhoneVerifiedEventMapper).
RegisterFilterEventMapper(HumanPhoneVerificationFailedType, HumanPhoneVerificationFailedEventMapper). RegisterFilterEventMapper(AggregateType, HumanPhoneVerificationFailedType, HumanPhoneVerificationFailedEventMapper).
RegisterFilterEventMapper(HumanPhoneCodeAddedType, HumanPhoneCodeAddedEventMapper). RegisterFilterEventMapper(AggregateType, HumanPhoneCodeAddedType, HumanPhoneCodeAddedEventMapper).
RegisterFilterEventMapper(HumanPhoneCodeSentType, HumanPhoneCodeSentEventMapper). RegisterFilterEventMapper(AggregateType, HumanPhoneCodeSentType, HumanPhoneCodeSentEventMapper).
RegisterFilterEventMapper(HumanProfileChangedType, HumanProfileChangedEventMapper). RegisterFilterEventMapper(AggregateType, HumanProfileChangedType, HumanProfileChangedEventMapper).
RegisterFilterEventMapper(HumanAvatarAddedType, HumanAvatarAddedEventMapper). RegisterFilterEventMapper(AggregateType, HumanAvatarAddedType, HumanAvatarAddedEventMapper).
RegisterFilterEventMapper(HumanAvatarRemovedType, HumanAvatarRemovedEventMapper). RegisterFilterEventMapper(AggregateType, HumanAvatarRemovedType, HumanAvatarRemovedEventMapper).
RegisterFilterEventMapper(HumanAddressChangedType, HumanAddressChangedEventMapper). RegisterFilterEventMapper(AggregateType, HumanAddressChangedType, HumanAddressChangedEventMapper).
RegisterFilterEventMapper(HumanMFAInitSkippedType, HumanMFAInitSkippedEventMapper). RegisterFilterEventMapper(AggregateType, HumanMFAInitSkippedType, HumanMFAInitSkippedEventMapper).
RegisterFilterEventMapper(HumanMFAOTPAddedType, HumanOTPAddedEventMapper). RegisterFilterEventMapper(AggregateType, HumanMFAOTPAddedType, HumanOTPAddedEventMapper).
RegisterFilterEventMapper(HumanMFAOTPVerifiedType, HumanOTPVerifiedEventMapper). RegisterFilterEventMapper(AggregateType, HumanMFAOTPVerifiedType, HumanOTPVerifiedEventMapper).
RegisterFilterEventMapper(HumanMFAOTPRemovedType, HumanOTPRemovedEventMapper). RegisterFilterEventMapper(AggregateType, HumanMFAOTPRemovedType, HumanOTPRemovedEventMapper).
RegisterFilterEventMapper(HumanMFAOTPCheckSucceededType, HumanOTPCheckSucceededEventMapper). RegisterFilterEventMapper(AggregateType, HumanMFAOTPCheckSucceededType, HumanOTPCheckSucceededEventMapper).
RegisterFilterEventMapper(HumanMFAOTPCheckFailedType, HumanOTPCheckFailedEventMapper). RegisterFilterEventMapper(AggregateType, HumanMFAOTPCheckFailedType, HumanOTPCheckFailedEventMapper).
RegisterFilterEventMapper(HumanU2FTokenAddedType, HumanU2FAddedEventMapper). RegisterFilterEventMapper(AggregateType, HumanU2FTokenAddedType, HumanU2FAddedEventMapper).
RegisterFilterEventMapper(HumanU2FTokenVerifiedType, HumanU2FVerifiedEventMapper). RegisterFilterEventMapper(AggregateType, HumanU2FTokenVerifiedType, HumanU2FVerifiedEventMapper).
RegisterFilterEventMapper(HumanU2FTokenSignCountChangedType, HumanU2FSignCountChangedEventMapper). RegisterFilterEventMapper(AggregateType, HumanU2FTokenSignCountChangedType, HumanU2FSignCountChangedEventMapper).
RegisterFilterEventMapper(HumanU2FTokenRemovedType, HumanU2FRemovedEventMapper). RegisterFilterEventMapper(AggregateType, HumanU2FTokenRemovedType, HumanU2FRemovedEventMapper).
RegisterFilterEventMapper(HumanU2FTokenBeginLoginType, HumanU2FBeginLoginEventMapper). RegisterFilterEventMapper(AggregateType, HumanU2FTokenBeginLoginType, HumanU2FBeginLoginEventMapper).
RegisterFilterEventMapper(HumanU2FTokenCheckSucceededType, HumanU2FCheckSucceededEventMapper). RegisterFilterEventMapper(AggregateType, HumanU2FTokenCheckSucceededType, HumanU2FCheckSucceededEventMapper).
RegisterFilterEventMapper(HumanU2FTokenCheckFailedType, HumanU2FCheckFailedEventMapper). RegisterFilterEventMapper(AggregateType, HumanU2FTokenCheckFailedType, HumanU2FCheckFailedEventMapper).
RegisterFilterEventMapper(HumanPasswordlessTokenAddedType, HumanPasswordlessAddedEventMapper). RegisterFilterEventMapper(AggregateType, HumanPasswordlessTokenAddedType, HumanPasswordlessAddedEventMapper).
RegisterFilterEventMapper(HumanPasswordlessTokenVerifiedType, HumanPasswordlessVerifiedEventMapper). RegisterFilterEventMapper(AggregateType, HumanPasswordlessTokenVerifiedType, HumanPasswordlessVerifiedEventMapper).
RegisterFilterEventMapper(HumanPasswordlessTokenSignCountChangedType, HumanPasswordlessSignCountChangedEventMapper). RegisterFilterEventMapper(AggregateType, HumanPasswordlessTokenSignCountChangedType, HumanPasswordlessSignCountChangedEventMapper).
RegisterFilterEventMapper(HumanPasswordlessTokenRemovedType, HumanPasswordlessRemovedEventMapper). RegisterFilterEventMapper(AggregateType, HumanPasswordlessTokenRemovedType, HumanPasswordlessRemovedEventMapper).
RegisterFilterEventMapper(HumanPasswordlessTokenBeginLoginType, HumanPasswordlessBeginLoginEventMapper). RegisterFilterEventMapper(AggregateType, HumanPasswordlessTokenBeginLoginType, HumanPasswordlessBeginLoginEventMapper).
RegisterFilterEventMapper(HumanPasswordlessTokenCheckSucceededType, HumanPasswordlessCheckSucceededEventMapper). RegisterFilterEventMapper(AggregateType, HumanPasswordlessTokenCheckSucceededType, HumanPasswordlessCheckSucceededEventMapper).
RegisterFilterEventMapper(HumanPasswordlessTokenCheckFailedType, HumanPasswordlessCheckFailedEventMapper). RegisterFilterEventMapper(AggregateType, HumanPasswordlessTokenCheckFailedType, HumanPasswordlessCheckFailedEventMapper).
RegisterFilterEventMapper(HumanPasswordlessInitCodeAddedType, HumanPasswordlessInitCodeAddedEventMapper). RegisterFilterEventMapper(AggregateType, HumanPasswordlessInitCodeAddedType, HumanPasswordlessInitCodeAddedEventMapper).
RegisterFilterEventMapper(HumanPasswordlessInitCodeRequestedType, HumanPasswordlessInitCodeRequestedEventMapper). RegisterFilterEventMapper(AggregateType, HumanPasswordlessInitCodeRequestedType, HumanPasswordlessInitCodeRequestedEventMapper).
RegisterFilterEventMapper(HumanPasswordlessInitCodeSentType, HumanPasswordlessInitCodeSentEventMapper). RegisterFilterEventMapper(AggregateType, HumanPasswordlessInitCodeSentType, HumanPasswordlessInitCodeSentEventMapper).
RegisterFilterEventMapper(HumanPasswordlessInitCodeCheckFailedType, HumanPasswordlessInitCodeCodeCheckFailedEventMapper). RegisterFilterEventMapper(AggregateType, HumanPasswordlessInitCodeCheckFailedType, HumanPasswordlessInitCodeCodeCheckFailedEventMapper).
RegisterFilterEventMapper(HumanPasswordlessInitCodeCheckSucceededType, HumanPasswordlessInitCodeCodeCheckSucceededEventMapper). RegisterFilterEventMapper(AggregateType, HumanPasswordlessInitCodeCheckSucceededType, HumanPasswordlessInitCodeCodeCheckSucceededEventMapper).
RegisterFilterEventMapper(HumanRefreshTokenAddedType, HumanRefreshTokenAddedEventMapper). RegisterFilterEventMapper(AggregateType, HumanRefreshTokenAddedType, HumanRefreshTokenAddedEventMapper).
RegisterFilterEventMapper(HumanRefreshTokenRenewedType, HumanRefreshTokenRenewedEventEventMapper). RegisterFilterEventMapper(AggregateType, HumanRefreshTokenRenewedType, HumanRefreshTokenRenewedEventEventMapper).
RegisterFilterEventMapper(HumanRefreshTokenRemovedType, HumanRefreshTokenRemovedEventEventMapper). RegisterFilterEventMapper(AggregateType, HumanRefreshTokenRemovedType, HumanRefreshTokenRemovedEventEventMapper).
RegisterFilterEventMapper(MachineAddedEventType, MachineAddedEventMapper). RegisterFilterEventMapper(AggregateType, MachineAddedEventType, MachineAddedEventMapper).
RegisterFilterEventMapper(MachineChangedEventType, MachineChangedEventMapper). RegisterFilterEventMapper(AggregateType, MachineChangedEventType, MachineChangedEventMapper).
RegisterFilterEventMapper(MachineKeyAddedEventType, MachineKeyAddedEventMapper). RegisterFilterEventMapper(AggregateType, MachineKeyAddedEventType, MachineKeyAddedEventMapper).
RegisterFilterEventMapper(MachineKeyRemovedEventType, MachineKeyRemovedEventMapper). RegisterFilterEventMapper(AggregateType, MachineKeyRemovedEventType, MachineKeyRemovedEventMapper).
RegisterFilterEventMapper(PersonalAccessTokenAddedType, PersonalAccessTokenAddedEventMapper). RegisterFilterEventMapper(AggregateType, PersonalAccessTokenAddedType, PersonalAccessTokenAddedEventMapper).
RegisterFilterEventMapper(PersonalAccessTokenRemovedType, PersonalAccessTokenRemovedEventMapper) RegisterFilterEventMapper(AggregateType, PersonalAccessTokenRemovedType, PersonalAccessTokenRemovedEventMapper)
} }

View File

@ -5,11 +5,11 @@ import (
) )
func RegisterEventMappers(es *eventstore.Eventstore) { func RegisterEventMappers(es *eventstore.Eventstore) {
es.RegisterFilterEventMapper(UserGrantAddedType, UserGrantAddedEventMapper). es.RegisterFilterEventMapper(AggregateType, UserGrantAddedType, UserGrantAddedEventMapper).
RegisterFilterEventMapper(UserGrantChangedType, UserGrantChangedEventMapper). RegisterFilterEventMapper(AggregateType, UserGrantChangedType, UserGrantChangedEventMapper).
RegisterFilterEventMapper(UserGrantCascadeChangedType, UserGrantCascadeChangedEventMapper). RegisterFilterEventMapper(AggregateType, UserGrantCascadeChangedType, UserGrantCascadeChangedEventMapper).
RegisterFilterEventMapper(UserGrantRemovedType, UserGrantRemovedEventMapper). RegisterFilterEventMapper(AggregateType, UserGrantRemovedType, UserGrantRemovedEventMapper).
RegisterFilterEventMapper(UserGrantCascadeRemovedType, UserGrantCascadeRemovedEventMapper). RegisterFilterEventMapper(AggregateType, UserGrantCascadeRemovedType, UserGrantCascadeRemovedEventMapper).
RegisterFilterEventMapper(UserGrantDeactivatedType, UserGrantDeactivatedEventMapper). RegisterFilterEventMapper(AggregateType, UserGrantDeactivatedType, UserGrantDeactivatedEventMapper).
RegisterFilterEventMapper(UserGrantReactivatedType, UserGrantReactivatedEventMapper) RegisterFilterEventMapper(AggregateType, UserGrantReactivatedType, UserGrantReactivatedEventMapper)
} }

View File

@ -10,6 +10,7 @@ import "zitadel/policy.proto";
import "zitadel/settings.proto"; import "zitadel/settings.proto";
import "zitadel/text.proto"; import "zitadel/text.proto";
import "zitadel/member.proto"; import "zitadel/member.proto";
import "zitadel/event.proto";
import "zitadel/management.proto"; import "zitadel/management.proto";
import "zitadel/v1.proto"; import "zitadel/v1.proto";
@ -2544,6 +2545,39 @@ service AdminService {
permission: "iam.read"; permission: "iam.read";
}; };
} }
rpc ListEventTypes(ListEventTypesRequest) returns (ListEventTypesResponse) {
option (google.api.http) = {
post: "/events/types/_search";
body: "*"
};
option (zitadel.v1.auth_option) = {
permission: "events.read";
};
}
rpc ListEvents(ListEventsRequest) returns (ListEventsResponse) {
option (google.api.http) = {
post: "/events/_search";
body: "*"
};
option (zitadel.v1.auth_option) = {
permission: "events.read";
};
}
rpc ListAggregateTypes(ListAggregateTypesRequest) returns (ListAggregateTypesResponse) {
option (google.api.http) = {
post: "/aggregates/types/_search";
body: "*"
};
option (zitadel.v1.auth_option) = {
permission: "events.read";
};
}
} }
@ -4797,3 +4831,76 @@ message ExportDataRequest {
message ExportDataResponse { message ExportDataResponse {
repeated DataOrg orgs = 1; repeated DataOrg orgs = 1;
} }
message ListEventsRequest {
// sequence represents the order of events. It's always upcounting
// if asc is false sequence is used as less than filter
// if asc is true sequence is used as greater than filter
// if sequence is 0 the field is ignored
uint64 sequence = 1 [
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "\"2\"";
}
];
uint32 limit = 2 [
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "20";
description: "Maximum amount of events returned.";
}
];
bool asc = 3 [
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
description: "default is descending sorting order"
}
];
string editor_user_id = 4 [
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "\"69629023906488334\"";
}
];
// the types are or filtered and must match the type exatly
repeated string event_types = 5 [
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "[\"user.human.added\", \"user.machine\"]";
}
];
string aggregate_id = 6 [
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "\"69629023906488334\"";
}
];
string aggregate_type = 7 [
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "\"user\"";
}
];
string resource_owner = 8 [
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "\"69629023906488334\"";
}
];
// if asc is false creation_date is used as less than filter
// if asc is true creation_date is used as greater than filter
// if creation_date is not set the field is ignored
google.protobuf.Timestamp creation_date = 9 [
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "\"2019-04-01T08:45:00.000000Z\"";
}
];
}
message ListEventsResponse {
repeated zitadel.event.v1.Event events = 1;
}
message ListEventTypesRequest {}
message ListEventTypesResponse {
repeated string event_types = 1;
}
message ListAggregateTypesRequest {}
message ListAggregateTypesResponse {
repeated string aggregate_types = 1;
}

36
proto/zitadel/event.proto Normal file
View File

@ -0,0 +1,36 @@
syntax = "proto3";
import "google/protobuf/timestamp.proto";
import "google/protobuf/struct.proto";
import "protoc-gen-openapiv2/options/annotations.proto";
package zitadel.event.v1;
option go_package ="github.com/zitadel/zitadel/pkg/grpc/event";
message Event {
Editor editor = 1;
Aggregate aggregate = 2;
uint64 sequence = 3;
// The timestamp the event occurred
google.protobuf.Timestamp creation_date = 4 [
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "\"2019-04-01T08:45:00.000000Z\"";
}
];
google.protobuf.Struct payload = 5;
string type = 6;
}
message Editor {
string user_id = 1;
string display_name = 2;
string service = 3;
}
message Aggregate {
string id = 1;
string type = 2;
string resource_owner = 3;
}