mirror of
https://github.com/zitadel/zitadel.git
synced 2025-08-12 03:57:32 +00:00
feat: project view (#90)
* init for views (spooler, handler) * init for views (spooler, handler) * start view in management * granted project * implement granted project view * search granted projects * fix search column * update all projects on project change * search roles * filter org * project members * project grant members * fix tests * application view * project grant search * mock * test appendevents * test appendevents * Update internal/view/query.go Co-authored-by: Livio Amstutz <livio.a@gmail.com> * Update internal/eventstore/spooler/spooler.go Co-authored-by: Livio Amstutz <livio.a@gmail.com> * Update internal/view/query.go Co-authored-by: Livio Amstutz <livio.a@gmail.com> * merge request changes * Update internal/project/repository/view/model/application.go Co-authored-by: Livio Amstutz <livio.a@gmail.com> * merge request changes * Project view sql (#92) * sql and configs * error handling * sql start in eventstore * on error handling, config * read user on members * Update internal/project/repository/view/application_view.go Co-authored-by: Silvan <silvan.reusser@gmail.com> * Update internal/project/repository/view/model/application.go Co-authored-by: Silvan <silvan.reusser@gmail.com> * Update internal/project/repository/view/model/application.go Co-authored-by: Silvan <silvan.reusser@gmail.com> * Update internal/project/repository/view/model/application.go Co-authored-by: Silvan <silvan.reusser@gmail.com> * Update internal/project/repository/view/model/application.go Co-authored-by: Silvan <silvan.reusser@gmail.com> * Update internal/project/repository/view/model/application.go Co-authored-by: Silvan <silvan.reusser@gmail.com> * Update internal/project/repository/view/model/application_query.go Co-authored-by: Silvan <silvan.reusser@gmail.com> * Update pkg/management/api/grpc/project_grant_converter.go Co-authored-by: Silvan <silvan.reusser@gmail.com> * Update pkg/management/api/grpc/project_grant_member_converter.go Co-authored-by: Silvan <silvan.reusser@gmail.com> * Update pkg/management/api/grpc/project_grant_member_converter.go Co-authored-by: Silvan <silvan.reusser@gmail.com> * Update pkg/management/api/grpc/project_member_converter.go Co-authored-by: Silvan <silvan.reusser@gmail.com> * Update pkg/management/api/grpc/project_member_converter.go Co-authored-by: Silvan <silvan.reusser@gmail.com> * Update internal/project/repository/view/model/granted_project.go Co-authored-by: Silvan <silvan.reusser@gmail.com> * return caos errors * Update internal/project/repository/view/model/granted_project_query.go Co-authored-by: Silvan <silvan.reusser@gmail.com> * Update internal/project/repository/view/model/project_grant_member.go Co-authored-by: Silvan <silvan.reusser@gmail.com> * Update internal/project/repository/view/model/project_grant_member_query.go Co-authored-by: Silvan <silvan.reusser@gmail.com> * Update internal/project/repository/view/model/project_member.go Co-authored-by: Silvan <silvan.reusser@gmail.com> * Update internal/project/repository/view/model/project_member_query.go Co-authored-by: Silvan <silvan.reusser@gmail.com> * Update internal/project/repository/view/model/project_role.go Co-authored-by: Silvan <silvan.reusser@gmail.com> * Update internal/project/repository/view/model/project_role_query.go Co-authored-by: Silvan <silvan.reusser@gmail.com> * Update pkg/management/api/grpc/application_converter.go Co-authored-by: Silvan <silvan.reusser@gmail.com> * Update pkg/management/api/grpc/application_converter.go Co-authored-by: Silvan <silvan.reusser@gmail.com> * Update pkg/management/api/grpc/project_converter.go Co-authored-by: Silvan <silvan.reusser@gmail.com> * Update pkg/management/api/grpc/project_converter.go Co-authored-by: Silvan <silvan.reusser@gmail.com> * Update pkg/management/api/grpc/project_converter.go Co-authored-by: Silvan <silvan.reusser@gmail.com> * Update pkg/management/api/grpc/project_converter.go Co-authored-by: Silvan <silvan.reusser@gmail.com> * converter fix Co-authored-by: Livio Amstutz <livio.a@gmail.com> Co-authored-by: Silvan <silvan.reusser@gmail.com>
This commit is contained in:
@@ -57,16 +57,11 @@ func AppsFromModel(apps []*model.Application) []*Application {
|
||||
|
||||
func AppFromModel(app *model.Application) *Application {
|
||||
converted := &Application{
|
||||
ObjectRoot: es_models.ObjectRoot{
|
||||
AggregateID: app.ObjectRoot.AggregateID,
|
||||
Sequence: app.Sequence,
|
||||
ChangeDate: app.ChangeDate,
|
||||
CreationDate: app.CreationDate,
|
||||
},
|
||||
AppID: app.AppID,
|
||||
Name: app.Name,
|
||||
State: int32(app.State),
|
||||
Type: int32(app.Type),
|
||||
ObjectRoot: app.ObjectRoot,
|
||||
AppID: app.AppID,
|
||||
Name: app.Name,
|
||||
State: int32(app.State),
|
||||
Type: int32(app.Type),
|
||||
}
|
||||
if app.OIDCConfig != nil {
|
||||
converted.OIDCConfig = OIDCConfigFromModel(app.OIDCConfig)
|
||||
@@ -76,16 +71,11 @@ func AppFromModel(app *model.Application) *Application {
|
||||
|
||||
func AppToModel(app *Application) *model.Application {
|
||||
converted := &model.Application{
|
||||
ObjectRoot: es_models.ObjectRoot{
|
||||
AggregateID: app.AggregateID,
|
||||
ChangeDate: app.ChangeDate,
|
||||
CreationDate: app.CreationDate,
|
||||
Sequence: app.Sequence,
|
||||
},
|
||||
AppID: app.AppID,
|
||||
Name: app.Name,
|
||||
State: model.AppState(app.State),
|
||||
Type: model.AppType(app.Type),
|
||||
ObjectRoot: app.ObjectRoot,
|
||||
AppID: app.AppID,
|
||||
Name: app.Name,
|
||||
State: model.AppState(app.State),
|
||||
Type: model.AppType(app.Type),
|
||||
}
|
||||
if app.OIDCConfig != nil {
|
||||
converted.OIDCConfig = OIDCConfigToModel(app.OIDCConfig)
|
||||
|
@@ -56,12 +56,7 @@ func OIDCConfigFromModel(config *model.OIDCConfig) *OIDCConfig {
|
||||
grantTypes[i] = int32(rt)
|
||||
}
|
||||
return &OIDCConfig{
|
||||
ObjectRoot: es_models.ObjectRoot{
|
||||
AggregateID: config.ObjectRoot.AggregateID,
|
||||
Sequence: config.Sequence,
|
||||
ChangeDate: config.ChangeDate,
|
||||
CreationDate: config.CreationDate,
|
||||
},
|
||||
ObjectRoot: config.ObjectRoot,
|
||||
AppID: config.AppID,
|
||||
ClientID: config.ClientID,
|
||||
ClientSecret: config.ClientSecret,
|
||||
@@ -84,12 +79,7 @@ func OIDCConfigToModel(config *OIDCConfig) *model.OIDCConfig {
|
||||
grantTypes[i] = model.OIDCGrantType(rt)
|
||||
}
|
||||
return &model.OIDCConfig{
|
||||
ObjectRoot: es_models.ObjectRoot{
|
||||
AggregateID: config.ObjectRoot.AggregateID,
|
||||
Sequence: config.Sequence,
|
||||
ChangeDate: config.ChangeDate,
|
||||
CreationDate: config.CreationDate,
|
||||
},
|
||||
ObjectRoot: config.ObjectRoot,
|
||||
AppID: config.AppID,
|
||||
ClientID: config.ClientID,
|
||||
ClientSecret: config.ClientSecret,
|
||||
|
@@ -35,12 +35,7 @@ func ProjectFromModel(project *model.Project) *Project {
|
||||
apps := AppsFromModel(project.Applications)
|
||||
grants := GrantsFromModel(project.Grants)
|
||||
return &Project{
|
||||
ObjectRoot: es_models.ObjectRoot{
|
||||
AggregateID: project.ObjectRoot.AggregateID,
|
||||
Sequence: project.Sequence,
|
||||
ChangeDate: project.ChangeDate,
|
||||
CreationDate: project.CreationDate,
|
||||
},
|
||||
ObjectRoot: project.ObjectRoot,
|
||||
Name: project.Name,
|
||||
State: int32(project.State),
|
||||
Members: members,
|
||||
@@ -56,12 +51,7 @@ func ProjectToModel(project *Project) *model.Project {
|
||||
apps := AppsToModel(project.Applications)
|
||||
grants := GrantsToModel(project.Grants)
|
||||
return &model.Project{
|
||||
ObjectRoot: es_models.ObjectRoot{
|
||||
AggregateID: project.AggregateID,
|
||||
ChangeDate: project.ChangeDate,
|
||||
CreationDate: project.CreationDate,
|
||||
Sequence: project.Sequence,
|
||||
},
|
||||
ObjectRoot: project.ObjectRoot,
|
||||
Name: project.Name,
|
||||
State: model.ProjectState(project.State),
|
||||
Members: members,
|
||||
@@ -92,63 +82,64 @@ func (p *Project) AppendEvent(event *es_models.Event) error {
|
||||
p.ObjectRoot.AppendEvent(event)
|
||||
|
||||
switch event.Type {
|
||||
case model.ProjectAdded, model.ProjectChanged:
|
||||
if err := json.Unmarshal(event.Data, p); err != nil {
|
||||
logging.Log("EVEN-idl93").WithError(err).Error("could not unmarshal event data")
|
||||
return err
|
||||
}
|
||||
p.State = int32(model.PROJECTSTATE_ACTIVE)
|
||||
return nil
|
||||
case model.ProjectDeactivated:
|
||||
case ProjectAdded, ProjectChanged:
|
||||
return p.AppendAddProjectEvent(event)
|
||||
case ProjectDeactivated:
|
||||
return p.appendDeactivatedEvent()
|
||||
case model.ProjectReactivated:
|
||||
case ProjectReactivated:
|
||||
return p.appendReactivatedEvent()
|
||||
case model.ProjectMemberAdded:
|
||||
case ProjectMemberAdded:
|
||||
return p.appendAddMemberEvent(event)
|
||||
case model.ProjectMemberChanged:
|
||||
case ProjectMemberChanged:
|
||||
return p.appendChangeMemberEvent(event)
|
||||
case model.ProjectMemberRemoved:
|
||||
case ProjectMemberRemoved:
|
||||
return p.appendRemoveMemberEvent(event)
|
||||
case model.ProjectRoleAdded:
|
||||
case ProjectRoleAdded:
|
||||
return p.appendAddRoleEvent(event)
|
||||
case model.ProjectRoleChanged:
|
||||
case ProjectRoleChanged:
|
||||
return p.appendChangeRoleEvent(event)
|
||||
case model.ProjectRoleRemoved:
|
||||
case ProjectRoleRemoved:
|
||||
return p.appendRemoveRoleEvent(event)
|
||||
case model.ApplicationAdded:
|
||||
case ApplicationAdded:
|
||||
return p.appendAddAppEvent(event)
|
||||
case model.ApplicationChanged:
|
||||
case ApplicationChanged:
|
||||
return p.appendChangeAppEvent(event)
|
||||
case model.ApplicationRemoved:
|
||||
case ApplicationRemoved:
|
||||
return p.appendRemoveAppEvent(event)
|
||||
case model.ApplicationDeactivated:
|
||||
case ApplicationDeactivated:
|
||||
return p.appendAppStateEvent(event, model.APPSTATE_INACTIVE)
|
||||
case model.ApplicationReactivated:
|
||||
case ApplicationReactivated:
|
||||
return p.appendAppStateEvent(event, model.APPSTATE_ACTIVE)
|
||||
case model.OIDCConfigAdded:
|
||||
case OIDCConfigAdded:
|
||||
return p.appendAddOIDCConfigEvent(event)
|
||||
case model.OIDCConfigChanged, model.OIDCConfigSecretChanged:
|
||||
case OIDCConfigChanged, OIDCConfigSecretChanged:
|
||||
return p.appendChangeOIDCConfigEvent(event)
|
||||
case model.ProjectGrantAdded:
|
||||
case ProjectGrantAdded:
|
||||
return p.appendAddGrantEvent(event)
|
||||
case model.ProjectGrantChanged:
|
||||
case ProjectGrantChanged:
|
||||
return p.appendChangeGrantEvent(event)
|
||||
case model.ProjectGrantDeactivated:
|
||||
case ProjectGrantDeactivated:
|
||||
return p.appendGrantStateEvent(event, model.PROJECTGRANTSTATE_INACTIVE)
|
||||
case model.ProjectGrantReactivated:
|
||||
case ProjectGrantReactivated:
|
||||
return p.appendGrantStateEvent(event, model.PROJECTGRANTSTATE_ACTIVE)
|
||||
case model.ProjectGrantRemoved:
|
||||
case ProjectGrantRemoved:
|
||||
return p.appendRemoveGrantEvent(event)
|
||||
case model.ProjectGrantMemberAdded:
|
||||
case ProjectGrantMemberAdded:
|
||||
return p.appendAddGrantMemberEvent(event)
|
||||
case model.ProjectGrantMemberChanged:
|
||||
case ProjectGrantMemberChanged:
|
||||
return p.appendChangeGrantMemberEvent(event)
|
||||
case model.ProjectGrantMemberRemoved:
|
||||
case ProjectGrantMemberRemoved:
|
||||
return p.appendRemoveGrantMemberEvent(event)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (p *Project) AppendAddProjectEvent(event *es_models.Event) error {
|
||||
p.setData(event)
|
||||
p.State = int32(model.PROJECTSTATE_ACTIVE)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (p *Project) appendDeactivatedEvent() error {
|
||||
p.State = int32(model.PROJECTSTATE_INACTIVE)
|
||||
return nil
|
||||
@@ -158,3 +149,11 @@ func (p *Project) appendReactivatedEvent() error {
|
||||
p.State = int32(model.PROJECTSTATE_ACTIVE)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (p *Project) setData(event *es_models.Event) error {
|
||||
if err := json.Unmarshal(event.Data, p); err != nil {
|
||||
logging.Log("EVEN-lo9sr").WithError(err).Error("could not unmarshal event data")
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
@@ -59,12 +59,7 @@ func GrantsFromModel(grants []*model.ProjectGrant) []*ProjectGrant {
|
||||
func GrantFromModel(grant *model.ProjectGrant) *ProjectGrant {
|
||||
members := GrantMembersFromModel(grant.Members)
|
||||
return &ProjectGrant{
|
||||
ObjectRoot: es_models.ObjectRoot{
|
||||
AggregateID: grant.ObjectRoot.AggregateID,
|
||||
Sequence: grant.Sequence,
|
||||
ChangeDate: grant.ChangeDate,
|
||||
CreationDate: grant.CreationDate,
|
||||
},
|
||||
ObjectRoot: grant.ObjectRoot,
|
||||
GrantID: grant.GrantID,
|
||||
GrantedOrgID: grant.GrantedOrgID,
|
||||
State: int32(grant.State),
|
||||
@@ -76,12 +71,7 @@ func GrantFromModel(grant *model.ProjectGrant) *ProjectGrant {
|
||||
func GrantToModel(grant *ProjectGrant) *model.ProjectGrant {
|
||||
members := GrantMembersToModel(grant.Members)
|
||||
return &model.ProjectGrant{
|
||||
ObjectRoot: es_models.ObjectRoot{
|
||||
AggregateID: grant.AggregateID,
|
||||
ChangeDate: grant.ChangeDate,
|
||||
CreationDate: grant.CreationDate,
|
||||
Sequence: grant.Sequence,
|
||||
},
|
||||
ObjectRoot: grant.ObjectRoot,
|
||||
GrantID: grant.GrantID,
|
||||
GrantedOrgID: grant.GrantedOrgID,
|
||||
State: model.ProjectGrantState(grant.State),
|
||||
|
@@ -41,29 +41,19 @@ func GrantMembersFromModel(members []*model.ProjectGrantMember) []*ProjectGrantM
|
||||
|
||||
func GrantMemberFromModel(member *model.ProjectGrantMember) *ProjectGrantMember {
|
||||
return &ProjectGrantMember{
|
||||
ObjectRoot: es_models.ObjectRoot{
|
||||
AggregateID: member.ObjectRoot.AggregateID,
|
||||
Sequence: member.Sequence,
|
||||
ChangeDate: member.ChangeDate,
|
||||
CreationDate: member.CreationDate,
|
||||
},
|
||||
GrantID: member.GrantID,
|
||||
UserID: member.UserID,
|
||||
Roles: member.Roles,
|
||||
ObjectRoot: member.ObjectRoot,
|
||||
GrantID: member.GrantID,
|
||||
UserID: member.UserID,
|
||||
Roles: member.Roles,
|
||||
}
|
||||
}
|
||||
|
||||
func GrantMemberToModel(member *ProjectGrantMember) *model.ProjectGrantMember {
|
||||
return &model.ProjectGrantMember{
|
||||
ObjectRoot: es_models.ObjectRoot{
|
||||
AggregateID: member.AggregateID,
|
||||
ChangeDate: member.ChangeDate,
|
||||
CreationDate: member.CreationDate,
|
||||
Sequence: member.Sequence,
|
||||
},
|
||||
GrantID: member.GrantID,
|
||||
UserID: member.UserID,
|
||||
Roles: member.Roles,
|
||||
ObjectRoot: member.ObjectRoot,
|
||||
GrantID: member.GrantID,
|
||||
UserID: member.UserID,
|
||||
Roles: member.Roles,
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -40,27 +40,17 @@ func ProjectMembersFromModel(members []*model.ProjectMember) []*ProjectMember {
|
||||
|
||||
func ProjectMemberFromModel(member *model.ProjectMember) *ProjectMember {
|
||||
return &ProjectMember{
|
||||
ObjectRoot: es_models.ObjectRoot{
|
||||
AggregateID: member.ObjectRoot.AggregateID,
|
||||
Sequence: member.Sequence,
|
||||
ChangeDate: member.ChangeDate,
|
||||
CreationDate: member.CreationDate,
|
||||
},
|
||||
UserID: member.UserID,
|
||||
Roles: member.Roles,
|
||||
ObjectRoot: member.ObjectRoot,
|
||||
UserID: member.UserID,
|
||||
Roles: member.Roles,
|
||||
}
|
||||
}
|
||||
|
||||
func ProjectMemberToModel(member *ProjectMember) *model.ProjectMember {
|
||||
return &model.ProjectMember{
|
||||
ObjectRoot: es_models.ObjectRoot{
|
||||
AggregateID: member.AggregateID,
|
||||
ChangeDate: member.ChangeDate,
|
||||
CreationDate: member.CreationDate,
|
||||
Sequence: member.Sequence,
|
||||
},
|
||||
UserID: member.UserID,
|
||||
Roles: member.Roles,
|
||||
ObjectRoot: member.ObjectRoot,
|
||||
UserID: member.UserID,
|
||||
Roles: member.Roles,
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -41,12 +41,7 @@ func ProjectRolesFromModel(roles []*model.ProjectRole) []*ProjectRole {
|
||||
|
||||
func ProjectRoleFromModel(role *model.ProjectRole) *ProjectRole {
|
||||
return &ProjectRole{
|
||||
ObjectRoot: es_models.ObjectRoot{
|
||||
AggregateID: role.ObjectRoot.AggregateID,
|
||||
Sequence: role.Sequence,
|
||||
ChangeDate: role.ChangeDate,
|
||||
CreationDate: role.CreationDate,
|
||||
},
|
||||
ObjectRoot: role.ObjectRoot,
|
||||
Key: role.Key,
|
||||
DisplayName: role.DisplayName,
|
||||
Group: role.Group,
|
||||
@@ -55,12 +50,7 @@ func ProjectRoleFromModel(role *model.ProjectRole) *ProjectRole {
|
||||
|
||||
func ProjectRoleToModel(role *ProjectRole) *model.ProjectRole {
|
||||
return &model.ProjectRole{
|
||||
ObjectRoot: es_models.ObjectRoot{
|
||||
AggregateID: role.AggregateID,
|
||||
ChangeDate: role.ChangeDate,
|
||||
CreationDate: role.CreationDate,
|
||||
Sequence: role.Sequence,
|
||||
},
|
||||
ObjectRoot: role.ObjectRoot,
|
||||
Key: role.Key,
|
||||
DisplayName: role.DisplayName,
|
||||
Group: role.Group,
|
||||
|
@@ -65,7 +65,7 @@ func TestProjectFromEvents(t *testing.T) {
|
||||
name: "project from events, ok",
|
||||
args: args{
|
||||
event: []*es_models.Event{
|
||||
&es_models.Event{AggregateID: "AggregateID", Sequence: 1, Type: model.ProjectAdded},
|
||||
&es_models.Event{AggregateID: "AggregateID", Sequence: 1, Type: ProjectAdded},
|
||||
},
|
||||
project: &Project{Name: "ProjectName"},
|
||||
},
|
||||
@@ -75,7 +75,7 @@ func TestProjectFromEvents(t *testing.T) {
|
||||
name: "project from events, nil project",
|
||||
args: args{
|
||||
event: []*es_models.Event{
|
||||
&es_models.Event{AggregateID: "AggregateID", Sequence: 1, Type: model.ProjectAdded},
|
||||
&es_models.Event{AggregateID: "AggregateID", Sequence: 1, Type: ProjectAdded},
|
||||
},
|
||||
project: nil,
|
||||
},
|
||||
@@ -109,7 +109,7 @@ func TestAppendEvent(t *testing.T) {
|
||||
{
|
||||
name: "append added event",
|
||||
args: args{
|
||||
event: &es_models.Event{AggregateID: "AggregateID", Sequence: 1, Type: model.ProjectAdded},
|
||||
event: &es_models.Event{AggregateID: "AggregateID", Sequence: 1, Type: ProjectAdded},
|
||||
project: &Project{Name: "ProjectName"},
|
||||
},
|
||||
result: &Project{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID"}, State: int32(model.PROJECTSTATE_ACTIVE), Name: "ProjectName"},
|
||||
@@ -117,7 +117,7 @@ func TestAppendEvent(t *testing.T) {
|
||||
{
|
||||
name: "append change event",
|
||||
args: args{
|
||||
event: &es_models.Event{AggregateID: "AggregateID", Sequence: 1, Type: model.ProjectChanged},
|
||||
event: &es_models.Event{AggregateID: "AggregateID", Sequence: 1, Type: ProjectChanged},
|
||||
project: &Project{Name: "ProjectName"},
|
||||
},
|
||||
result: &Project{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID"}, State: int32(model.PROJECTSTATE_ACTIVE), Name: "ProjectName"},
|
||||
@@ -125,14 +125,14 @@ func TestAppendEvent(t *testing.T) {
|
||||
{
|
||||
name: "append deactivate event",
|
||||
args: args{
|
||||
event: &es_models.Event{AggregateID: "AggregateID", Sequence: 1, Type: model.ProjectDeactivated},
|
||||
event: &es_models.Event{AggregateID: "AggregateID", Sequence: 1, Type: ProjectDeactivated},
|
||||
},
|
||||
result: &Project{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID"}, State: int32(model.PROJECTSTATE_INACTIVE)},
|
||||
},
|
||||
{
|
||||
name: "append reactivate event",
|
||||
args: args{
|
||||
event: &es_models.Event{AggregateID: "AggregateID", Sequence: 1, Type: model.ProjectReactivated},
|
||||
event: &es_models.Event{AggregateID: "AggregateID", Sequence: 1, Type: ProjectReactivated},
|
||||
},
|
||||
result: &Project{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID"}, State: int32(model.PROJECTSTATE_ACTIVE)},
|
||||
},
|
||||
|
40
internal/project/repository/eventsourcing/model/types.go
Normal file
40
internal/project/repository/eventsourcing/model/types.go
Normal file
@@ -0,0 +1,40 @@
|
||||
package model
|
||||
|
||||
import "github.com/caos/zitadel/internal/eventstore/models"
|
||||
|
||||
const (
|
||||
ProjectAggregate models.AggregateType = "project"
|
||||
|
||||
ProjectAdded models.EventType = "project.added"
|
||||
ProjectChanged models.EventType = "project.changed"
|
||||
ProjectDeactivated models.EventType = "project.deactivated"
|
||||
ProjectReactivated models.EventType = "project.reactivated"
|
||||
|
||||
ProjectMemberAdded models.EventType = "project.member.added"
|
||||
ProjectMemberChanged models.EventType = "project.member.changed"
|
||||
ProjectMemberRemoved models.EventType = "project.member.removed"
|
||||
|
||||
ProjectRoleAdded models.EventType = "project.role.added"
|
||||
ProjectRoleChanged models.EventType = "project.role.changed"
|
||||
ProjectRoleRemoved models.EventType = "project.role.removed"
|
||||
|
||||
ProjectGrantAdded models.EventType = "project.grant.added"
|
||||
ProjectGrantChanged models.EventType = "project.grant.changed"
|
||||
ProjectGrantRemoved models.EventType = "project.grant.removed"
|
||||
ProjectGrantDeactivated models.EventType = "project.grant.deactivated"
|
||||
ProjectGrantReactivated models.EventType = "project.grant.reactivated"
|
||||
|
||||
ProjectGrantMemberAdded models.EventType = "project.grant.member.added"
|
||||
ProjectGrantMemberChanged models.EventType = "project.grant.member.changed"
|
||||
ProjectGrantMemberRemoved models.EventType = "project.grant.member.removed"
|
||||
|
||||
ApplicationAdded models.EventType = "project.application.added"
|
||||
ApplicationChanged models.EventType = "project.application.changed"
|
||||
ApplicationRemoved models.EventType = "project.application.removed"
|
||||
ApplicationDeactivated models.EventType = "project.application.deactivated"
|
||||
ApplicationReactivated models.EventType = "project.application.reactivated"
|
||||
|
||||
OIDCConfigAdded models.EventType = "project.application.config.oidc.added"
|
||||
OIDCConfigChanged models.EventType = "project.application.config.oidc.changed"
|
||||
OIDCConfigSecretChanged models.EventType = "project.application.config.oidc.secret.changed"
|
||||
)
|
Reference in New Issue
Block a user