From 1c7eaa1c0b3370df1b1d3f155f6edb7aac45d423 Mon Sep 17 00:00:00 2001 From: Raphael Date: Tue, 16 Jun 2026 14:32:59 +0200 Subject: [PATCH 1/9] feat: added module data endpoint --- proto/aquila/aquila.module.proto | 9 ++++- proto/sagittarius/sagittarius.module.proto | 18 +++++++++ proto/shared/shared.module.proto | 44 +++++++++++++++++++--- proto/taurus/taurus.module_data.proto | 11 ++++++ 4 files changed, 75 insertions(+), 7 deletions(-) create mode 100644 proto/taurus/taurus.module_data.proto diff --git a/proto/aquila/aquila.module.proto b/proto/aquila/aquila.module.proto index 42fe5ef..cad6332 100644 --- a/proto/aquila/aquila.module.proto +++ b/proto/aquila/aquila.module.proto @@ -12,6 +12,12 @@ message ModuleUpdateRequest { repeated shared.Module modules = 1; } +// Request for updating a list of modules including data types, flow types and runtime function definitions +message ModuleDefinitionUpdateRequest { + // List of modules + repeated shared.ModuleDefinition module_definition = 1; +} + // Response of updating modules including data types, flow types and runtime function definitions message ModuleUpdateResponse { // True if was successful, false if not @@ -20,5 +26,6 @@ message ModuleUpdateResponse { //This service will be implemented as a server by Aquila and as a client by Taurus. service ModuleService { - rpc Update(ModuleUpdateRequest) returns (ModuleUpdateResponse) {} + rpc UpdateModule(ModuleUpdateRequest) returns (ModuleUpdateResponse) {} + rpc UpdateModuleDefinition(ModuleUpdateRequest) returns (ModuleUpdateResponse) {} } diff --git a/proto/sagittarius/sagittarius.module.proto b/proto/sagittarius/sagittarius.module.proto index 8ae3f2f..ce2696a 100644 --- a/proto/sagittarius/sagittarius.module.proto +++ b/proto/sagittarius/sagittarius.module.proto @@ -7,12 +7,28 @@ package sagittarius; import "shared.errors.proto"; import "shared.module.proto"; +message ModuleDataLogon {} + +message ModuleDataRequest { + oneof data { + ModuleDataLogon logon = 1; + shared.ModuleDataConnection connection = 2; + } +} + // Request for updating a list of modules including data types, flow types and runtime function definitions message ModuleUpdateRequest { // List of modules repeated shared.Module modules = 1; } +// Request for updating a list of modules including data types, flow types and runtime function definitions +message ModuleDefinitionUpdateRequest { + // List of modules + repeated shared.ModuleDefinition module_definition = 1; +} + + // Response of updating modules including data types, flow types and runtime function definitions message ModuleUpdateResponse { // True if was successful, false if not @@ -23,4 +39,6 @@ message ModuleUpdateResponse { //This service will be implemented as a server by Sagittarius and as a client by Aquila. service ModuleService { rpc Update(ModuleUpdateRequest) returns (ModuleUpdateResponse) {} + rpc UpdateModuleDefinition(ModuleUpdateRequest) returns (ModuleUpdateResponse) {} + rpc Query(stream ModuleDataRequest) returns (stream shared.ModuleDataQuery) {} } diff --git a/proto/shared/shared.module.proto b/proto/shared/shared.module.proto index 0e0ab79..ab3f305 100644 --- a/proto/shared/shared.module.proto +++ b/proto/shared/shared.module.proto @@ -32,18 +32,50 @@ message Module { } message ModuleDefinition { - // A list of flow type identifier to which the value appies - repeated string flow_type_identifier = 1; - oneof value { - // Endpoint URL - Endpoint endpoint = 2; - } + // List of identifier of module data for this module + repeated string module_data_identifier = 1; + // List of endpoints for this module + repeated Endpoint endpoint = 2; +} + + +message ModuleDataConnection { + int64 count = 1; + repeated ModuleDataEdge edges = 2; + repeated ModuleData nodes = 3; + PageInfo pageInfo = 4; +} + +message ModuleDataEdge { + string cursor = 1; + ModuleData node = 2; +} + +message ModuleData { + string identifier = 1; + shared.Value data = 2; +} + +message PageInfo { + string end_cursor = 1; + bool has_next_page = 2; + bool has_prev_page = 3; + string start_cursor = 4; +} + +message ModuleDataQuery { + string identifier = 1; + string query = 2; + string cursor = 3; + string filter = 4; } message Endpoint { string host = 1; int64 port = 2; string endpoint = 3; + // A list of flow type identifier to which the endpoint applies + repeated string flow_type_identifier = 4; } //send by sagittarius to inform a module of the real config set by the user diff --git a/proto/taurus/taurus.module_data.proto b/proto/taurus/taurus.module_data.proto new file mode 100644 index 0000000..ea31b8f --- /dev/null +++ b/proto/taurus/taurus.module_data.proto @@ -0,0 +1,11 @@ +syntax = "proto3"; + +option ruby_package = "Tucana::Taurus"; + +package taurus; + +import "shared.module.proto"; + +service ModuleDataService { + rpc Query(shared.ModuleDataQuery) returns (shared.ModuleDataConnection) {} +} From bc51dddb6ea7c6fd21f6e2656b280c672edb9c61 Mon Sep 17 00:00:00 2001 From: Raphael Date: Thu, 18 Jun 2026 13:20:19 +0200 Subject: [PATCH 2/9] feat: added module data support for actions --- proto/aquila/aquila.action.proto | 6 ++++++ proto/shared/shared.module.proto | 3 +++ 2 files changed, 9 insertions(+) diff --git a/proto/aquila/aquila.action.proto b/proto/aquila/aquila.action.proto index 1651cc1..64fe996 100644 --- a/proto/aquila/aquila.action.proto +++ b/proto/aquila/aquila.action.proto @@ -54,6 +54,10 @@ message ActionTransferRequest { ActionEvent event = 2; // Result of execution that was triggered by a execution request ActionExecutionResponse result = 3; + // Updated Module Definitions at runtime + shared.ModuleDefinitions module_definitions = 4; + // Response to a Module Data Query + shared.ModuleDataConnection module_data = 5; } } @@ -63,6 +67,8 @@ message ActionTransferResponse { ActionExecutionRequest execution = 1; // ModuleConfigurations that have been configured by the user shared.ModuleConfigurations module_configurations = 2; + // Request to query a specific module data + shared.ModuleDataQuery module_data_query = 3; } } diff --git a/proto/shared/shared.module.proto b/proto/shared/shared.module.proto index ab3f305..4a36b1d 100644 --- a/proto/shared/shared.module.proto +++ b/proto/shared/shared.module.proto @@ -38,6 +38,9 @@ message ModuleDefinition { repeated Endpoint endpoint = 2; } +message ModuleDefinitions { + repeated ModuleDefinition module_definitions = 1; +} message ModuleDataConnection { int64 count = 1; From f679c8cb95637b4506cd9c68d32a71b47b16d681 Mon Sep 17 00:00:00 2001 From: Raphael Date: Mon, 22 Jun 2026 14:14:08 +0200 Subject: [PATCH 3/9] feat: requested changes --- proto/shared/shared.module.proto | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/proto/shared/shared.module.proto b/proto/shared/shared.module.proto index 4a36b1d..2a72ed2 100644 --- a/proto/shared/shared.module.proto +++ b/proto/shared/shared.module.proto @@ -44,14 +44,8 @@ message ModuleDefinitions { message ModuleDataConnection { int64 count = 1; - repeated ModuleDataEdge edges = 2; - repeated ModuleData nodes = 3; - PageInfo pageInfo = 4; -} - -message ModuleDataEdge { - string cursor = 1; - ModuleData node = 2; + repeated ModuleData nodes = 2; + PageInfo pageInfo = 3; } message ModuleData { @@ -68,9 +62,9 @@ message PageInfo { message ModuleDataQuery { string identifier = 1; - string query = 2; - string cursor = 3; - string filter = 4; + string filter = 2; + string sort = 3; + string cursor = 4; } message Endpoint { From 64ec65884eb268db9a8765ab598b6a5832199938 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Raphael=20G=C3=B6tz?= <52959657+raphael-goetz@users.noreply.github.com> Date: Mon, 22 Jun 2026 14:24:54 +0200 Subject: [PATCH 4/9] Update proto/shared/shared.module.proto MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Nico Sammito Signed-off-by: Raphael Götz <52959657+raphael-goetz@users.noreply.github.com> --- proto/shared/shared.module.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proto/shared/shared.module.proto b/proto/shared/shared.module.proto index 9e9e3f5..5dbb60d 100644 --- a/proto/shared/shared.module.proto +++ b/proto/shared/shared.module.proto @@ -52,7 +52,7 @@ message ModuleDataConnection { message ModuleData { string identifier = 1; - shared.Value data = 2; + repeated shared.Value data = 2; } message PageInfo { From e899b1a29f30770cc93b741081fb997942188df8 Mon Sep 17 00:00:00 2001 From: Raphael Date: Mon, 29 Jun 2026 18:31:01 +0200 Subject: [PATCH 5/9] ref: better comment --- proto/aquila/aquila.module.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proto/aquila/aquila.module.proto b/proto/aquila/aquila.module.proto index cad6332..50a0426 100644 --- a/proto/aquila/aquila.module.proto +++ b/proto/aquila/aquila.module.proto @@ -12,7 +12,7 @@ message ModuleUpdateRequest { repeated shared.Module modules = 1; } -// Request for updating a list of modules including data types, flow types and runtime function definitions +// Request for updating a list of module definitions message ModuleDefinitionUpdateRequest { // List of modules repeated shared.ModuleDefinition module_definition = 1; From 3e7d039af1fae6ea35c357a095c9375480efd003 Mon Sep 17 00:00:00 2001 From: Raphael Date: Mon, 29 Jun 2026 18:37:15 +0200 Subject: [PATCH 6/9] drop: removed taurus --- proto/aquila/aquila.module.proto | 18 ++++++++++++++++-- proto/sagittarius/sagittarius.module.proto | 2 +- proto/taurus/taurus.module_data.proto | 11 ----------- 3 files changed, 17 insertions(+), 14 deletions(-) delete mode 100644 proto/taurus/taurus.module_data.proto diff --git a/proto/aquila/aquila.module.proto b/proto/aquila/aquila.module.proto index 50a0426..2024791 100644 --- a/proto/aquila/aquila.module.proto +++ b/proto/aquila/aquila.module.proto @@ -5,6 +5,17 @@ option ruby_package = "Tucana::Aquila"; package aquila; import "shared.module.proto"; +import "shared.errors.proto"; + +message ModuleDataLogon {} + +message ModuleDataRequest { + oneof data { + ModuleDataLogon logon = 1; + shared.ModuleDataConnection connection = 2; + } +} + // Request for updating a list of modules including data types, flow types and runtime function definitions message ModuleUpdateRequest { @@ -18,14 +29,17 @@ message ModuleDefinitionUpdateRequest { repeated shared.ModuleDefinition module_definition = 1; } + // Response of updating modules including data types, flow types and runtime function definitions message ModuleUpdateResponse { // True if was successful, false if not bool success = 1; + optional shared.ServiceError error = 2; } -//This service will be implemented as a server by Aquila and as a client by Taurus. +//This service will be implemented as a server by Sagittarius and as a client by Aquila. service ModuleService { - rpc UpdateModule(ModuleUpdateRequest) returns (ModuleUpdateResponse) {} + rpc Update(ModuleUpdateRequest) returns (ModuleUpdateResponse) {} rpc UpdateModuleDefinition(ModuleUpdateRequest) returns (ModuleUpdateResponse) {} + rpc Query(stream ModuleDataRequest) returns (stream shared.ModuleDataQuery) {} } diff --git a/proto/sagittarius/sagittarius.module.proto b/proto/sagittarius/sagittarius.module.proto index f9a7af4..cd0afc8 100644 --- a/proto/sagittarius/sagittarius.module.proto +++ b/proto/sagittarius/sagittarius.module.proto @@ -25,7 +25,7 @@ message ModuleUpdateRequest { repeated string available_defintition_soruces = 2; } -// Request for updating a list of modules including data types, flow types and runtime function definitions +// Request for updating a list of module definitions message ModuleDefinitionUpdateRequest { // List of modules repeated shared.ModuleDefinition module_definition = 1; diff --git a/proto/taurus/taurus.module_data.proto b/proto/taurus/taurus.module_data.proto deleted file mode 100644 index ea31b8f..0000000 --- a/proto/taurus/taurus.module_data.proto +++ /dev/null @@ -1,11 +0,0 @@ -syntax = "proto3"; - -option ruby_package = "Tucana::Taurus"; - -package taurus; - -import "shared.module.proto"; - -service ModuleDataService { - rpc Query(shared.ModuleDataQuery) returns (shared.ModuleDataConnection) {} -} From da224b85ea0c4cdf0a4467eb10a98c78afd101db Mon Sep 17 00:00:00 2001 From: Raphael Date: Thu, 2 Jul 2026 20:41:55 +0200 Subject: [PATCH 7/9] feat: made filter and sort typed --- proto/shared/shared.module.proto | 40 ++++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/proto/shared/shared.module.proto b/proto/shared/shared.module.proto index 5dbb60d..2b0786b 100644 --- a/proto/shared/shared.module.proto +++ b/proto/shared/shared.module.proto @@ -64,11 +64,47 @@ message PageInfo { message ModuleDataQuery { string identifier = 1; - string filter = 2; - string sort = 3; + repeated ModuleDataFilter filter = 2; + repeated ModuleDataSort sort = 3; string cursor = 4; } +message ModuleDataSort { + enum ModuleDataSortDirection { + UNKNOWN = 0; + ASC = 1; + DESC = 2; + } + + repeated string path = 1; + ModuleDataSortDirection direction = 2; +} + +message ModuleDataFilter { + message Operation { + oneof operation { + boolean exists = 1; + + NumberValue gt = 2; + NumberValue gte = 3; + NumberValue lt = 4; + NumberValue lte = 5; + + string eq = 6; + string neq = 7; + string contains = 8; + string starts_with = 9; + string ends_with = 10; + + ListValue in = 11; + ListValue not_in = 12; + } + } + + repeated string path = 1; + Operation operation = 2; +} + message Endpoint { string host = 1; int64 port = 2; From a7f096a2f92cc1da080aa1097f11f1699d10650d Mon Sep 17 00:00:00 2001 From: Raphael Date: Thu, 2 Jul 2026 20:43:35 +0200 Subject: [PATCH 8/9] fix: correct data type --- proto/shared/shared.module.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proto/shared/shared.module.proto b/proto/shared/shared.module.proto index 2b0786b..5f0b9e4 100644 --- a/proto/shared/shared.module.proto +++ b/proto/shared/shared.module.proto @@ -83,7 +83,7 @@ message ModuleDataSort { message ModuleDataFilter { message Operation { oneof operation { - boolean exists = 1; + bool exists = 1; NumberValue gt = 2; NumberValue gte = 3; From 4f32185d19154b1a5e136a7b9ae80a02b4e67136 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Raphael=20G=C3=B6tz?= <52959657+raphael-goetz@users.noreply.github.com> Date: Sun, 5 Jul 2026 20:42:09 +0200 Subject: [PATCH 9/9] Update proto/shared/shared.module.proto MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Nico Sammito Signed-off-by: Raphael Götz <52959657+raphael-goetz@users.noreply.github.com> --- proto/shared/shared.module.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proto/shared/shared.module.proto b/proto/shared/shared.module.proto index 5f0b9e4..94b7dab 100644 --- a/proto/shared/shared.module.proto +++ b/proto/shared/shared.module.proto @@ -66,7 +66,7 @@ message ModuleDataQuery { string identifier = 1; repeated ModuleDataFilter filter = 2; repeated ModuleDataSort sort = 3; - string cursor = 4; + optional string cursor = 4; } message ModuleDataSort {