feat(eventstore): increase parallel write capabilities (#5940)

This implementation increases parallel write capabilities of the eventstore.
Please have a look at the technical advisories: [05](https://zitadel.com/docs/support/advisory/a10005) and  [06](https://zitadel.com/docs/support/advisory/a10006).
The implementation of eventstore.push is rewritten and stored events are migrated to a new table `eventstore.events2`.
If you are using cockroach: make sure that the database user of ZITADEL has `VIEWACTIVITY` grant. This is used to query events.
This commit is contained in:
Silvan
2023-10-19 12:19:10 +02:00
committed by GitHub
parent 259faba3f0
commit b5564572bc
791 changed files with 30326 additions and 43202 deletions

View File

@@ -2,14 +2,11 @@ package project
import (
"context"
"encoding/json"
"github.com/zitadel/zitadel/internal/eventstore"
"github.com/zitadel/zitadel/internal/crypto"
"github.com/zitadel/zitadel/internal/domain"
"github.com/zitadel/zitadel/internal/errors"
"github.com/zitadel/zitadel/internal/eventstore/repository"
"github.com/zitadel/zitadel/internal/eventstore"
)
const (
@@ -29,11 +26,11 @@ type APIConfigAddedEvent struct {
AuthMethodType domain.APIAuthMethodType `json:"authMethodType,omitempty"`
}
func (e *APIConfigAddedEvent) Data() interface{} {
func (e *APIConfigAddedEvent) Payload() interface{} {
return e
}
func (e *APIConfigAddedEvent) UniqueConstraints() []*eventstore.EventUniqueConstraint {
func (e *APIConfigAddedEvent) UniqueConstraints() []*eventstore.UniqueConstraint {
return nil
}
@@ -77,12 +74,12 @@ func (e *APIConfigAddedEvent) Validate(cmd eventstore.Command) bool {
return true
}
func APIConfigAddedEventMapper(event *repository.Event) (eventstore.Event, error) {
func APIConfigAddedEventMapper(event eventstore.Event) (eventstore.Event, error) {
e := &APIConfigAddedEvent{
BaseEvent: *eventstore.BaseEventFromRepo(event),
}
err := json.Unmarshal(event.Data, e)
err := event.Unmarshal(e)
if err != nil {
return nil, errors.ThrowInternal(err, "API-BFd15", "unable to unmarshal api config")
}
@@ -98,11 +95,11 @@ type APIConfigChangedEvent struct {
AuthMethodType *domain.APIAuthMethodType `json:"authMethodType,omitempty"`
}
func (e *APIConfigChangedEvent) Data() interface{} {
func (e *APIConfigChangedEvent) Payload() interface{} {
return e
}
func (e *APIConfigChangedEvent) UniqueConstraints() []*eventstore.EventUniqueConstraint {
func (e *APIConfigChangedEvent) UniqueConstraints() []*eventstore.UniqueConstraint {
return nil
}
@@ -138,12 +135,12 @@ func ChangeAPIAuthMethodType(authMethodType domain.APIAuthMethodType) func(event
}
}
func APIConfigChangedEventMapper(event *repository.Event) (eventstore.Event, error) {
func APIConfigChangedEventMapper(event eventstore.Event) (eventstore.Event, error) {
e := &APIConfigChangedEvent{
BaseEvent: *eventstore.BaseEventFromRepo(event),
}
err := json.Unmarshal(event.Data, e)
err := event.Unmarshal(e)
if err != nil {
return nil, errors.ThrowInternal(err, "API-BFd15", "unable to unmarshal api config")
}
@@ -158,11 +155,11 @@ type APIConfigSecretChangedEvent struct {
ClientSecret *crypto.CryptoValue `json:"clientSecret,omitempty"`
}
func (e *APIConfigSecretChangedEvent) Data() interface{} {
func (e *APIConfigSecretChangedEvent) Payload() interface{} {
return e
}
func (e *APIConfigSecretChangedEvent) UniqueConstraints() []*eventstore.EventUniqueConstraint {
func (e *APIConfigSecretChangedEvent) UniqueConstraints() []*eventstore.UniqueConstraint {
return nil
}
@@ -183,12 +180,12 @@ func NewAPIConfigSecretChangedEvent(
}
}
func APIConfigSecretChangedEventMapper(event *repository.Event) (eventstore.Event, error) {
func APIConfigSecretChangedEventMapper(event eventstore.Event) (eventstore.Event, error) {
e := &APIConfigSecretChangedEvent{
BaseEvent: *eventstore.BaseEventFromRepo(event),
}
err := json.Unmarshal(event.Data, e)
err := event.Unmarshal(e)
if err != nil {
return nil, errors.ThrowInternal(err, "API-M893d", "unable to unmarshal api config")
}
@@ -202,11 +199,11 @@ type APIConfigSecretCheckSucceededEvent struct {
AppID string `json:"appId"`
}
func (e *APIConfigSecretCheckSucceededEvent) Data() interface{} {
func (e *APIConfigSecretCheckSucceededEvent) Payload() interface{} {
return e
}
func (e *APIConfigSecretCheckSucceededEvent) UniqueConstraints() []*eventstore.EventUniqueConstraint {
func (e *APIConfigSecretCheckSucceededEvent) UniqueConstraints() []*eventstore.UniqueConstraint {
return nil
}
@@ -225,12 +222,12 @@ func NewAPIConfigSecretCheckSucceededEvent(
}
}
func APIConfigSecretCheckSucceededEventMapper(event *repository.Event) (eventstore.Event, error) {
func APIConfigSecretCheckSucceededEventMapper(event eventstore.Event) (eventstore.Event, error) {
e := &APIConfigSecretCheckSucceededEvent{
BaseEvent: *eventstore.BaseEventFromRepo(event),
}
err := json.Unmarshal(event.Data, e)
err := event.Unmarshal(e)
if err != nil {
return nil, errors.ThrowInternal(err, "API-837gV", "unable to unmarshal api config")
}
@@ -244,11 +241,11 @@ type APIConfigSecretCheckFailedEvent struct {
AppID string `json:"appId"`
}
func (e *APIConfigSecretCheckFailedEvent) Data() interface{} {
func (e *APIConfigSecretCheckFailedEvent) Payload() interface{} {
return e
}
func (e *APIConfigSecretCheckFailedEvent) UniqueConstraints() []*eventstore.EventUniqueConstraint {
func (e *APIConfigSecretCheckFailedEvent) UniqueConstraints() []*eventstore.UniqueConstraint {
return nil
}
@@ -267,12 +264,12 @@ func NewAPIConfigSecretCheckFailedEvent(
}
}
func APIConfigSecretCheckFailedEventMapper(event *repository.Event) (eventstore.Event, error) {
func APIConfigSecretCheckFailedEventMapper(event eventstore.Event) (eventstore.Event, error) {
e := &APIConfigSecretCheckFailedEvent{
BaseEvent: *eventstore.BaseEventFromRepo(event),
}
err := json.Unmarshal(event.Data, e)
err := event.Unmarshal(e)
if err != nil {
return nil, errors.ThrowInternal(err, "API-987g%", "unable to unmarshal api config")
}

View File

@@ -2,13 +2,10 @@ package project
import (
"context"
"encoding/json"
"fmt"
"github.com/zitadel/zitadel/internal/eventstore"
"github.com/zitadel/zitadel/internal/errors"
"github.com/zitadel/zitadel/internal/eventstore/repository"
"github.com/zitadel/zitadel/internal/eventstore"
)
const (
@@ -21,15 +18,15 @@ const (
ApplicationRemovedType = applicationEventTypePrefix + "removed"
)
func NewAddApplicationUniqueConstraint(name, projectID string) *eventstore.EventUniqueConstraint {
func NewAddApplicationUniqueConstraint(name, projectID string) *eventstore.UniqueConstraint {
return eventstore.NewAddEventUniqueConstraint(
UniqueAppNameType,
fmt.Sprintf("%s:%s", name, projectID),
"Errors.Project.App.AlreadyExists")
}
func NewRemoveApplicationUniqueConstraint(name, projectID string) *eventstore.EventUniqueConstraint {
return eventstore.NewRemoveEventUniqueConstraint(
func NewRemoveApplicationUniqueConstraint(name, projectID string) *eventstore.UniqueConstraint {
return eventstore.NewRemoveUniqueConstraint(
UniqueAppNameType,
fmt.Sprintf("%s:%s", name, projectID))
}
@@ -41,12 +38,12 @@ type ApplicationAddedEvent struct {
Name string `json:"name,omitempty"`
}
func (e *ApplicationAddedEvent) Data() interface{} {
func (e *ApplicationAddedEvent) Payload() interface{} {
return e
}
func (e *ApplicationAddedEvent) UniqueConstraints() []*eventstore.EventUniqueConstraint {
return []*eventstore.EventUniqueConstraint{NewAddApplicationUniqueConstraint(e.Name, e.Aggregate().ID)}
func (e *ApplicationAddedEvent) UniqueConstraints() []*eventstore.UniqueConstraint {
return []*eventstore.UniqueConstraint{NewAddApplicationUniqueConstraint(e.Name, e.Aggregate().ID)}
}
func NewApplicationAddedEvent(
@@ -66,12 +63,12 @@ func NewApplicationAddedEvent(
}
}
func ApplicationAddedEventMapper(event *repository.Event) (eventstore.Event, error) {
func ApplicationAddedEventMapper(event eventstore.Event) (eventstore.Event, error) {
e := &ApplicationAddedEvent{
BaseEvent: *eventstore.BaseEventFromRepo(event),
}
err := json.Unmarshal(event.Data, e)
err := event.Unmarshal(e)
if err != nil {
return nil, errors.ThrowInternal(err, "APPLICATION-Nffg2", "unable to unmarshal application")
}
@@ -87,12 +84,12 @@ type ApplicationChangedEvent struct {
oldName string
}
func (e *ApplicationChangedEvent) Data() interface{} {
func (e *ApplicationChangedEvent) Payload() interface{} {
return e
}
func (e *ApplicationChangedEvent) UniqueConstraints() []*eventstore.EventUniqueConstraint {
return []*eventstore.EventUniqueConstraint{
func (e *ApplicationChangedEvent) UniqueConstraints() []*eventstore.UniqueConstraint {
return []*eventstore.UniqueConstraint{
NewRemoveApplicationUniqueConstraint(e.oldName, e.Aggregate().ID),
NewAddApplicationUniqueConstraint(e.Name, e.Aggregate().ID),
}
@@ -117,12 +114,12 @@ func NewApplicationChangedEvent(
}
}
func ApplicationChangedEventMapper(event *repository.Event) (eventstore.Event, error) {
func ApplicationChangedEventMapper(event eventstore.Event) (eventstore.Event, error) {
e := &ApplicationChangedEvent{
BaseEvent: *eventstore.BaseEventFromRepo(event),
}
err := json.Unmarshal(event.Data, e)
err := event.Unmarshal(e)
if err != nil {
return nil, errors.ThrowInternal(err, "APPLICATION-9l0cs", "unable to unmarshal application")
}
@@ -136,11 +133,11 @@ type ApplicationDeactivatedEvent struct {
AppID string `json:"appId,omitempty"`
}
func (e *ApplicationDeactivatedEvent) Data() interface{} {
func (e *ApplicationDeactivatedEvent) Payload() interface{} {
return e
}
func (e *ApplicationDeactivatedEvent) UniqueConstraints() []*eventstore.EventUniqueConstraint {
func (e *ApplicationDeactivatedEvent) UniqueConstraints() []*eventstore.UniqueConstraint {
return nil
}
@@ -159,12 +156,12 @@ func NewApplicationDeactivatedEvent(
}
}
func ApplicationDeactivatedEventMapper(event *repository.Event) (eventstore.Event, error) {
func ApplicationDeactivatedEventMapper(event eventstore.Event) (eventstore.Event, error) {
e := &ApplicationDeactivatedEvent{
BaseEvent: *eventstore.BaseEventFromRepo(event),
}
err := json.Unmarshal(event.Data, e)
err := event.Unmarshal(e)
if err != nil {
return nil, errors.ThrowInternal(err, "APPLICATION-0p9fB", "unable to unmarshal application")
}
@@ -178,11 +175,11 @@ type ApplicationReactivatedEvent struct {
AppID string `json:"appId,omitempty"`
}
func (e *ApplicationReactivatedEvent) Data() interface{} {
func (e *ApplicationReactivatedEvent) Payload() interface{} {
return e
}
func (e *ApplicationReactivatedEvent) UniqueConstraints() []*eventstore.EventUniqueConstraint {
func (e *ApplicationReactivatedEvent) UniqueConstraints() []*eventstore.UniqueConstraint {
return nil
}
@@ -201,12 +198,12 @@ func NewApplicationReactivatedEvent(
}
}
func ApplicationReactivatedEventMapper(event *repository.Event) (eventstore.Event, error) {
func ApplicationReactivatedEventMapper(event eventstore.Event) (eventstore.Event, error) {
e := &ApplicationReactivatedEvent{
BaseEvent: *eventstore.BaseEventFromRepo(event),
}
err := json.Unmarshal(event.Data, e)
err := event.Unmarshal(e)
if err != nil {
return nil, errors.ThrowInternal(err, "APPLICATION-1m9e3", "unable to unmarshal application")
}
@@ -222,12 +219,12 @@ type ApplicationRemovedEvent struct {
entityID string
}
func (e *ApplicationRemovedEvent) Data() interface{} {
func (e *ApplicationRemovedEvent) Payload() interface{} {
return e
}
func (e *ApplicationRemovedEvent) UniqueConstraints() []*eventstore.EventUniqueConstraint {
remove := []*eventstore.EventUniqueConstraint{NewRemoveApplicationUniqueConstraint(e.name, e.Aggregate().ID)}
func (e *ApplicationRemovedEvent) UniqueConstraints() []*eventstore.UniqueConstraint {
remove := []*eventstore.UniqueConstraint{NewRemoveApplicationUniqueConstraint(e.name, e.Aggregate().ID)}
if e.entityID != "" {
remove = append(remove, NewRemoveSAMLConfigEntityIDUniqueConstraint(e.entityID))
}
@@ -253,12 +250,12 @@ func NewApplicationRemovedEvent(
}
}
func ApplicationRemovedEventMapper(event *repository.Event) (eventstore.Event, error) {
func ApplicationRemovedEventMapper(event eventstore.Event) (eventstore.Event, error) {
e := &ApplicationRemovedEvent{
BaseEvent: *eventstore.BaseEventFromRepo(event),
}
err := json.Unmarshal(event.Data, e)
err := event.Unmarshal(e)
if err != nil {
return nil, errors.ThrowInternal(err, "APPLICATION-1m9e3", "unable to unmarshal application")
}

View File

@@ -2,13 +2,10 @@ package project
import (
"context"
"encoding/json"
"fmt"
"github.com/zitadel/zitadel/internal/eventstore"
"github.com/zitadel/zitadel/internal/errors"
"github.com/zitadel/zitadel/internal/eventstore/repository"
"github.com/zitadel/zitadel/internal/eventstore"
)
var (
@@ -22,15 +19,15 @@ var (
GrantRemovedType = grantEventTypePrefix + "removed"
)
func NewAddProjectGrantUniqueConstraint(grantedOrgID, projectID string) *eventstore.EventUniqueConstraint {
func NewAddProjectGrantUniqueConstraint(grantedOrgID, projectID string) *eventstore.UniqueConstraint {
return eventstore.NewAddEventUniqueConstraint(
UniqueGrantType,
fmt.Sprintf("%s:%s", grantedOrgID, projectID),
"Errors.Project.Grant.AlreadyExists")
}
func NewRemoveProjectGrantUniqueConstraint(grantedOrgID, projectID string) *eventstore.EventUniqueConstraint {
return eventstore.NewRemoveEventUniqueConstraint(
func NewRemoveProjectGrantUniqueConstraint(grantedOrgID, projectID string) *eventstore.UniqueConstraint {
return eventstore.NewRemoveUniqueConstraint(
UniqueGrantType,
fmt.Sprintf("%s:%s", grantedOrgID, projectID))
}
@@ -43,12 +40,12 @@ type GrantAddedEvent struct {
RoleKeys []string `json:"roleKeys,omitempty"`
}
func (e *GrantAddedEvent) Data() interface{} {
func (e *GrantAddedEvent) Payload() interface{} {
return e
}
func (e *GrantAddedEvent) UniqueConstraints() []*eventstore.EventUniqueConstraint {
return []*eventstore.EventUniqueConstraint{NewAddProjectGrantUniqueConstraint(e.GrantedOrgID, e.Aggregate().ID)}
func (e *GrantAddedEvent) UniqueConstraints() []*eventstore.UniqueConstraint {
return []*eventstore.UniqueConstraint{NewAddProjectGrantUniqueConstraint(e.GrantedOrgID, e.Aggregate().ID)}
}
func NewGrantAddedEvent(
@@ -70,12 +67,12 @@ func NewGrantAddedEvent(
}
}
func GrantAddedEventMapper(event *repository.Event) (eventstore.Event, error) {
func GrantAddedEventMapper(event eventstore.Event) (eventstore.Event, error) {
e := &GrantAddedEvent{
BaseEvent: *eventstore.BaseEventFromRepo(event),
}
err := json.Unmarshal(event.Data, e)
err := event.Unmarshal(e)
if err != nil {
return nil, errors.ThrowInternal(err, "PROJECT-mL0vs", "unable to unmarshal project grant")
}
@@ -90,11 +87,11 @@ type GrantChangedEvent struct {
RoleKeys []string `json:"roleKeys,omitempty"`
}
func (e *GrantChangedEvent) Data() interface{} {
func (e *GrantChangedEvent) Payload() interface{} {
return e
}
func (e *GrantChangedEvent) UniqueConstraints() []*eventstore.EventUniqueConstraint {
func (e *GrantChangedEvent) UniqueConstraints() []*eventstore.UniqueConstraint {
return nil
}
@@ -115,12 +112,12 @@ func NewGrantChangedEvent(
}
}
func GrantChangedEventMapper(event *repository.Event) (eventstore.Event, error) {
func GrantChangedEventMapper(event eventstore.Event) (eventstore.Event, error) {
e := &GrantChangedEvent{
BaseEvent: *eventstore.BaseEventFromRepo(event),
}
err := json.Unmarshal(event.Data, e)
err := event.Unmarshal(e)
if err != nil {
return nil, errors.ThrowInternal(err, "PROJECT-mL0vs", "unable to unmarshal project grant")
}
@@ -135,11 +132,11 @@ type GrantCascadeChangedEvent struct {
RoleKeys []string `json:"roleKeys,omitempty"`
}
func (e *GrantCascadeChangedEvent) Data() interface{} {
func (e *GrantCascadeChangedEvent) Payload() interface{} {
return e
}
func (e *GrantCascadeChangedEvent) UniqueConstraints() []*eventstore.EventUniqueConstraint {
func (e *GrantCascadeChangedEvent) UniqueConstraints() []*eventstore.UniqueConstraint {
return nil
}
@@ -160,12 +157,12 @@ func NewGrantCascadeChangedEvent(
}
}
func GrantCascadeChangedEventMapper(event *repository.Event) (eventstore.Event, error) {
func GrantCascadeChangedEventMapper(event eventstore.Event) (eventstore.Event, error) {
e := &GrantCascadeChangedEvent{
BaseEvent: *eventstore.BaseEventFromRepo(event),
}
err := json.Unmarshal(event.Data, e)
err := event.Unmarshal(e)
if err != nil {
return nil, errors.ThrowInternal(err, "PROJECT-9o0se", "unable to unmarshal project grant")
}
@@ -179,11 +176,11 @@ type GrantDeactivateEvent struct {
GrantID string `json:"grantId,omitempty"`
}
func (e *GrantDeactivateEvent) Data() interface{} {
func (e *GrantDeactivateEvent) Payload() interface{} {
return e
}
func (e *GrantDeactivateEvent) UniqueConstraints() []*eventstore.EventUniqueConstraint {
func (e *GrantDeactivateEvent) UniqueConstraints() []*eventstore.UniqueConstraint {
return nil
}
@@ -202,12 +199,12 @@ func NewGrantDeactivateEvent(
}
}
func GrantDeactivateEventMapper(event *repository.Event) (eventstore.Event, error) {
func GrantDeactivateEventMapper(event eventstore.Event) (eventstore.Event, error) {
e := &GrantDeactivateEvent{
BaseEvent: *eventstore.BaseEventFromRepo(event),
}
err := json.Unmarshal(event.Data, e)
err := event.Unmarshal(e)
if err != nil {
return nil, errors.ThrowInternal(err, "PROJECT-9o0se", "unable to unmarshal project grant")
}
@@ -221,11 +218,11 @@ type GrantReactivatedEvent struct {
GrantID string `json:"grantId,omitempty"`
}
func (e *GrantReactivatedEvent) Data() interface{} {
func (e *GrantReactivatedEvent) Payload() interface{} {
return e
}
func (e *GrantReactivatedEvent) UniqueConstraints() []*eventstore.EventUniqueConstraint {
func (e *GrantReactivatedEvent) UniqueConstraints() []*eventstore.UniqueConstraint {
return nil
}
@@ -244,12 +241,12 @@ func NewGrantReactivatedEvent(
}
}
func GrantReactivatedEventMapper(event *repository.Event) (eventstore.Event, error) {
func GrantReactivatedEventMapper(event eventstore.Event) (eventstore.Event, error) {
e := &GrantReactivatedEvent{
BaseEvent: *eventstore.BaseEventFromRepo(event),
}
err := json.Unmarshal(event.Data, e)
err := event.Unmarshal(e)
if err != nil {
return nil, errors.ThrowInternal(err, "PROJECT-78f7D", "unable to unmarshal project grant")
}
@@ -264,12 +261,12 @@ type GrantRemovedEvent struct {
grantedOrgID string
}
func (e *GrantRemovedEvent) Data() interface{} {
func (e *GrantRemovedEvent) Payload() interface{} {
return e
}
func (e *GrantRemovedEvent) UniqueConstraints() []*eventstore.EventUniqueConstraint {
return []*eventstore.EventUniqueConstraint{NewRemoveProjectGrantUniqueConstraint(e.grantedOrgID, e.Aggregate().ID)}
func (e *GrantRemovedEvent) UniqueConstraints() []*eventstore.UniqueConstraint {
return []*eventstore.UniqueConstraint{NewRemoveProjectGrantUniqueConstraint(e.grantedOrgID, e.Aggregate().ID)}
}
func NewGrantRemovedEvent(
@@ -289,12 +286,12 @@ func NewGrantRemovedEvent(
}
}
func GrantRemovedEventMapper(event *repository.Event) (eventstore.Event, error) {
func GrantRemovedEventMapper(event eventstore.Event) (eventstore.Event, error) {
e := &GrantRemovedEvent{
BaseEvent: *eventstore.BaseEventFromRepo(event),
}
err := json.Unmarshal(event.Data, e)
err := event.Unmarshal(e)
if err != nil {
return nil, errors.ThrowInternal(err, "PROJECT-28jM8", "unable to unmarshal project grant")
}

View File

@@ -2,13 +2,10 @@ package project
import (
"context"
"encoding/json"
"fmt"
"github.com/zitadel/zitadel/internal/eventstore"
"github.com/zitadel/zitadel/internal/errors"
"github.com/zitadel/zitadel/internal/eventstore/repository"
"github.com/zitadel/zitadel/internal/eventstore"
"github.com/zitadel/zitadel/internal/repository/member"
)
@@ -20,15 +17,15 @@ var (
GrantMemberCascadeRemovedType = grantEventTypePrefix + member.CascadeRemovedEventType
)
func NewAddProjectGrantMemberUniqueConstraint(projectID, userID, grantID string) *eventstore.EventUniqueConstraint {
func NewAddProjectGrantMemberUniqueConstraint(projectID, userID, grantID string) *eventstore.UniqueConstraint {
return eventstore.NewAddEventUniqueConstraint(
UniqueProjectGrantMemberType,
fmt.Sprintf("%s:%s:%s", projectID, userID, grantID),
"Errors.Project.Member.AlreadyExists")
}
func NewRemoveProjectGrantMemberUniqueConstraint(projectID, userID, grantID string) *eventstore.EventUniqueConstraint {
return eventstore.NewRemoveEventUniqueConstraint(
func NewRemoveProjectGrantMemberUniqueConstraint(projectID, userID, grantID string) *eventstore.UniqueConstraint {
return eventstore.NewRemoveUniqueConstraint(
UniqueProjectGrantMemberType,
fmt.Sprintf("%s:%s:%s", projectID, userID, grantID),
)
@@ -42,12 +39,12 @@ type GrantMemberAddedEvent struct {
GrantID string `json:"grantId"`
}
func (e *GrantMemberAddedEvent) Data() interface{} {
func (e *GrantMemberAddedEvent) Payload() interface{} {
return e
}
func (e *GrantMemberAddedEvent) UniqueConstraints() []*eventstore.EventUniqueConstraint {
return []*eventstore.EventUniqueConstraint{NewAddProjectGrantMemberUniqueConstraint(e.Aggregate().ID, e.UserID, e.GrantID)}
func (e *GrantMemberAddedEvent) UniqueConstraints() []*eventstore.UniqueConstraint {
return []*eventstore.UniqueConstraint{NewAddProjectGrantMemberUniqueConstraint(e.Aggregate().ID, e.UserID, e.GrantID)}
}
func NewProjectGrantMemberAddedEvent(
@@ -69,12 +66,12 @@ func NewProjectGrantMemberAddedEvent(
}
}
func GrantMemberAddedEventMapper(event *repository.Event) (eventstore.Event, error) {
func GrantMemberAddedEventMapper(event eventstore.Event) (eventstore.Event, error) {
e := &GrantMemberAddedEvent{
BaseEvent: *eventstore.BaseEventFromRepo(event),
}
err := json.Unmarshal(event.Data, e)
err := event.Unmarshal(e)
if err != nil {
return nil, errors.ThrowInternal(err, "PROJECT-9f0sf", "unable to unmarshal label policy")
}
@@ -90,11 +87,11 @@ type GrantMemberChangedEvent struct {
UserID string `json:"userId"`
}
func (e *GrantMemberChangedEvent) Data() interface{} {
func (e *GrantMemberChangedEvent) Payload() interface{} {
return e
}
func (e *GrantMemberChangedEvent) UniqueConstraints() []*eventstore.EventUniqueConstraint {
func (e *GrantMemberChangedEvent) UniqueConstraints() []*eventstore.UniqueConstraint {
return nil
}
@@ -117,12 +114,12 @@ func NewProjectGrantMemberChangedEvent(
}
}
func GrantMemberChangedEventMapper(event *repository.Event) (eventstore.Event, error) {
func GrantMemberChangedEventMapper(event eventstore.Event) (eventstore.Event, error) {
e := &GrantMemberChangedEvent{
BaseEvent: *eventstore.BaseEventFromRepo(event),
}
err := json.Unmarshal(event.Data, e)
err := event.Unmarshal(e)
if err != nil {
return nil, errors.ThrowInternal(err, "PROJECT-39fi8", "unable to unmarshal label policy")
}
@@ -137,12 +134,12 @@ type GrantMemberRemovedEvent struct {
GrantID string `json:"grantId"`
}
func (e *GrantMemberRemovedEvent) Data() interface{} {
func (e *GrantMemberRemovedEvent) Payload() interface{} {
return e
}
func (e *GrantMemberRemovedEvent) UniqueConstraints() []*eventstore.EventUniqueConstraint {
return []*eventstore.EventUniqueConstraint{NewRemoveProjectGrantMemberUniqueConstraint(e.Aggregate().ID, e.UserID, e.GrantID)}
func (e *GrantMemberRemovedEvent) UniqueConstraints() []*eventstore.UniqueConstraint {
return []*eventstore.UniqueConstraint{NewRemoveProjectGrantMemberUniqueConstraint(e.Aggregate().ID, e.UserID, e.GrantID)}
}
func NewProjectGrantMemberRemovedEvent(
@@ -162,12 +159,12 @@ func NewProjectGrantMemberRemovedEvent(
}
}
func GrantMemberRemovedEventMapper(event *repository.Event) (eventstore.Event, error) {
func GrantMemberRemovedEventMapper(event eventstore.Event) (eventstore.Event, error) {
e := &GrantMemberRemovedEvent{
BaseEvent: *eventstore.BaseEventFromRepo(event),
}
err := json.Unmarshal(event.Data, e)
err := event.Unmarshal(e)
if err != nil {
return nil, errors.ThrowInternal(err, "PROJECT-173fM", "unable to unmarshal label policy")
}
@@ -182,12 +179,12 @@ type GrantMemberCascadeRemovedEvent struct {
GrantID string `json:"grantId"`
}
func (e *GrantMemberCascadeRemovedEvent) Data() interface{} {
func (e *GrantMemberCascadeRemovedEvent) Payload() interface{} {
return e
}
func (e *GrantMemberCascadeRemovedEvent) UniqueConstraints() []*eventstore.EventUniqueConstraint {
return []*eventstore.EventUniqueConstraint{NewRemoveProjectGrantMemberUniqueConstraint(e.Aggregate().ID, e.UserID, e.GrantID)}
func (e *GrantMemberCascadeRemovedEvent) UniqueConstraints() []*eventstore.UniqueConstraint {
return []*eventstore.UniqueConstraint{NewRemoveProjectGrantMemberUniqueConstraint(e.Aggregate().ID, e.UserID, e.GrantID)}
}
func NewProjectGrantMemberCascadeRemovedEvent(
@@ -207,12 +204,12 @@ func NewProjectGrantMemberCascadeRemovedEvent(
}
}
func GrantMemberCascadeRemovedEventMapper(event *repository.Event) (eventstore.Event, error) {
func GrantMemberCascadeRemovedEventMapper(event eventstore.Event) (eventstore.Event, error) {
e := &GrantMemberCascadeRemovedEvent{
BaseEvent: *eventstore.BaseEventFromRepo(event),
}
err := json.Unmarshal(event.Data, e)
err := event.Unmarshal(e)
if err != nil {
return nil, errors.ThrowInternal(err, "PROJECT-3kfs3", "unable to unmarshal label policy")
}

View File

@@ -2,14 +2,11 @@ package project
import (
"context"
"encoding/json"
"time"
"github.com/zitadel/zitadel/internal/eventstore"
"github.com/zitadel/zitadel/internal/domain"
"github.com/zitadel/zitadel/internal/errors"
"github.com/zitadel/zitadel/internal/eventstore/repository"
"github.com/zitadel/zitadel/internal/eventstore"
)
const (
@@ -29,11 +26,11 @@ type ApplicationKeyAddedEvent struct {
PublicKey []byte `json:"publicKey,omitempty"`
}
func (e *ApplicationKeyAddedEvent) Data() interface{} {
func (e *ApplicationKeyAddedEvent) Payload() interface{} {
return e
}
func (e *ApplicationKeyAddedEvent) UniqueConstraints() []*eventstore.EventUniqueConstraint {
func (e *ApplicationKeyAddedEvent) UniqueConstraints() []*eventstore.UniqueConstraint {
return nil
}
@@ -62,12 +59,12 @@ func NewApplicationKeyAddedEvent(
}
}
func ApplicationKeyAddedEventMapper(event *repository.Event) (eventstore.Event, error) {
func ApplicationKeyAddedEventMapper(event eventstore.Event) (eventstore.Event, error) {
e := &ApplicationKeyAddedEvent{
BaseEvent: *eventstore.BaseEventFromRepo(event),
}
err := json.Unmarshal(event.Data, e)
err := event.Unmarshal(e)
if err != nil {
return nil, errors.ThrowInternal(err, "API-BFd15", "unable to unmarshal api config")
}
@@ -81,11 +78,11 @@ type ApplicationKeyRemovedEvent struct {
KeyID string `json:"keyId,omitempty"`
}
func (e *ApplicationKeyRemovedEvent) Data() interface{} {
func (e *ApplicationKeyRemovedEvent) Payload() interface{} {
return e
}
func (e *ApplicationKeyRemovedEvent) UniqueConstraints() []*eventstore.EventUniqueConstraint {
func (e *ApplicationKeyRemovedEvent) UniqueConstraints() []*eventstore.UniqueConstraint {
return nil
}
@@ -104,13 +101,13 @@ func NewApplicationKeyRemovedEvent(
}
}
func ApplicationKeyRemovedEventMapper(event *repository.Event) (eventstore.Event, error) {
func ApplicationKeyRemovedEventMapper(event eventstore.Event) (eventstore.Event, error) {
applicationKeyRemoved := &ApplicationKeyRemovedEvent{
BaseEvent: *eventstore.BaseEventFromRepo(event),
}
err := json.Unmarshal(event.Data, applicationKeyRemoved)
err := event.Unmarshal(applicationKeyRemoved)
if err != nil {
return nil, errors.ThrowInternal(err, "USER-5Gm9s", "unable to unmarshal application key removed")
return nil, errors.ThrowInternal(err, "USER-cjLeA", "unable to unmarshal application key removed")
}
return applicationKeyRemoved, nil

View File

@@ -4,8 +4,6 @@ import (
"context"
"github.com/zitadel/zitadel/internal/eventstore"
"github.com/zitadel/zitadel/internal/eventstore/repository"
"github.com/zitadel/zitadel/internal/repository/member"
)
@@ -39,7 +37,7 @@ func NewProjectMemberAddedEvent(
}
}
func MemberAddedEventMapper(event *repository.Event) (eventstore.Event, error) {
func MemberAddedEventMapper(event eventstore.Event) (eventstore.Event, error) {
e, err := member.MemberAddedEventMapper(event)
if err != nil {
return nil, err
@@ -72,7 +70,7 @@ func NewProjectMemberChangedEvent(
}
}
func MemberChangedEventMapper(event *repository.Event) (eventstore.Event, error) {
func MemberChangedEventMapper(event eventstore.Event) (eventstore.Event, error) {
e, err := member.ChangedEventMapper(event)
if err != nil {
return nil, err
@@ -103,7 +101,7 @@ func NewProjectMemberRemovedEvent(
}
}
func MemberRemovedEventMapper(event *repository.Event) (eventstore.Event, error) {
func MemberRemovedEventMapper(event eventstore.Event) (eventstore.Event, error) {
e, err := member.RemovedEventMapper(event)
if err != nil {
return nil, err
@@ -134,7 +132,7 @@ func NewProjectMemberCascadeRemovedEvent(
}
}
func MemberCascadeRemovedEventMapper(event *repository.Event) (eventstore.Event, error) {
func MemberCascadeRemovedEventMapper(event eventstore.Event) (eventstore.Event, error) {
e, err := member.CascadeRemovedEventMapper(event)
if err != nil {
return nil, err

View File

@@ -2,14 +2,12 @@ package project
import (
"context"
"encoding/json"
"time"
"github.com/zitadel/zitadel/internal/crypto"
"github.com/zitadel/zitadel/internal/domain"
"github.com/zitadel/zitadel/internal/errors"
"github.com/zitadel/zitadel/internal/eventstore"
"github.com/zitadel/zitadel/internal/eventstore/repository"
)
const (
@@ -43,11 +41,11 @@ type OIDCConfigAddedEvent struct {
SkipNativeAppSuccessPage bool `json:"skipNativeAppSuccessPage,omitempty"`
}
func (e *OIDCConfigAddedEvent) Data() interface{} {
func (e *OIDCConfigAddedEvent) Payload() interface{} {
return e
}
func (e *OIDCConfigAddedEvent) UniqueConstraints() []*eventstore.EventUniqueConstraint {
func (e *OIDCConfigAddedEvent) UniqueConstraints() []*eventstore.UniqueConstraint {
return nil
}
@@ -185,12 +183,12 @@ func (e *OIDCConfigAddedEvent) Validate(cmd eventstore.Command) bool {
return e.SkipNativeAppSuccessPage == c.SkipNativeAppSuccessPage
}
func OIDCConfigAddedEventMapper(event *repository.Event) (eventstore.Event, error) {
func OIDCConfigAddedEventMapper(event eventstore.Event) (eventstore.Event, error) {
e := &OIDCConfigAddedEvent{
BaseEvent: *eventstore.BaseEventFromRepo(event),
}
err := json.Unmarshal(event.Data, e)
err := event.Unmarshal(e)
if err != nil {
return nil, errors.ThrowInternal(err, "OIDC-BFd15", "unable to unmarshal oidc config")
}
@@ -219,11 +217,11 @@ type OIDCConfigChangedEvent struct {
SkipNativeAppSuccessPage *bool `json:"skipNativeAppSuccessPage,omitempty"`
}
func (e *OIDCConfigChangedEvent) Data() interface{} {
func (e *OIDCConfigChangedEvent) Payload() interface{} {
return e
}
func (e *OIDCConfigChangedEvent) UniqueConstraints() []*eventstore.EventUniqueConstraint {
func (e *OIDCConfigChangedEvent) UniqueConstraints() []*eventstore.UniqueConstraint {
return nil
}
@@ -343,12 +341,12 @@ func ChangeSkipNativeAppSuccessPage(skipNativeAppSuccessPage bool) func(event *O
}
}
func OIDCConfigChangedEventMapper(event *repository.Event) (eventstore.Event, error) {
func OIDCConfigChangedEventMapper(event eventstore.Event) (eventstore.Event, error) {
e := &OIDCConfigChangedEvent{
BaseEvent: *eventstore.BaseEventFromRepo(event),
}
err := json.Unmarshal(event.Data, e)
err := event.Unmarshal(e)
if err != nil {
return nil, errors.ThrowInternal(err, "OIDC-BFd15", "unable to unmarshal oidc config")
}
@@ -363,11 +361,11 @@ type OIDCConfigSecretChangedEvent struct {
ClientSecret *crypto.CryptoValue `json:"clientSecret,omitempty"`
}
func (e *OIDCConfigSecretChangedEvent) Data() interface{} {
func (e *OIDCConfigSecretChangedEvent) Payload() interface{} {
return e
}
func (e *OIDCConfigSecretChangedEvent) UniqueConstraints() []*eventstore.EventUniqueConstraint {
func (e *OIDCConfigSecretChangedEvent) UniqueConstraints() []*eventstore.UniqueConstraint {
return nil
}
@@ -388,12 +386,12 @@ func NewOIDCConfigSecretChangedEvent(
}
}
func OIDCConfigSecretChangedEventMapper(event *repository.Event) (eventstore.Event, error) {
func OIDCConfigSecretChangedEventMapper(event eventstore.Event) (eventstore.Event, error) {
e := &OIDCConfigSecretChangedEvent{
BaseEvent: *eventstore.BaseEventFromRepo(event),
}
err := json.Unmarshal(event.Data, e)
err := event.Unmarshal(e)
if err != nil {
return nil, errors.ThrowInternal(err, "OIDC-M893d", "unable to unmarshal oidc config")
}
@@ -407,11 +405,11 @@ type OIDCConfigSecretCheckSucceededEvent struct {
AppID string `json:"appId"`
}
func (e *OIDCConfigSecretCheckSucceededEvent) Data() interface{} {
func (e *OIDCConfigSecretCheckSucceededEvent) Payload() interface{} {
return e
}
func (e *OIDCConfigSecretCheckSucceededEvent) UniqueConstraints() []*eventstore.EventUniqueConstraint {
func (e *OIDCConfigSecretCheckSucceededEvent) UniqueConstraints() []*eventstore.UniqueConstraint {
return nil
}
@@ -430,12 +428,12 @@ func NewOIDCConfigSecretCheckSucceededEvent(
}
}
func OIDCConfigSecretCheckSucceededEventMapper(event *repository.Event) (eventstore.Event, error) {
func OIDCConfigSecretCheckSucceededEventMapper(event eventstore.Event) (eventstore.Event, error) {
e := &OIDCConfigSecretCheckSucceededEvent{
BaseEvent: *eventstore.BaseEventFromRepo(event),
}
err := json.Unmarshal(event.Data, e)
err := event.Unmarshal(e)
if err != nil {
return nil, errors.ThrowInternal(err, "OIDC-837gV", "unable to unmarshal oidc config")
}
@@ -449,11 +447,11 @@ type OIDCConfigSecretCheckFailedEvent struct {
AppID string `json:"appId"`
}
func (e *OIDCConfigSecretCheckFailedEvent) Data() interface{} {
func (e *OIDCConfigSecretCheckFailedEvent) Payload() interface{} {
return e
}
func (e *OIDCConfigSecretCheckFailedEvent) UniqueConstraints() []*eventstore.EventUniqueConstraint {
func (e *OIDCConfigSecretCheckFailedEvent) UniqueConstraints() []*eventstore.UniqueConstraint {
return nil
}
@@ -472,12 +470,12 @@ func NewOIDCConfigSecretCheckFailedEvent(
}
}
func OIDCConfigSecretCheckFailedEventMapper(event *repository.Event) (eventstore.Event, error) {
func OIDCConfigSecretCheckFailedEventMapper(event eventstore.Event) (eventstore.Event, error) {
e := &OIDCConfigSecretCheckFailedEvent{
BaseEvent: *eventstore.BaseEventFromRepo(event),
}
err := json.Unmarshal(event.Data, e)
err := event.Unmarshal(e)
if err != nil {
return nil, errors.ThrowInternal(err, "OIDC-987g%", "unable to unmarshal oidc config")
}

View File

@@ -2,13 +2,10 @@ package project
import (
"context"
"encoding/json"
"github.com/zitadel/zitadel/internal/domain"
"github.com/zitadel/zitadel/internal/eventstore"
"github.com/zitadel/zitadel/internal/errors"
"github.com/zitadel/zitadel/internal/eventstore/repository"
"github.com/zitadel/zitadel/internal/eventstore"
)
const (
@@ -21,15 +18,15 @@ const (
ProjectRemovedType = projectEventTypePrefix + "removed"
)
func NewAddProjectNameUniqueConstraint(projectName, resourceOwner string) *eventstore.EventUniqueConstraint {
func NewAddProjectNameUniqueConstraint(projectName, resourceOwner string) *eventstore.UniqueConstraint {
return eventstore.NewAddEventUniqueConstraint(
UniqueProjectnameType,
projectName+resourceOwner,
"Errors.Project.AlreadyExists")
}
func NewRemoveProjectNameUniqueConstraint(projectName, resourceOwner string) *eventstore.EventUniqueConstraint {
return eventstore.NewRemoveEventUniqueConstraint(
func NewRemoveProjectNameUniqueConstraint(projectName, resourceOwner string) *eventstore.UniqueConstraint {
return eventstore.NewRemoveUniqueConstraint(
UniqueProjectnameType,
projectName+resourceOwner)
}
@@ -44,12 +41,12 @@ type ProjectAddedEvent struct {
PrivateLabelingSetting domain.PrivateLabelingSetting `json:"privateLabelingSetting,omitempty"`
}
func (e *ProjectAddedEvent) Data() interface{} {
func (e *ProjectAddedEvent) Payload() interface{} {
return e
}
func (e *ProjectAddedEvent) UniqueConstraints() []*eventstore.EventUniqueConstraint {
return []*eventstore.EventUniqueConstraint{NewAddProjectNameUniqueConstraint(e.Name, e.Aggregate().ResourceOwner)}
func (e *ProjectAddedEvent) UniqueConstraints() []*eventstore.UniqueConstraint {
return []*eventstore.UniqueConstraint{NewAddProjectNameUniqueConstraint(e.Name, e.Aggregate().ResourceOwner)}
}
func NewProjectAddedEvent(
@@ -75,12 +72,12 @@ func NewProjectAddedEvent(
}
}
func ProjectAddedEventMapper(event *repository.Event) (eventstore.Event, error) {
func ProjectAddedEventMapper(event eventstore.Event) (eventstore.Event, error) {
e := &ProjectAddedEvent{
BaseEvent: *eventstore.BaseEventFromRepo(event),
}
err := json.Unmarshal(event.Data, e)
err := event.Unmarshal(e)
if err != nil {
return nil, errors.ThrowInternal(err, "PROJECT-Bfg2f", "unable to unmarshal project")
}
@@ -99,13 +96,13 @@ type ProjectChangeEvent struct {
oldName string
}
func (e *ProjectChangeEvent) Data() interface{} {
func (e *ProjectChangeEvent) Payload() interface{} {
return e
}
func (e *ProjectChangeEvent) UniqueConstraints() []*eventstore.EventUniqueConstraint {
if e.oldName != "" {
return []*eventstore.EventUniqueConstraint{
func (e *ProjectChangeEvent) UniqueConstraints() []*eventstore.UniqueConstraint {
if e.Name != nil {
return []*eventstore.UniqueConstraint{
NewRemoveProjectNameUniqueConstraint(e.oldName, e.Aggregate().ResourceOwner),
NewAddProjectNameUniqueConstraint(*e.Name, e.Aggregate().ResourceOwner),
}
@@ -168,12 +165,12 @@ func ChangePrivateLabelingSetting(ChangePrivateLabelingSetting domain.PrivateLab
}
}
func ProjectChangeEventMapper(event *repository.Event) (eventstore.Event, error) {
func ProjectChangeEventMapper(event eventstore.Event) (eventstore.Event, error) {
e := &ProjectChangeEvent{
BaseEvent: *eventstore.BaseEventFromRepo(event),
}
err := json.Unmarshal(event.Data, e)
err := event.Unmarshal(e)
if err != nil {
return nil, errors.ThrowInternal(err, "PROJECT-M9osd", "unable to unmarshal project")
}
@@ -185,11 +182,11 @@ type ProjectDeactivatedEvent struct {
eventstore.BaseEvent `json:"-"`
}
func (e *ProjectDeactivatedEvent) Data() interface{} {
func (e *ProjectDeactivatedEvent) Payload() interface{} {
return nil
}
func (e *ProjectDeactivatedEvent) UniqueConstraints() []*eventstore.EventUniqueConstraint {
func (e *ProjectDeactivatedEvent) UniqueConstraints() []*eventstore.UniqueConstraint {
return nil
}
@@ -203,7 +200,7 @@ func NewProjectDeactivatedEvent(ctx context.Context, aggregate *eventstore.Aggre
}
}
func ProjectDeactivatedEventMapper(event *repository.Event) (eventstore.Event, error) {
func ProjectDeactivatedEventMapper(event eventstore.Event) (eventstore.Event, error) {
return &ProjectDeactivatedEvent{
BaseEvent: *eventstore.BaseEventFromRepo(event),
}, nil
@@ -213,11 +210,11 @@ type ProjectReactivatedEvent struct {
eventstore.BaseEvent `json:"-"`
}
func (e *ProjectReactivatedEvent) Data() interface{} {
func (e *ProjectReactivatedEvent) Payload() interface{} {
return nil
}
func (e *ProjectReactivatedEvent) UniqueConstraints() []*eventstore.EventUniqueConstraint {
func (e *ProjectReactivatedEvent) UniqueConstraints() []*eventstore.UniqueConstraint {
return nil
}
@@ -231,7 +228,7 @@ func NewProjectReactivatedEvent(ctx context.Context, aggregate *eventstore.Aggre
}
}
func ProjectReactivatedEventMapper(event *repository.Event) (eventstore.Event, error) {
func ProjectReactivatedEventMapper(event eventstore.Event) (eventstore.Event, error) {
return &ProjectReactivatedEvent{
BaseEvent: *eventstore.BaseEventFromRepo(event),
}, nil
@@ -241,15 +238,15 @@ type ProjectRemovedEvent struct {
eventstore.BaseEvent `json:"-"`
Name string
entityIDUniqueContraints []*eventstore.EventUniqueConstraint
entityIDUniqueContraints []*eventstore.UniqueConstraint
}
func (e *ProjectRemovedEvent) Data() interface{} {
func (e *ProjectRemovedEvent) Payload() interface{} {
return nil
}
func (e *ProjectRemovedEvent) UniqueConstraints() []*eventstore.EventUniqueConstraint {
constraints := []*eventstore.EventUniqueConstraint{NewRemoveProjectNameUniqueConstraint(e.Name, e.Aggregate().ResourceOwner)}
func (e *ProjectRemovedEvent) UniqueConstraints() []*eventstore.UniqueConstraint {
constraints := []*eventstore.UniqueConstraint{NewRemoveProjectNameUniqueConstraint(e.Name, e.Aggregate().ResourceOwner)}
if e.entityIDUniqueContraints != nil {
for _, constraint := range e.entityIDUniqueContraints {
constraints = append(constraints, constraint)
@@ -262,7 +259,7 @@ func NewProjectRemovedEvent(
ctx context.Context,
aggregate *eventstore.Aggregate,
name string,
entityIDUniqueContraints []*eventstore.EventUniqueConstraint,
entityIDUniqueContraints []*eventstore.UniqueConstraint,
) *ProjectRemovedEvent {
return &ProjectRemovedEvent{
BaseEvent: *eventstore.NewBaseEventForPush(
@@ -275,7 +272,7 @@ func NewProjectRemovedEvent(
}
}
func ProjectRemovedEventMapper(event *repository.Event) (eventstore.Event, error) {
func ProjectRemovedEventMapper(event eventstore.Event) (eventstore.Event, error) {
return &ProjectRemovedEvent{
BaseEvent: *eventstore.BaseEventFromRepo(event),
}, nil

View File

@@ -2,13 +2,10 @@ package project
import (
"context"
"encoding/json"
"fmt"
"github.com/zitadel/zitadel/internal/eventstore"
"github.com/zitadel/zitadel/internal/errors"
"github.com/zitadel/zitadel/internal/eventstore/repository"
"github.com/zitadel/zitadel/internal/eventstore"
)
var (
@@ -19,15 +16,15 @@ var (
RoleRemovedType = roleEventTypePrefix + "removed"
)
func NewAddProjectRoleUniqueConstraint(roleKey, projectID string) *eventstore.EventUniqueConstraint {
func NewAddProjectRoleUniqueConstraint(roleKey, projectID string) *eventstore.UniqueConstraint {
return eventstore.NewAddEventUniqueConstraint(
UniqueRoleType,
fmt.Sprintf("%s:%s", roleKey, projectID),
"Errors.Project.Role.AlreadyExists")
}
func NewRemoveProjectRoleUniqueConstraint(roleKey, projectID string) *eventstore.EventUniqueConstraint {
return eventstore.NewRemoveEventUniqueConstraint(
func NewRemoveProjectRoleUniqueConstraint(roleKey, projectID string) *eventstore.UniqueConstraint {
return eventstore.NewRemoveUniqueConstraint(
UniqueRoleType,
fmt.Sprintf("%s:%s", roleKey, projectID))
}
@@ -40,12 +37,12 @@ type RoleAddedEvent struct {
Group string `json:"group,omitempty"`
}
func (e *RoleAddedEvent) Data() interface{} {
func (e *RoleAddedEvent) Payload() interface{} {
return e
}
func (e *RoleAddedEvent) UniqueConstraints() []*eventstore.EventUniqueConstraint {
return []*eventstore.EventUniqueConstraint{NewAddProjectRoleUniqueConstraint(e.Key, e.Aggregate().ID)}
func (e *RoleAddedEvent) UniqueConstraints() []*eventstore.UniqueConstraint {
return []*eventstore.UniqueConstraint{NewAddProjectRoleUniqueConstraint(e.Key, e.Aggregate().ID)}
}
func NewRoleAddedEvent(
@@ -67,12 +64,12 @@ func NewRoleAddedEvent(
}
}
func RoleAddedEventMapper(event *repository.Event) (eventstore.Event, error) {
func RoleAddedEventMapper(event eventstore.Event) (eventstore.Event, error) {
e := &RoleAddedEvent{
BaseEvent: *eventstore.BaseEventFromRepo(event),
}
err := json.Unmarshal(event.Data, e)
err := event.Unmarshal(e)
if err != nil {
return nil, errors.ThrowInternal(err, "PROJECT-2M0xy", "unable to unmarshal project role")
}
@@ -88,11 +85,11 @@ type RoleChangedEvent struct {
Group *string `json:"group,omitempty"`
}
func (e *RoleChangedEvent) Data() interface{} {
func (e *RoleChangedEvent) Payload() interface{} {
return e
}
func (e *RoleChangedEvent) UniqueConstraints() []*eventstore.EventUniqueConstraint {
func (e *RoleChangedEvent) UniqueConstraints() []*eventstore.UniqueConstraint {
return nil
}
@@ -138,12 +135,12 @@ func ChangeGroup(group string) func(event *RoleChangedEvent) {
e.Group = &group
}
}
func RoleChangedEventMapper(event *repository.Event) (eventstore.Event, error) {
func RoleChangedEventMapper(event eventstore.Event) (eventstore.Event, error) {
e := &RoleChangedEvent{
BaseEvent: *eventstore.BaseEventFromRepo(event),
}
err := json.Unmarshal(event.Data, e)
err := event.Unmarshal(e)
if err != nil {
return nil, errors.ThrowInternal(err, "PROJECT-3M0vx", "unable to unmarshal project role")
}
@@ -157,12 +154,12 @@ type RoleRemovedEvent struct {
Key string `json:"key,omitempty"`
}
func (e *RoleRemovedEvent) Data() interface{} {
func (e *RoleRemovedEvent) Payload() interface{} {
return e
}
func (e *RoleRemovedEvent) UniqueConstraints() []*eventstore.EventUniqueConstraint {
return []*eventstore.EventUniqueConstraint{NewRemoveProjectRoleUniqueConstraint(e.Key, e.Aggregate().ID)}
func (e *RoleRemovedEvent) UniqueConstraints() []*eventstore.UniqueConstraint {
return []*eventstore.UniqueConstraint{NewRemoveProjectRoleUniqueConstraint(e.Key, e.Aggregate().ID)}
}
func NewRoleRemovedEvent(
@@ -179,12 +176,12 @@ func NewRoleRemovedEvent(
}
}
func RoleRemovedEventMapper(event *repository.Event) (eventstore.Event, error) {
func RoleRemovedEventMapper(event eventstore.Event) (eventstore.Event, error) {
e := &RoleRemovedEvent{
BaseEvent: *eventstore.BaseEventFromRepo(event),
}
err := json.Unmarshal(event.Data, e)
err := event.Unmarshal(e)
if err != nil {
return nil, errors.ThrowInternal(err, "PROJECT-1M0xs", "unable to unmarshal project role")
}

View File

@@ -2,11 +2,9 @@ package project
import (
"context"
"encoding/json"
"github.com/zitadel/zitadel/internal/errors"
"github.com/zitadel/zitadel/internal/eventstore"
"github.com/zitadel/zitadel/internal/eventstore/repository"
)
const (
@@ -24,25 +22,25 @@ type SAMLConfigAddedEvent struct {
MetadataURL string `json:"metadata_url,omitempty"`
}
func (e *SAMLConfigAddedEvent) Data() interface{} {
func (e *SAMLConfigAddedEvent) Payload() interface{} {
return e
}
func NewAddSAMLConfigEntityIDUniqueConstraint(entityID string) *eventstore.EventUniqueConstraint {
func NewAddSAMLConfigEntityIDUniqueConstraint(entityID string) *eventstore.UniqueConstraint {
return eventstore.NewAddEventUniqueConstraint(
UniqueEntityIDType,
entityID,
"Errors.Project.App.SAMLEntityIDAlreadyExists")
}
func NewRemoveSAMLConfigEntityIDUniqueConstraint(entityID string) *eventstore.EventUniqueConstraint {
return eventstore.NewRemoveEventUniqueConstraint(
func NewRemoveSAMLConfigEntityIDUniqueConstraint(entityID string) *eventstore.UniqueConstraint {
return eventstore.NewRemoveUniqueConstraint(
UniqueEntityIDType,
entityID)
}
func (e *SAMLConfigAddedEvent) UniqueConstraints() []*eventstore.EventUniqueConstraint {
return []*eventstore.EventUniqueConstraint{NewAddSAMLConfigEntityIDUniqueConstraint(e.EntityID)}
func (e *SAMLConfigAddedEvent) UniqueConstraints() []*eventstore.UniqueConstraint {
return []*eventstore.UniqueConstraint{NewAddSAMLConfigEntityIDUniqueConstraint(e.EntityID)}
}
func NewSAMLConfigAddedEvent(
@@ -66,12 +64,12 @@ func NewSAMLConfigAddedEvent(
}
}
func SAMLConfigAddedEventMapper(event *repository.Event) (eventstore.Event, error) {
func SAMLConfigAddedEventMapper(event eventstore.Event) (eventstore.Event, error) {
e := &SAMLConfigAddedEvent{
BaseEvent: *eventstore.BaseEventFromRepo(event),
}
err := json.Unmarshal(event.Data, e)
err := event.Unmarshal(e)
if err != nil {
return nil, errors.ThrowInternal(err, "SAML-BDd15", "unable to unmarshal saml config")
}
@@ -89,13 +87,13 @@ type SAMLConfigChangedEvent struct {
oldEntityID string
}
func (e *SAMLConfigChangedEvent) Data() interface{} {
func (e *SAMLConfigChangedEvent) Payload() interface{} {
return e
}
func (e *SAMLConfigChangedEvent) UniqueConstraints() []*eventstore.EventUniqueConstraint {
func (e *SAMLConfigChangedEvent) UniqueConstraints() []*eventstore.UniqueConstraint {
if e.EntityID != "" {
return []*eventstore.EventUniqueConstraint{
return []*eventstore.UniqueConstraint{
NewRemoveSAMLConfigEntityIDUniqueConstraint(e.oldEntityID),
NewAddSAMLConfigEntityIDUniqueConstraint(e.EntityID),
}
@@ -149,12 +147,12 @@ func ChangeEntityID(entityID string) func(event *SAMLConfigChangedEvent) {
}
}
func SAMLConfigChangedEventMapper(event *repository.Event) (eventstore.Event, error) {
func SAMLConfigChangedEventMapper(event eventstore.Event) (eventstore.Event, error) {
e := &SAMLConfigChangedEvent{
BaseEvent: *eventstore.BaseEventFromRepo(event),
}
err := json.Unmarshal(event.Data, e)
err := event.Unmarshal(e)
if err != nil {
return nil, errors.ThrowInternal(err, "SAML-BFd15", "unable to unmarshal saml config")
}