mirror of
https://github.com/zitadel/zitadel.git
synced 2025-12-08 00:52:07 +00:00
This PR summarizes multiple changes specifically only available with ZITADEL v3: - feat: Web Keys management (https://github.com/zitadel/zitadel/pull/9526) - fix(cmd): ensure proper working of mirror (https://github.com/zitadel/zitadel/pull/9509) - feat(Authz): system user support for permission check v2 (https://github.com/zitadel/zitadel/pull/9640) - chore(license): change from Apache to AGPL (https://github.com/zitadel/zitadel/pull/9597) - feat(console): list v2 sessions (https://github.com/zitadel/zitadel/pull/9539) - fix(console): add loginV2 feature flag (https://github.com/zitadel/zitadel/pull/9682) - fix(feature flags): allow reading "own" flags (https://github.com/zitadel/zitadel/pull/9649) - feat(console): add Actions V2 UI (https://github.com/zitadel/zitadel/pull/9591) BREAKING CHANGE - feat(webkey): migrate to v2beta API (https://github.com/zitadel/zitadel/pull/9445) - chore!: remove CockroachDB Support (https://github.com/zitadel/zitadel/pull/9444) - feat(actions): migrate to v2beta API (https://github.com/zitadel/zitadel/pull/9489) --------- Co-authored-by: Livio Spring <livio.a@gmail.com> Co-authored-by: Stefan Benz <46600784+stebenz@users.noreply.github.com> Co-authored-by: Silvan <27845747+adlerhurst@users.noreply.github.com> Co-authored-by: Ramon <mail@conblem.me> Co-authored-by: Elio Bischof <elio@zitadel.com> Co-authored-by: Kenta Yamaguchi <56732734+KEY60228@users.noreply.github.com> Co-authored-by: Harsha Reddy <harsha.reddy@klaviyo.com> Co-authored-by: Livio Spring <livio@zitadel.com> Co-authored-by: Max Peintner <max@caos.ch> Co-authored-by: Iraq <66622793+kkrime@users.noreply.github.com> Co-authored-by: Florian Forster <florian@zitadel.com> Co-authored-by: Tim Möhlmann <tim+github@zitadel.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Max Peintner <peintnerm@gmail.com>
147 lines
4.8 KiB
Protocol Buffer
147 lines
4.8 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package zitadel.action.v2beta;
|
|
|
|
import "google/api/annotations.proto";
|
|
import "google/api/field_behavior.proto";
|
|
import "google/protobuf/duration.proto";
|
|
import "google/protobuf/struct.proto";
|
|
import "protoc-gen-openapiv2/options/annotations.proto";
|
|
import "validate/validate.proto";
|
|
import "zitadel/protoc_gen_zitadel/v2/options.proto";
|
|
|
|
import "google/protobuf/timestamp.proto";
|
|
import "zitadel/object/v3alpha/object.proto";
|
|
|
|
option go_package = "github.com/zitadel/zitadel/pkg/grpc/action/v2beta;action";
|
|
|
|
message Execution {
|
|
Condition condition = 1;
|
|
// The timestamp of the execution creation.
|
|
google.protobuf.Timestamp creation_date = 2 [
|
|
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
|
|
example: "\"2024-12-18T07:50:47.492Z\"";
|
|
}
|
|
];
|
|
// The timestamp of the last change to the execution.
|
|
google.protobuf.Timestamp change_date = 3 [
|
|
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
|
|
example: "\"2025-01-23T10:34:18.051Z\"";
|
|
}
|
|
];
|
|
// Ordered list of targets/includes called during the execution.
|
|
repeated ExecutionTargetType targets = 4;
|
|
}
|
|
|
|
message ExecutionTargetType {
|
|
oneof type {
|
|
option (validate.required) = true;
|
|
// Unique identifier of existing target to call.
|
|
string target = 1;
|
|
// Unique identifier of existing execution to include targets of.
|
|
Condition include = 2;
|
|
}
|
|
}
|
|
|
|
message Condition {
|
|
// Condition-types under which conditions the execution should happen, only one possible.
|
|
oneof condition_type {
|
|
option (validate.required) = true;
|
|
|
|
// Condition-type to execute if a request on the defined API point happens.
|
|
RequestExecution request = 1;
|
|
// Condition-type to execute on response if a request on the defined API point happens.
|
|
ResponseExecution response = 2;
|
|
// Condition-type to execute if function is used, replaces actions v1.
|
|
FunctionExecution function = 3;
|
|
// Condition-type to execute if an event is created in the system.
|
|
EventExecution event = 4;
|
|
}
|
|
}
|
|
|
|
message RequestExecution {
|
|
// Condition for the request execution. Only one is possible.
|
|
oneof condition{
|
|
option (validate.required) = true;
|
|
// GRPC-method as condition.
|
|
string method = 1 [
|
|
(validate.rules).string = {min_len: 1, max_len: 1000},
|
|
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
|
|
min_length: 1,
|
|
max_length: 1000,
|
|
example: "\"/zitadel.session.v2.SessionService/ListSessions\"";
|
|
}
|
|
];
|
|
// GRPC-service as condition.
|
|
string service = 2 [
|
|
(validate.rules).string = {min_len: 1, max_len: 1000},
|
|
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
|
|
min_length: 1,
|
|
max_length: 1000,
|
|
example: "\"zitadel.session.v2.SessionService\"";
|
|
}
|
|
];
|
|
// All calls to any available services and methods as condition.
|
|
bool all = 3 [(validate.rules).bool = {const: true}];
|
|
}
|
|
}
|
|
|
|
message ResponseExecution {
|
|
// Condition for the response execution. Only one is possible.
|
|
oneof condition{
|
|
option (validate.required) = true;
|
|
// GRPC-method as condition.
|
|
string method = 1 [
|
|
(validate.rules).string = {min_len: 1, max_len: 1000},
|
|
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
|
|
min_length: 1,
|
|
max_length: 1000,
|
|
example: "\"/zitadel.session.v2.SessionService/ListSessions\"";
|
|
}
|
|
];
|
|
// GRPC-service as condition.
|
|
string service = 2 [
|
|
(validate.rules).string = {min_len: 1, max_len: 1000},
|
|
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
|
|
min_length: 1,
|
|
max_length: 1000,
|
|
example: "\"zitadel.session.v2.SessionService\"";
|
|
}
|
|
];
|
|
// All calls to any available services and methods as condition.
|
|
bool all = 3 [(validate.rules).bool = {const: true}];
|
|
}
|
|
}
|
|
|
|
// Executed on the specified function
|
|
message FunctionExecution {
|
|
string name = 1 [(validate.rules).string = {min_len: 1, max_len: 1000}];
|
|
}
|
|
|
|
message EventExecution {
|
|
// Condition for the event execution. Only one is possible.
|
|
oneof condition{
|
|
option (validate.required) = true;
|
|
// Event name as condition.
|
|
string event = 1 [
|
|
(validate.rules).string = {min_len: 1, max_len: 1000},
|
|
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
|
|
min_length: 1,
|
|
max_length: 1000,
|
|
example: "\"user.human.added\"";
|
|
}
|
|
];
|
|
// Event group as condition, all events under this group.
|
|
string group = 2 [
|
|
(validate.rules).string = {min_len: 1, max_len: 1000},
|
|
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
|
|
min_length: 1,
|
|
max_length: 1000,
|
|
example: "\"user.human\"";
|
|
}
|
|
];
|
|
// all events as condition.
|
|
bool all = 3 [(validate.rules).bool = {const: true}];
|
|
}
|
|
}
|