mirror of
https://github.com/zitadel/zitadel.git
synced 2025-02-28 23:47:24 +00:00

* fix: potential memory leak * feat(actions): possibility to parse json feat(actions): possibility to perform http calls * add query call * feat(api): list flow and trigger types fix(api): switch flow and trigger types to dynamic objects * fix(translations): add action translations * use `domain.FlowType` * localizers * localization * trigger types * options on `query.Action` * add functions for actions * feat: management api: add list flow and trigger (#4352) * console changes * cleanup * fix: wrong localization Co-authored-by: Max Peintner <max@caos.ch> * id token works * check if claims not nil * feat(actions): metadata api * refactor(actions): modules * fix: allow prerelease * fix: test * feat(actions): deny list for http hosts * feat(actions): deny list for http hosts * refactor: actions * fix: different error ids * fix: rename statusCode to status * Actions objects as options (#4418) * fix: rename statusCode to status * fix(actions): objects as options * fix(actions): objects as options * fix(actions): set fields * add http client to old actions * fix(actions): add log module * fix(actions): add user to context where possible * fix(actions): add user to ctx in external authorization/pre creation * fix(actions): query correct flow in claims * test: actions * fix(id-generator): panic if no machine id * tests * maybe this? * fix linting * refactor: improve code * fix: metadata and usergrant usage in actions * fix: appendUserGrant * fix: allowedToFail and timeout in action execution * fix: allowed to fail in token complement flow * docs: add action log claim * Update defaults.yaml * fix log claim * remove prerelease build Co-authored-by: Max Peintner <max@caos.ch> Co-authored-by: Livio Spring <livio.a@gmail.com>
135 lines
3.7 KiB
Protocol Buffer
135 lines
3.7 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
import "zitadel/object.proto";
|
|
import "zitadel/message.proto";
|
|
import "validate/validate.proto";
|
|
import "google/protobuf/duration.proto";
|
|
import "protoc-gen-openapiv2/options/annotations.proto";
|
|
|
|
package zitadel.action.v1;
|
|
|
|
option go_package ="github.com/zitadel/zitadel/pkg/grpc/action";
|
|
|
|
message Action {
|
|
string id = 1 [
|
|
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
|
|
example: "\"69629023906488334\"";
|
|
}
|
|
];
|
|
zitadel.v1.ObjectDetails details = 2;
|
|
ActionState state = 3 [
|
|
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
|
|
description: "the state of the action";
|
|
}
|
|
];
|
|
string name = 4 [
|
|
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
|
|
example: "\"log context\"";
|
|
}
|
|
];
|
|
string script = 5 [
|
|
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
|
|
example: "\"function log(context, calls){console.log(context)}\"";
|
|
}
|
|
];
|
|
google.protobuf.Duration timeout = 6 [
|
|
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
|
|
description: "after which time the action will be terminated if not finished";
|
|
}
|
|
];
|
|
bool allowed_to_fail = 7 [
|
|
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
|
|
description: "when true, the next action will be called even if this action fails";
|
|
}
|
|
];
|
|
}
|
|
|
|
enum ActionState {
|
|
ACTION_STATE_UNSPECIFIED = 0;
|
|
ACTION_STATE_INACTIVE = 1;
|
|
ACTION_STATE_ACTIVE = 2;
|
|
}
|
|
|
|
message ActionIDQuery {
|
|
string id = 1 [
|
|
(validate.rules).string = {max_len: 200},
|
|
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
|
|
example: "\"69629023906488334\"";
|
|
}
|
|
];
|
|
}
|
|
|
|
message ActionNameQuery {
|
|
string name = 1 [
|
|
(validate.rules).string = {max_len: 200},
|
|
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
|
|
example: "\"log\"";
|
|
}
|
|
];
|
|
zitadel.v1.TextQueryMethod method = 2 [
|
|
(validate.rules).enum.defined_only = true,
|
|
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
|
|
description: "defines which text equality method is used";
|
|
}
|
|
];
|
|
}
|
|
|
|
//ActionStateQuery is always equals
|
|
message ActionStateQuery {
|
|
ActionState state = 1 [
|
|
(validate.rules).enum.defined_only = true,
|
|
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
|
|
description: "current state of the action";
|
|
}
|
|
];
|
|
}
|
|
|
|
enum ActionFieldName {
|
|
ACTION_FIELD_NAME_UNSPECIFIED = 0;
|
|
ACTION_FIELD_NAME_NAME = 1;
|
|
ACTION_FIELD_NAME_ID = 2;
|
|
ACTION_FIELD_NAME_STATE = 3;
|
|
}
|
|
|
|
message Flow {
|
|
// id of the flow type
|
|
FlowType type = 1 [
|
|
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
|
|
description: "\"the type of the flow\"";
|
|
}
|
|
];
|
|
zitadel.v1.ObjectDetails details = 2;
|
|
FlowState state = 3 [
|
|
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
|
|
description: "the state of the flow";
|
|
}
|
|
];
|
|
repeated TriggerAction trigger_actions = 4;
|
|
}
|
|
|
|
message FlowType {
|
|
// identifier of the type
|
|
string id = 1;
|
|
// key and name of the type
|
|
zitadel.v1.LocalizedMessage name = 2;
|
|
}
|
|
|
|
enum FlowState {
|
|
FLOW_STATE_UNSPECIFIED = 0;
|
|
FLOW_STATE_INACTIVE = 1;
|
|
FLOW_STATE_ACTIVE = 2;
|
|
}
|
|
|
|
message TriggerType {
|
|
// identifier of the type
|
|
string id = 1;
|
|
// key and name of the type
|
|
zitadel.v1.LocalizedMessage name = 2;
|
|
}
|
|
|
|
message TriggerAction {
|
|
// id of the trigger type
|
|
TriggerType trigger_type = 1;
|
|
repeated Action actions = 2;
|
|
}
|