mirror of
https://github.com/zitadel/zitadel.git
synced 2025-08-11 21:37:32 +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:
@@ -51,6 +51,7 @@ const (
|
||||
IDPConfigSearchKeyAggregateID
|
||||
IDPConfigSearchKeyIdpConfigID
|
||||
IDPConfigSearchKeyIdpProviderType
|
||||
IDPConfigSearchKeyInstanceID
|
||||
)
|
||||
|
||||
type IDPConfigSearchQuery struct {
|
||||
|
@@ -48,6 +48,7 @@ const (
|
||||
LabelPolicySearchKeyUnspecified LabelPolicySearchKey = iota
|
||||
LabelPolicySearchKeyAggregateID
|
||||
LabelPolicySearchKeyState
|
||||
LabelPolicySearchKeyInstanceID
|
||||
)
|
||||
|
||||
type LabelPolicySearchQuery struct {
|
||||
|
@@ -24,6 +24,7 @@ const (
|
||||
IDPConfigKeyAggregateID = "aggregate_id"
|
||||
IDPConfigKeyName = "name"
|
||||
IDPConfigKeyProviderType = "idp_provider_type"
|
||||
IDPConfigKeyInstanceID = "instance_id"
|
||||
)
|
||||
|
||||
type IDPConfigView struct {
|
||||
@@ -50,7 +51,8 @@ type IDPConfigView struct {
|
||||
JWTKeysEndpoint string `json:"keysEndpoint" gorm:"jwt_keys_endpoint"`
|
||||
JWTHeaderName string `json:"headerName" gorm:"jwt_header_name"`
|
||||
|
||||
Sequence uint64 `json:"-" gorm:"column:sequence"`
|
||||
Sequence uint64 `json:"-" gorm:"column:sequence"`
|
||||
InstanceID string `json:"instanceID" gorm:"column:instance_id"`
|
||||
}
|
||||
|
||||
func IDPConfigViewToModel(idp *IDPConfigView) *model.IDPConfigView {
|
||||
@@ -120,6 +122,7 @@ func (i *IDPConfigView) AppendEvent(providerType model.IDPProviderType, event *m
|
||||
|
||||
func (r *IDPConfigView) setRootData(event *models.Event) {
|
||||
r.AggregateID = event.AggregateID
|
||||
r.InstanceID = event.InstanceID
|
||||
}
|
||||
|
||||
func (r *IDPConfigView) SetData(event *models.Event) error {
|
||||
|
@@ -59,6 +59,8 @@ func (key IDPConfigSearchKey) ToColumnName() string {
|
||||
return IDPConfigKeyName
|
||||
case iam_model.IDPConfigSearchKeyIdpProviderType:
|
||||
return IDPConfigKeyProviderType
|
||||
case iam_model.IDPConfigSearchKeyInstanceID:
|
||||
return IDPConfigKeyInstanceID
|
||||
default:
|
||||
return ""
|
||||
}
|
||||
|
@@ -2,12 +2,14 @@ package model
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
org_es_model "github.com/caos/zitadel/internal/org/repository/eventsourcing/model"
|
||||
"time"
|
||||
|
||||
org_es_model "github.com/caos/zitadel/internal/org/repository/eventsourcing/model"
|
||||
|
||||
es_model "github.com/caos/zitadel/internal/iam/repository/eventsourcing/model"
|
||||
|
||||
"github.com/caos/logging"
|
||||
|
||||
caos_errs "github.com/caos/zitadel/internal/errors"
|
||||
"github.com/caos/zitadel/internal/eventstore/v1/models"
|
||||
"github.com/caos/zitadel/internal/iam/model"
|
||||
@@ -32,7 +34,8 @@ type IDPProviderView struct {
|
||||
IDPProviderType int32 `json:"idpProviderType" gorm:"column:idp_provider_type"`
|
||||
IDPState int32 `json:"-" gorm:"column:idp_state"`
|
||||
|
||||
Sequence uint64 `json:"-" gorm:"column:sequence"`
|
||||
Sequence uint64 `json:"-" gorm:"column:sequence"`
|
||||
InstanceID string `json:"instanceID" gorm:"column:instance_id"`
|
||||
}
|
||||
|
||||
func IDPProviderViewFromModel(provider *model.IDPProviderView) *IDPProviderView {
|
||||
@@ -87,6 +90,7 @@ func (i *IDPProviderView) AppendEvent(event *models.Event) (err error) {
|
||||
|
||||
func (r *IDPProviderView) setRootData(event *models.Event) {
|
||||
r.AggregateID = event.AggregateID
|
||||
r.InstanceID = event.InstanceID
|
||||
}
|
||||
|
||||
func (r *IDPProviderView) SetData(event *models.Event) error {
|
||||
|
@@ -19,6 +19,7 @@ import (
|
||||
const (
|
||||
LabelPolicyKeyAggregateID = "aggregate_id"
|
||||
LabelPolicyKeyState = "label_policy_state"
|
||||
LabelPolicyKeyInstanceID = "instance_id"
|
||||
)
|
||||
|
||||
type LabelPolicyView struct {
|
||||
@@ -45,7 +46,8 @@ type LabelPolicyView struct {
|
||||
DisableWatermark bool `json:"disableWatermark" gorm:"column:disable_watermark"`
|
||||
Default bool `json:"-" gorm:"-"`
|
||||
|
||||
Sequence uint64 `json:"-" gorm:"column:sequence"`
|
||||
Sequence uint64 `json:"-" gorm:"column:sequence"`
|
||||
InstanceID string `json:"instanceID" gorm:"column:instance_id"`
|
||||
}
|
||||
|
||||
type AssetView struct {
|
||||
@@ -189,6 +191,7 @@ func (i *LabelPolicyView) AppendEvent(event *models.Event) (err error) {
|
||||
|
||||
func (r *LabelPolicyView) setRootData(event *models.Event) {
|
||||
r.AggregateID = event.AggregateID
|
||||
r.InstanceID = event.InstanceID
|
||||
}
|
||||
|
||||
func (r *LabelPolicyView) SetData(event *models.Event) error {
|
||||
|
@@ -55,6 +55,9 @@ func (key LabelPolicySearchKey) ToColumnName() string {
|
||||
return LabelPolicyKeyAggregateID
|
||||
case iam_model.LabelPolicySearchKeyState:
|
||||
return LabelPolicyKeyState
|
||||
case iam_model.LabelPolicySearchKeyInstanceID:
|
||||
return LabelPolicyKeyInstanceID
|
||||
|
||||
default:
|
||||
return ""
|
||||
}
|
||||
|
Reference in New Issue
Block a user