diff --git a/proto/aquila/aquila.action.proto b/proto/aquila/aquila.action.proto index 1651cc1..5200216 100644 --- a/proto/aquila/aquila.action.proto +++ b/proto/aquila/aquila.action.proto @@ -7,6 +7,21 @@ package aquila; import "shared.module.proto"; import "shared.execution_result.proto"; import "shared.struct.proto"; +import "shared.flow.proto"; +import "shared.translation.proto"; +import "shared.errors.proto"; + +message ActionFlow { + int64 flow_id = 1; + int64 project_id = 2; + + repeated shared.FlowSetting settings = 3; + shared.Struct input_schema = 4; + shared.Struct output_schema = 5; + string project_slug = 6; + + string name = 7; +} // Event that gets admitted by an action message ActionEvent { @@ -36,13 +51,36 @@ message ActionExecutionRequest { int64 project_id = 4; } +message ActionFlowExecutioRequest { + string execution_identifier = 1; + string flow_id = 2; + shared.Value payload = 3; +} + message ActionExecutionResponse { - // Execution identifier of execution + // Execution identifier of execution string execution_identifier = 1; // Result of execution shared.NodeExecutionResult node_result = 2; } +message ActionFlowExecutionResponse { + // Execution identifier of execution + string execution_identifier = 1; + oneof result { + shared.Value success = 2; + shared.Error failure = 3; + } +} + +message ActionFlowUpdate { + oneof data { + ActionFlow updated_flow = 1; + int64 deleted_flow = 2; + } +} + +// Messages sent by the Action message ActionTransferRequest { oneof data { // Identification of the action @@ -54,15 +92,20 @@ message ActionTransferRequest { ActionEvent event = 2; // Result of execution that was triggered by a execution request ActionExecutionResponse result = 3; + // Result of an flow execution + ActionFlowExecutionResponse flow_execution_response = 4; } } +// Messages sent by Aquila message ActionTransferResponse { oneof data { // Execution request ActionExecutionRequest execution = 1; // ModuleConfigurations that have been configured by the user shared.ModuleConfigurations module_configurations = 2; + // An Action Flow update + ActionFlowUpdate flow_update = 3; } } diff --git a/proto/shared/shared.flow.proto b/proto/shared/shared.flow.proto index 7530014..44472f4 100644 --- a/proto/shared/shared.flow.proto +++ b/proto/shared/shared.flow.proto @@ -6,6 +6,7 @@ package shared; import "shared.struct.proto"; import "shared.data_type.proto"; +import "shared.translation.proto"; message ValidationFlow { // Database ID -> req. for Aquila to identify in FlowStore @@ -21,6 +22,12 @@ message ValidationFlow { string project_slug = 8; optional string disable_reason = 9; string signature = 10; + + optional string definition_source = 11; + shared.Struct input_schema = 12; + shared.Struct output_schema = 13; + + string name = 14; } message ExecutionFlow { diff --git a/proto/velorum/velorum.info.proto b/proto/velorum/velorum.info.proto index 2b0a6a4..4446956 100644 --- a/proto/velorum/velorum.info.proto +++ b/proto/velorum/velorum.info.proto @@ -4,10 +4,6 @@ option ruby_package = "Tucana::Velorum"; package velorum; -import "shared.function.proto"; -import "shared.data_type.proto"; -import "shared.flow.proto"; - message ModelsRequest {} message Model {