mirror of
https://github.com/zitadel/zitadel.git
synced 2025-08-14 06:17:37 +00:00

# Which Problems Are Solved
setup step 41 cannot handle downgrades at the moment. This step writes
the instance domain to the fields table. If there are new instances
created during the downgraded version is running there would be domain
missing in the fields afterwards.
# How the Problems Are Solved
Make step 41 repeatable for each version
(cherry picked from commit b89e8a6037
)
45 lines
1.1 KiB
Go
45 lines
1.1 KiB
Go
package setup
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/zitadel/zitadel/internal/api/authz"
|
|
"github.com/zitadel/zitadel/internal/eventstore"
|
|
"github.com/zitadel/zitadel/internal/query/projection"
|
|
"github.com/zitadel/zitadel/internal/repository/instance"
|
|
)
|
|
|
|
type FillFieldsForInstanceDomains struct {
|
|
eventstore *eventstore.Eventstore
|
|
}
|
|
|
|
func (mig *FillFieldsForInstanceDomains) Execute(ctx context.Context, _ eventstore.Event) error {
|
|
instances, err := mig.eventstore.InstanceIDs(
|
|
ctx,
|
|
eventstore.NewSearchQueryBuilder(eventstore.ColumnsInstanceIDs).
|
|
OrderDesc().
|
|
AddQuery().
|
|
AggregateTypes("instance").
|
|
EventTypes(instance.InstanceAddedEventType).
|
|
Builder(),
|
|
)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
for _, instance := range instances {
|
|
ctx := authz.WithInstanceID(ctx, instance)
|
|
if err := projection.InstanceDomainFields.Trigger(ctx); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (mig *FillFieldsForInstanceDomains) String() string {
|
|
return "repeatable_fill_fields_for_instance_domains"
|
|
}
|
|
|
|
func (f *FillFieldsForInstanceDomains) Check(lastRun map[string]interface{}) bool {
|
|
return true
|
|
}
|