mirror of
https://github.com/andwati/zitadel.git
synced 2026-11-14 09:55:12 +00:00
feat: Feature flag for relational tables (#10599)
# Which Problems Are Solved This PR introduces a new feature flag `EnableRelationalTables` that will be used in following implementations to decide whether Zitadel should use the relational model or the event sourcing one. # TODO - [x] Implement flag at system level - [x] Display the flag on console: https://github.com/zitadel/zitadel/pull/10615 # How the Problems Are Solved - Implement loading the flag from config - Add persistence of the flag through gRPC endpoint (SetInstanceFeatures) - Implement reading of the flag through gRPC endpoint (GetInstanceFeatures) # Additional Changes Some minor refactoring to remove un-needed generics annotations # Additional Context - Closes #10574 --------- Co-authored-by: Silvan <[email protected]>
This commit is contained in:
@@ -84,6 +84,13 @@ message SetInstanceFeaturesRequest{
|
||||
description: "If this is enabled the console web client will use the new User v2 API for certain calls";
|
||||
}
|
||||
];
|
||||
|
||||
optional bool enable_relational_tables = 16 [
|
||||
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
|
||||
example: "true";
|
||||
description: "If this is enabled Zitadel will use the relational tables instead of the projections as the main source to store the data. Regardless of the flag state, both the relational table and the projections are kept up to date. Currently the flag has no effect.";
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
message SetInstanceFeaturesResponse {
|
||||
@@ -178,4 +185,11 @@ message GetInstanceFeaturesResponse {
|
||||
description: "If this is enabled the console web client will use the new User v2 API for certain calls";
|
||||
}
|
||||
];
|
||||
|
||||
FeatureFlag enable_relational_tables = 17 [
|
||||
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
|
||||
example: "true";
|
||||
description: "If this is enabled Zitadel will use the relational tables instead of the projections as the main source to store the data. Regardless of the flag state, both the relational table and the projections are kept up to date. Currently the flag has no effect.";
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
@@ -70,6 +70,14 @@ message SetSystemFeaturesRequest{
|
||||
description: "Enable a newer, more performant, permission check used for v2 and v3 resource based APIs.";
|
||||
}
|
||||
];
|
||||
|
||||
optional bool enable_relational_tables = 13 [
|
||||
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
|
||||
example: "true";
|
||||
description: "If this is enabled Zitadel will use the relational tables instead of the projections as the main source to store the data. Regardless of the flag state, both the relational table and the projections are kept up to date. Currently the flag has no effect.";
|
||||
}
|
||||
];
|
||||
|
||||
}
|
||||
|
||||
message SetSystemFeaturesResponse {
|
||||
@@ -143,4 +151,11 @@ message GetSystemFeaturesResponse {
|
||||
description: "Enable a newer, more performant, permission check used for v2 and v3 resource based APIs.";
|
||||
}
|
||||
];
|
||||
|
||||
FeatureFlag enable_relational_tables = 14 [
|
||||
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
|
||||
example: "true";
|
||||
description: "If this is enabled Zitadel will use the relational tables instead of the projections as the main source to store the data. Regardless of the flag state, both the relational table and the projections are kept up to date. Currently the flag has no effect.";
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user