mirror of
https://github.com/zitadel/zitadel.git
synced 2025-08-12 00:27:31 +00:00
feat: projections auto create their tables (#3324)
* begin init checks for projections * first projection checks * debug notification providers with query fixes * more projections and first index * more projections * more projections * finish projections * fix tests (remove db name) * create tables in setup * fix logging / error handling * add tenant to views * rename tenant to instance_id * add instance_id to all projections * add instance_id to all queries * correct instance_id on projections * add instance_id to failed_events * use separate context for instance * implement features projection * implement features projection * remove unique constraint from setup when migration failed * add error to failed setup event * add instance_id to primary keys * fix IAM projection * remove old migrations folder * fix keysFromYAML test
This commit is contained in:
@@ -29,7 +29,7 @@ func newTestEvent(id, description string, data func() interface{}, checkPrevious
|
||||
data: data,
|
||||
shouldCheckPrevious: checkPrevious,
|
||||
BaseEvent: *NewBaseEventForPush(
|
||||
service.WithService(authz.NewMockContext("tenant", "resourceOwner", "editorUser"), "editorService"),
|
||||
service.WithService(authz.NewMockContext("instanceID", "resourceOwner", "editorUser"), "editorService"),
|
||||
NewAggregate(authz.NewMockContext("zitadel", "caos", "adlerhurst"), id, "test.aggregate", "v1"),
|
||||
"test.event",
|
||||
),
|
||||
@@ -344,8 +344,8 @@ func Test_eventData(t *testing.T) {
|
||||
|
||||
func TestEventstore_aggregatesToEvents(t *testing.T) {
|
||||
type args struct {
|
||||
tenantID string
|
||||
events []Command
|
||||
instanceID string
|
||||
events []Command
|
||||
}
|
||||
type res struct {
|
||||
wantErr bool
|
||||
@@ -359,7 +359,7 @@ func TestEventstore_aggregatesToEvents(t *testing.T) {
|
||||
{
|
||||
name: "one aggregate one event",
|
||||
args: args{
|
||||
tenantID: "tenant",
|
||||
instanceID: "instanceID",
|
||||
events: []Command{
|
||||
newTestEvent(
|
||||
"1",
|
||||
@@ -380,7 +380,7 @@ func TestEventstore_aggregatesToEvents(t *testing.T) {
|
||||
EditorService: "editorService",
|
||||
EditorUser: "editorUser",
|
||||
ResourceOwner: sql.NullString{String: "caos", Valid: true},
|
||||
Tenant: sql.NullString{String: "tenant", Valid: true},
|
||||
InstanceID: sql.NullString{String: "instanceID", Valid: true},
|
||||
Type: "test.event",
|
||||
Version: "v1",
|
||||
},
|
||||
@@ -390,7 +390,7 @@ func TestEventstore_aggregatesToEvents(t *testing.T) {
|
||||
{
|
||||
name: "one aggregate multiple events",
|
||||
args: args{
|
||||
tenantID: "tenant",
|
||||
instanceID: "instanceID",
|
||||
events: []Command{
|
||||
newTestEvent(
|
||||
"1",
|
||||
@@ -418,7 +418,7 @@ func TestEventstore_aggregatesToEvents(t *testing.T) {
|
||||
EditorService: "editorService",
|
||||
EditorUser: "editorUser",
|
||||
ResourceOwner: sql.NullString{String: "caos", Valid: true},
|
||||
Tenant: sql.NullString{String: "tenant", Valid: true},
|
||||
InstanceID: sql.NullString{String: "instanceID", Valid: true},
|
||||
Type: "test.event",
|
||||
Version: "v1",
|
||||
},
|
||||
@@ -429,7 +429,7 @@ func TestEventstore_aggregatesToEvents(t *testing.T) {
|
||||
EditorService: "editorService",
|
||||
EditorUser: "editorUser",
|
||||
ResourceOwner: sql.NullString{String: "caos", Valid: true},
|
||||
Tenant: sql.NullString{String: "tenant", Valid: true},
|
||||
InstanceID: sql.NullString{String: "instanceID", Valid: true},
|
||||
Type: "test.event",
|
||||
Version: "v1",
|
||||
},
|
||||
@@ -439,7 +439,7 @@ func TestEventstore_aggregatesToEvents(t *testing.T) {
|
||||
{
|
||||
name: "invalid data",
|
||||
args: args{
|
||||
tenantID: "tenant",
|
||||
instanceID: "instanceID",
|
||||
events: []Command{
|
||||
newTestEvent(
|
||||
"1",
|
||||
@@ -460,7 +460,7 @@ func TestEventstore_aggregatesToEvents(t *testing.T) {
|
||||
events: []Command{
|
||||
&testEvent{
|
||||
BaseEvent: *NewBaseEventForPush(
|
||||
service.WithService(authz.NewMockContext("tenant", "resourceOwner", "editorUser"), "editorService"),
|
||||
service.WithService(authz.NewMockContext("instanceID", "resourceOwner", "editorUser"), "editorService"),
|
||||
NewAggregate(
|
||||
authz.NewMockContext("zitadel", "caos", "adlerhurst"),
|
||||
"",
|
||||
@@ -485,7 +485,7 @@ func TestEventstore_aggregatesToEvents(t *testing.T) {
|
||||
events: []Command{
|
||||
&testEvent{
|
||||
BaseEvent: *NewBaseEventForPush(
|
||||
service.WithService(authz.NewMockContext("tenant", "resourceOwner", "editorUser"), "editorService"),
|
||||
service.WithService(authz.NewMockContext("instanceID", "resourceOwner", "editorUser"), "editorService"),
|
||||
NewAggregate(
|
||||
authz.NewMockContext("zitadel", "caos", "adlerhurst"),
|
||||
"id",
|
||||
@@ -510,7 +510,7 @@ func TestEventstore_aggregatesToEvents(t *testing.T) {
|
||||
events: []Command{
|
||||
&testEvent{
|
||||
BaseEvent: *NewBaseEventForPush(
|
||||
service.WithService(authz.NewMockContext("tenant", "resourceOwner", "editorUser"), "editorService"),
|
||||
service.WithService(authz.NewMockContext("instanceID", "resourceOwner", "editorUser"), "editorService"),
|
||||
NewAggregate(
|
||||
authz.NewMockContext("zitadel", "caos", "adlerhurst"),
|
||||
"id",
|
||||
@@ -535,7 +535,7 @@ func TestEventstore_aggregatesToEvents(t *testing.T) {
|
||||
events: []Command{
|
||||
&testEvent{
|
||||
BaseEvent: *NewBaseEventForPush(
|
||||
service.WithService(authz.NewMockContext("tenant", "resourceOwner", "editorUser"), "editorService"),
|
||||
service.WithService(authz.NewMockContext("instanceID", "resourceOwner", "editorUser"), "editorService"),
|
||||
NewAggregate(
|
||||
authz.NewMockContext("zitadel", "caos", "adlerhurst"),
|
||||
"id",
|
||||
@@ -560,7 +560,7 @@ func TestEventstore_aggregatesToEvents(t *testing.T) {
|
||||
events: []Command{
|
||||
&testEvent{
|
||||
BaseEvent: *NewBaseEventForPush(
|
||||
service.WithService(authz.NewMockContext("tenant", "", "editorUser"), "editorService"),
|
||||
service.WithService(authz.NewMockContext("instanceID", "", "editorUser"), "editorService"),
|
||||
NewAggregate(
|
||||
authz.NewMockContext("zitadel", "", "adlerhurst"),
|
||||
"id",
|
||||
@@ -585,7 +585,7 @@ func TestEventstore_aggregatesToEvents(t *testing.T) {
|
||||
EditorService: "editorService",
|
||||
EditorUser: "editorUser",
|
||||
ResourceOwner: sql.NullString{String: "", Valid: false},
|
||||
Tenant: sql.NullString{String: "zitadel"},
|
||||
InstanceID: sql.NullString{String: "zitadel"},
|
||||
Type: "test.event",
|
||||
Version: "v1",
|
||||
},
|
||||
@@ -630,7 +630,7 @@ func TestEventstore_aggregatesToEvents(t *testing.T) {
|
||||
EditorService: "editorService",
|
||||
EditorUser: "editorUser",
|
||||
ResourceOwner: sql.NullString{String: "caos", Valid: true},
|
||||
Tenant: sql.NullString{String: "zitadel"},
|
||||
InstanceID: sql.NullString{String: "zitadel"},
|
||||
Type: "test.event",
|
||||
Version: "v1",
|
||||
},
|
||||
@@ -641,7 +641,7 @@ func TestEventstore_aggregatesToEvents(t *testing.T) {
|
||||
EditorService: "editorService",
|
||||
EditorUser: "editorUser",
|
||||
ResourceOwner: sql.NullString{String: "caos", Valid: true},
|
||||
Tenant: sql.NullString{String: "zitadel"},
|
||||
InstanceID: sql.NullString{String: "zitadel"},
|
||||
Type: "test.event",
|
||||
Version: "v1",
|
||||
},
|
||||
@@ -654,7 +654,7 @@ func TestEventstore_aggregatesToEvents(t *testing.T) {
|
||||
EditorService: "editorService",
|
||||
EditorUser: "editorUser",
|
||||
ResourceOwner: sql.NullString{String: "caos", Valid: true},
|
||||
Tenant: sql.NullString{String: "zitadel"},
|
||||
InstanceID: sql.NullString{String: "zitadel"},
|
||||
Type: "test.event",
|
||||
Version: "v1",
|
||||
},
|
||||
@@ -665,7 +665,7 @@ func TestEventstore_aggregatesToEvents(t *testing.T) {
|
||||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
events, _, err := commandsToRepository(tt.args.tenantID, tt.args.events)
|
||||
events, _, err := commandsToRepository(tt.args.instanceID, tt.args.events)
|
||||
if (err != nil) != tt.res.wantErr {
|
||||
t.Errorf("Eventstore.aggregatesToEvents() error = %v, wantErr %v", err, tt.res.wantErr)
|
||||
return
|
||||
@@ -772,7 +772,7 @@ func TestEventstore_Push(t *testing.T) {
|
||||
EditorService: "editorService",
|
||||
EditorUser: "editorUser",
|
||||
ResourceOwner: sql.NullString{String: "caos", Valid: true},
|
||||
Tenant: sql.NullString{String: "zitadel"},
|
||||
InstanceID: sql.NullString{String: "zitadel"},
|
||||
Type: "test.event",
|
||||
Version: "v1",
|
||||
},
|
||||
@@ -816,7 +816,7 @@ func TestEventstore_Push(t *testing.T) {
|
||||
EditorService: "editorService",
|
||||
EditorUser: "editorUser",
|
||||
ResourceOwner: sql.NullString{String: "caos", Valid: true},
|
||||
Tenant: sql.NullString{String: "zitadel"},
|
||||
InstanceID: sql.NullString{String: "zitadel"},
|
||||
Type: "test.event",
|
||||
Version: "v1",
|
||||
},
|
||||
@@ -827,7 +827,7 @@ func TestEventstore_Push(t *testing.T) {
|
||||
EditorService: "editorService",
|
||||
EditorUser: "editorUser",
|
||||
ResourceOwner: sql.NullString{String: "caos", Valid: true},
|
||||
Tenant: sql.NullString{String: "zitadel"},
|
||||
InstanceID: sql.NullString{String: "zitadel"},
|
||||
Type: "test.event",
|
||||
Version: "v1",
|
||||
},
|
||||
@@ -882,7 +882,7 @@ func TestEventstore_Push(t *testing.T) {
|
||||
EditorService: "editorService",
|
||||
EditorUser: "editorUser",
|
||||
ResourceOwner: sql.NullString{String: "caos", Valid: true},
|
||||
Tenant: sql.NullString{String: "zitadel"},
|
||||
InstanceID: sql.NullString{String: "zitadel"},
|
||||
Type: "test.event",
|
||||
Version: "v1",
|
||||
},
|
||||
@@ -893,7 +893,7 @@ func TestEventstore_Push(t *testing.T) {
|
||||
EditorService: "editorService",
|
||||
EditorUser: "editorUser",
|
||||
ResourceOwner: sql.NullString{String: "caos", Valid: true},
|
||||
Tenant: sql.NullString{String: "zitadel"},
|
||||
InstanceID: sql.NullString{String: "zitadel"},
|
||||
Type: "test.event",
|
||||
Version: "v1",
|
||||
},
|
||||
@@ -906,7 +906,7 @@ func TestEventstore_Push(t *testing.T) {
|
||||
EditorService: "editorService",
|
||||
EditorUser: "editorUser",
|
||||
ResourceOwner: sql.NullString{String: "caos", Valid: true},
|
||||
Tenant: sql.NullString{String: "zitadel"},
|
||||
InstanceID: sql.NullString{String: "zitadel"},
|
||||
Type: "test.event",
|
||||
Version: "v1",
|
||||
},
|
||||
|
Reference in New Issue
Block a user