mirror of
https://github.com/zitadel/zitadel.git
synced 2025-08-11 18:57:32 +00:00
feat: add action v2 execution on requests and responses (#7637)
* feat: add execution of targets to grpc calls * feat: add execution of targets to grpc calls * feat: add execution of targets to grpc calls * feat: add execution of targets to grpc calls * feat: add execution of targets to grpc calls * feat: add execution of targets to grpc calls * feat: add execution of targets to grpc calls * feat: split request and response logic to handle the different context information * feat: split request and response logic to handle the different context information * fix: integration test * fix: import alias * fix: refactor execution package * fix: refactor execution interceptor integration and unit tests * fix: refactor execution interceptor integration and unit tests * fix: refactor execution interceptor integration and unit tests * fix: refactor execution interceptor integration and unit tests * fix: refactor execution interceptor integration and unit tests * docs: basic documentation for executions and targets * fix: change order for interceptors * fix: merge back origin/main * fix: change target definition command and query side (#7735) * fix: change target definition command and query side * fix: correct refactoring name changes * fix: correct refactoring name changes * fix: changing execution defintion with target list and type * fix: changing execution definition with target list and type * fix: add back search queries for target and include * fix: projections change for execution with targets suffix table * fix: projections change for execution with targets suffix table * fix: projections change for execution with targets suffix table * fix: projections change for execution with targets suffix table * fix: projections change for execution with targets suffix table * fix: projections change for execution with targets suffix table * fix: projections change for execution with targets suffix table * docs: add example to actions v2 * docs: add example to actions v2 * fix: correct integration tests on query for executions * fix: add separate event for execution v2 as content changed * fix: add separate event for execution v2 as content changed * fix: added review comment changes * fix: added review comment changes * fix: added review comment changes --------- Co-authored-by: adlerhurst <silvan.reusser@gmail.com> * fix: added review comment changes * fix: added review comment changes * Update internal/api/grpc/server/middleware/execution_interceptor.go Co-authored-by: Silvan <silvan.reusser@gmail.com> * fix: added review comment changes * fix: added review comment changes * fix: added review comment changes * fix: added review comment changes * fix: added review comment changes * fix: added review comment changes --------- Co-authored-by: adlerhurst <silvan.reusser@gmail.com> Co-authored-by: Elio Bischof <elio@zitadel.com>
This commit is contained in:
@@ -6,6 +6,7 @@ import (
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
|
||||
"github.com/zitadel/zitadel/internal/domain"
|
||||
"github.com/zitadel/zitadel/internal/eventstore"
|
||||
"github.com/zitadel/zitadel/internal/repository/execution"
|
||||
)
|
||||
@@ -32,10 +33,12 @@ func TestCommandSide_executionsExistsWriteModel(t *testing.T) {
|
||||
eventstore: expectEventstore(
|
||||
expectFilter(
|
||||
eventFromEventPusher(
|
||||
execution.NewSetEvent(context.Background(),
|
||||
execution.NewSetEventV2(context.Background(),
|
||||
execution.NewAggregate("execution", "org1"),
|
||||
[]string{"target"},
|
||||
[]string{"include"},
|
||||
[]*execution.Target{
|
||||
{Type: domain.ExecutionTargetTypeTarget, Target: "target"},
|
||||
{Type: domain.ExecutionTargetTypeInclude, Target: "include"},
|
||||
},
|
||||
),
|
||||
),
|
||||
),
|
||||
@@ -53,10 +56,12 @@ func TestCommandSide_executionsExistsWriteModel(t *testing.T) {
|
||||
eventstore: expectEventstore(
|
||||
expectFilter(
|
||||
eventFromEventPusher(
|
||||
execution.NewSetEvent(context.Background(),
|
||||
execution.NewSetEventV2(context.Background(),
|
||||
execution.NewAggregate("execution", "org1"),
|
||||
[]string{"target"},
|
||||
[]string{"include"},
|
||||
[]*execution.Target{
|
||||
{Type: domain.ExecutionTargetTypeTarget, Target: "target"},
|
||||
{Type: domain.ExecutionTargetTypeInclude, Target: "include"},
|
||||
},
|
||||
),
|
||||
),
|
||||
eventFromEventPusher(
|
||||
@@ -65,10 +70,12 @@ func TestCommandSide_executionsExistsWriteModel(t *testing.T) {
|
||||
),
|
||||
),
|
||||
eventFromEventPusher(
|
||||
execution.NewSetEvent(context.Background(),
|
||||
execution.NewSetEventV2(context.Background(),
|
||||
execution.NewAggregate("execution", "org1"),
|
||||
[]string{"target"},
|
||||
[]string{"include"},
|
||||
[]*execution.Target{
|
||||
{Type: domain.ExecutionTargetTypeTarget, Target: "target"},
|
||||
{Type: domain.ExecutionTargetTypeInclude, Target: "include"},
|
||||
},
|
||||
),
|
||||
),
|
||||
),
|
||||
@@ -91,10 +98,12 @@ func TestCommandSide_executionsExistsWriteModel(t *testing.T) {
|
||||
),
|
||||
),
|
||||
eventFromEventPusher(
|
||||
execution.NewSetEvent(context.Background(),
|
||||
execution.NewSetEventV2(context.Background(),
|
||||
execution.NewAggregate("execution", "org1"),
|
||||
[]string{"target"},
|
||||
[]string{"include"},
|
||||
[]*execution.Target{
|
||||
{Type: domain.ExecutionTargetTypeTarget, Target: "target"},
|
||||
{Type: domain.ExecutionTargetTypeInclude, Target: "include"},
|
||||
},
|
||||
),
|
||||
),
|
||||
),
|
||||
@@ -112,10 +121,12 @@ func TestCommandSide_executionsExistsWriteModel(t *testing.T) {
|
||||
eventstore: expectEventstore(
|
||||
expectFilter(
|
||||
eventFromEventPusher(
|
||||
execution.NewSetEvent(context.Background(),
|
||||
execution.NewSetEventV2(context.Background(),
|
||||
execution.NewAggregate("execution", "org1"),
|
||||
[]string{"target"},
|
||||
[]string{"include"},
|
||||
[]*execution.Target{
|
||||
{Type: domain.ExecutionTargetTypeTarget, Target: "target"},
|
||||
{Type: domain.ExecutionTargetTypeInclude, Target: "include"},
|
||||
},
|
||||
),
|
||||
),
|
||||
eventFromEventPusher(
|
||||
@@ -138,24 +149,30 @@ func TestCommandSide_executionsExistsWriteModel(t *testing.T) {
|
||||
eventstore: expectEventstore(
|
||||
expectFilter(
|
||||
eventFromEventPusher(
|
||||
execution.NewSetEvent(context.Background(),
|
||||
execution.NewSetEventV2(context.Background(),
|
||||
execution.NewAggregate("execution1", "org1"),
|
||||
[]string{"target"},
|
||||
[]string{"include"},
|
||||
[]*execution.Target{
|
||||
{Type: domain.ExecutionTargetTypeTarget, Target: "target"},
|
||||
{Type: domain.ExecutionTargetTypeInclude, Target: "include"},
|
||||
},
|
||||
),
|
||||
),
|
||||
eventFromEventPusher(
|
||||
execution.NewSetEvent(context.Background(),
|
||||
execution.NewSetEventV2(context.Background(),
|
||||
execution.NewAggregate("execution2", "org1"),
|
||||
[]string{"target"},
|
||||
[]string{"include"},
|
||||
[]*execution.Target{
|
||||
{Type: domain.ExecutionTargetTypeTarget, Target: "target"},
|
||||
{Type: domain.ExecutionTargetTypeInclude, Target: "include"},
|
||||
},
|
||||
),
|
||||
),
|
||||
eventFromEventPusher(
|
||||
execution.NewSetEvent(context.Background(),
|
||||
execution.NewSetEventV2(context.Background(),
|
||||
execution.NewAggregate("execution3", "org1"),
|
||||
[]string{"target"},
|
||||
[]string{"include"},
|
||||
[]*execution.Target{
|
||||
{Type: domain.ExecutionTargetTypeTarget, Target: "target"},
|
||||
{Type: domain.ExecutionTargetTypeInclude, Target: "include"},
|
||||
},
|
||||
),
|
||||
),
|
||||
),
|
||||
@@ -174,17 +191,21 @@ func TestCommandSide_executionsExistsWriteModel(t *testing.T) {
|
||||
eventstore: expectEventstore(
|
||||
expectFilter(
|
||||
eventFromEventPusher(
|
||||
execution.NewSetEvent(context.Background(),
|
||||
execution.NewSetEventV2(context.Background(),
|
||||
execution.NewAggregate("execution1", "org1"),
|
||||
[]string{"target"},
|
||||
[]string{"include"},
|
||||
[]*execution.Target{
|
||||
{Type: domain.ExecutionTargetTypeTarget, Target: "target"},
|
||||
{Type: domain.ExecutionTargetTypeInclude, Target: "include"},
|
||||
},
|
||||
),
|
||||
),
|
||||
eventFromEventPusher(
|
||||
execution.NewSetEvent(context.Background(),
|
||||
execution.NewSetEventV2(context.Background(),
|
||||
execution.NewAggregate("execution2", "org1"),
|
||||
[]string{"target"},
|
||||
[]string{"include"},
|
||||
[]*execution.Target{
|
||||
{Type: domain.ExecutionTargetTypeTarget, Target: "target"},
|
||||
{Type: domain.ExecutionTargetTypeInclude, Target: "include"},
|
||||
},
|
||||
),
|
||||
),
|
||||
eventFromEventPusher(
|
||||
@@ -193,10 +214,12 @@ func TestCommandSide_executionsExistsWriteModel(t *testing.T) {
|
||||
),
|
||||
),
|
||||
eventFromEventPusher(
|
||||
execution.NewSetEvent(context.Background(),
|
||||
execution.NewSetEventV2(context.Background(),
|
||||
execution.NewAggregate("execution3", "org1"),
|
||||
[]string{"target"},
|
||||
[]string{"include"},
|
||||
[]*execution.Target{
|
||||
{Type: domain.ExecutionTargetTypeTarget, Target: "target"},
|
||||
{Type: domain.ExecutionTargetTypeInclude, Target: "include"},
|
||||
},
|
||||
),
|
||||
),
|
||||
),
|
||||
@@ -214,17 +237,21 @@ func TestCommandSide_executionsExistsWriteModel(t *testing.T) {
|
||||
eventstore: expectEventstore(
|
||||
expectFilter(
|
||||
eventFromEventPusher(
|
||||
execution.NewSetEvent(context.Background(),
|
||||
execution.NewSetEventV2(context.Background(),
|
||||
execution.NewAggregate("execution1", "org1"),
|
||||
[]string{"target"},
|
||||
[]string{"include"},
|
||||
[]*execution.Target{
|
||||
{Type: domain.ExecutionTargetTypeTarget, Target: "target"},
|
||||
{Type: domain.ExecutionTargetTypeInclude, Target: "include"},
|
||||
},
|
||||
),
|
||||
),
|
||||
eventFromEventPusher(
|
||||
execution.NewSetEvent(context.Background(),
|
||||
execution.NewSetEventV2(context.Background(),
|
||||
execution.NewAggregate("execution2", "org1"),
|
||||
[]string{"target"},
|
||||
[]string{"include"},
|
||||
[]*execution.Target{
|
||||
{Type: domain.ExecutionTargetTypeTarget, Target: "target"},
|
||||
{Type: domain.ExecutionTargetTypeInclude, Target: "include"},
|
||||
},
|
||||
),
|
||||
),
|
||||
eventFromEventPusher(
|
||||
@@ -233,10 +260,12 @@ func TestCommandSide_executionsExistsWriteModel(t *testing.T) {
|
||||
),
|
||||
),
|
||||
eventFromEventPusher(
|
||||
execution.NewSetEvent(context.Background(),
|
||||
execution.NewSetEventV2(context.Background(),
|
||||
execution.NewAggregate("execution3", "org1"),
|
||||
[]string{"target"},
|
||||
[]string{"include"},
|
||||
[]*execution.Target{
|
||||
{Type: domain.ExecutionTargetTypeTarget, Target: "target"},
|
||||
{Type: domain.ExecutionTargetTypeInclude, Target: "include"},
|
||||
},
|
||||
),
|
||||
),
|
||||
),
|
||||
@@ -254,24 +283,30 @@ func TestCommandSide_executionsExistsWriteModel(t *testing.T) {
|
||||
eventstore: expectEventstore(
|
||||
expectFilter(
|
||||
eventFromEventPusher(
|
||||
execution.NewSetEvent(context.Background(),
|
||||
execution.NewSetEventV2(context.Background(),
|
||||
execution.NewAggregate("execution1", "org1"),
|
||||
[]string{"target"},
|
||||
[]string{"include"},
|
||||
[]*execution.Target{
|
||||
{Type: domain.ExecutionTargetTypeTarget, Target: "target"},
|
||||
{Type: domain.ExecutionTargetTypeInclude, Target: "include"},
|
||||
},
|
||||
),
|
||||
),
|
||||
eventFromEventPusher(
|
||||
execution.NewSetEvent(context.Background(),
|
||||
execution.NewSetEventV2(context.Background(),
|
||||
execution.NewAggregate("execution2", "org1"),
|
||||
[]string{"target"},
|
||||
[]string{"include"},
|
||||
[]*execution.Target{
|
||||
{Type: domain.ExecutionTargetTypeTarget, Target: "target"},
|
||||
{Type: domain.ExecutionTargetTypeInclude, Target: "include"},
|
||||
},
|
||||
),
|
||||
),
|
||||
eventFromEventPusher(
|
||||
execution.NewSetEvent(context.Background(),
|
||||
execution.NewSetEventV2(context.Background(),
|
||||
execution.NewAggregate("execution3", "org1"),
|
||||
[]string{"target"},
|
||||
[]string{"include"},
|
||||
[]*execution.Target{
|
||||
{Type: domain.ExecutionTargetTypeTarget, Target: "target"},
|
||||
{Type: domain.ExecutionTargetTypeInclude, Target: "include"},
|
||||
},
|
||||
),
|
||||
),
|
||||
eventFromEventPusher(
|
||||
@@ -299,24 +334,30 @@ func TestCommandSide_executionsExistsWriteModel(t *testing.T) {
|
||||
),
|
||||
),
|
||||
eventFromEventPusher(
|
||||
execution.NewSetEvent(context.Background(),
|
||||
execution.NewSetEventV2(context.Background(),
|
||||
execution.NewAggregate("execution1", "org1"),
|
||||
[]string{"target"},
|
||||
[]string{"include"},
|
||||
[]*execution.Target{
|
||||
{Type: domain.ExecutionTargetTypeTarget, Target: "target"},
|
||||
{Type: domain.ExecutionTargetTypeInclude, Target: "include"},
|
||||
},
|
||||
),
|
||||
),
|
||||
eventFromEventPusher(
|
||||
execution.NewSetEvent(context.Background(),
|
||||
execution.NewSetEventV2(context.Background(),
|
||||
execution.NewAggregate("execution2", "org1"),
|
||||
[]string{"target"},
|
||||
[]string{"include"},
|
||||
[]*execution.Target{
|
||||
{Type: domain.ExecutionTargetTypeTarget, Target: "target"},
|
||||
{Type: domain.ExecutionTargetTypeInclude, Target: "include"},
|
||||
},
|
||||
),
|
||||
),
|
||||
eventFromEventPusher(
|
||||
execution.NewSetEvent(context.Background(),
|
||||
execution.NewSetEventV2(context.Background(),
|
||||
execution.NewAggregate("execution3", "org1"),
|
||||
[]string{"target"},
|
||||
[]string{"include"},
|
||||
[]*execution.Target{
|
||||
{Type: domain.ExecutionTargetTypeTarget, Target: "target"},
|
||||
{Type: domain.ExecutionTargetTypeInclude, Target: "include"},
|
||||
},
|
||||
),
|
||||
),
|
||||
),
|
||||
@@ -334,10 +375,12 @@ func TestCommandSide_executionsExistsWriteModel(t *testing.T) {
|
||||
eventstore: expectEventstore(
|
||||
expectFilter(
|
||||
eventFromEventPusher(
|
||||
execution.NewSetEvent(context.Background(),
|
||||
execution.NewSetEventV2(context.Background(),
|
||||
execution.NewAggregate("execution1", "org1"),
|
||||
[]string{"target"},
|
||||
[]string{"include"},
|
||||
[]*execution.Target{
|
||||
{Type: domain.ExecutionTargetTypeTarget, Target: "target"},
|
||||
{Type: domain.ExecutionTargetTypeInclude, Target: "include"},
|
||||
},
|
||||
),
|
||||
),
|
||||
eventFromEventPusher(
|
||||
@@ -346,17 +389,21 @@ func TestCommandSide_executionsExistsWriteModel(t *testing.T) {
|
||||
),
|
||||
),
|
||||
eventFromEventPusher(
|
||||
execution.NewSetEvent(context.Background(),
|
||||
execution.NewSetEventV2(context.Background(),
|
||||
execution.NewAggregate("execution2", "org1"),
|
||||
[]string{"target"},
|
||||
[]string{"include"},
|
||||
[]*execution.Target{
|
||||
{Type: domain.ExecutionTargetTypeTarget, Target: "target"},
|
||||
{Type: domain.ExecutionTargetTypeInclude, Target: "include"},
|
||||
},
|
||||
),
|
||||
),
|
||||
eventFromEventPusher(
|
||||
execution.NewSetEvent(context.Background(),
|
||||
execution.NewSetEventV2(context.Background(),
|
||||
execution.NewAggregate("execution3", "org1"),
|
||||
[]string{"target"},
|
||||
[]string{"include"},
|
||||
[]*execution.Target{
|
||||
{Type: domain.ExecutionTargetTypeTarget, Target: "target"},
|
||||
{Type: domain.ExecutionTargetTypeInclude, Target: "include"},
|
||||
},
|
||||
),
|
||||
),
|
||||
eventFromEventPusher(
|
||||
@@ -385,10 +432,12 @@ func TestCommandSide_executionsExistsWriteModel(t *testing.T) {
|
||||
eventstore: expectEventstore(
|
||||
expectFilter(
|
||||
eventFromEventPusher(
|
||||
execution.NewSetEvent(context.Background(),
|
||||
execution.NewSetEventV2(context.Background(),
|
||||
execution.NewAggregate("execution1", "org1"),
|
||||
[]string{"target"},
|
||||
[]string{"include"},
|
||||
[]*execution.Target{
|
||||
{Type: domain.ExecutionTargetTypeTarget, Target: "target"},
|
||||
{Type: domain.ExecutionTargetTypeInclude, Target: "include"},
|
||||
},
|
||||
),
|
||||
),
|
||||
eventFromEventPusher(
|
||||
@@ -397,17 +446,21 @@ func TestCommandSide_executionsExistsWriteModel(t *testing.T) {
|
||||
),
|
||||
),
|
||||
eventFromEventPusher(
|
||||
execution.NewSetEvent(context.Background(),
|
||||
execution.NewSetEventV2(context.Background(),
|
||||
execution.NewAggregate("execution2", "org1"),
|
||||
[]string{"target"},
|
||||
[]string{"include"},
|
||||
[]*execution.Target{
|
||||
{Type: domain.ExecutionTargetTypeTarget, Target: "target"},
|
||||
{Type: domain.ExecutionTargetTypeInclude, Target: "include"},
|
||||
},
|
||||
),
|
||||
),
|
||||
eventFromEventPusher(
|
||||
execution.NewSetEvent(context.Background(),
|
||||
execution.NewSetEventV2(context.Background(),
|
||||
execution.NewAggregate("execution3", "org1"),
|
||||
[]string{"target"},
|
||||
[]string{"include"},
|
||||
[]*execution.Target{
|
||||
{Type: domain.ExecutionTargetTypeTarget, Target: "target"},
|
||||
{Type: domain.ExecutionTargetTypeInclude, Target: "include"},
|
||||
},
|
||||
),
|
||||
),
|
||||
eventFromEventPusher(
|
||||
|
Reference in New Issue
Block a user