Skip to content

new module endpoint#314

Open
raphael-goetz wants to merge 8 commits intomainfrom
#311-new-module-endpoint
Open

new module endpoint#314
raphael-goetz wants to merge 8 commits intomainfrom
#311-new-module-endpoint

Conversation

@raphael-goetz
Copy link
Copy Markdown
Member

Resolves: #311

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 27, 2026

GitLab Pipeline Action

General information

Link to pipeline: https://gitlab.com/code0-tech/development/aquila/-/pipelines/2483245793

Status: Passed
Duration: 1 minutes

Job summaries

docs:preview

Documentation preview available at https://code0-tech.gitlab.io/-/development/telescopium/-/jobs/14109973364/artifacts/out/index.html

@raphael-goetz raphael-goetz marked this pull request as ready for review April 27, 2026 18:23
Copilot AI review requested due to automatic review settings April 27, 2026 18:23
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates Aquila to support the new module update endpoint (Issue #311) by upgrading tucana and refactoring gRPC wiring and configuration types from action-centric updates to module-centric updates.

Changes:

  • Upgrade tucana dependency to 0.0.70.
  • Add ModuleService server/client plumbing and switch config broadcasting from ActionConfigurations to ModuleConfigurations.
  • Update the Action Transfer service and related flow/config plumbing to the new protobuf message types (module/action message renames).

Reviewed changes

Copilot reviewed 21 out of 22 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
src/startup/mod.rs Switch broadcast channel payload from ActionConfigurations to ModuleConfigurations.
src/startup/dynamic_mode.rs Update dynamic-mode startup signature to use ModuleConfigurations broadcaster.
src/server/mod.rs Rewire gRPC server to register ModuleService (and remove several previous service registrations).
src/server/module_service_server_impl.rs New ModuleService server implementation (update endpoint).
src/server/action_transfer_service_server_impl.rs Update ActionTransfer gRPC streaming types and config forwarding to ModuleConfigurations.
src/server/runtime_function_service_server_impl.rs Remove RuntimeFunctionDefinition service implementation.
src/server/function_service_server_impl.rs Remove FunctionDefinition service implementation.
src/server/flow_type_service_server_impl.rs Remove FlowType service implementation.
src/server/data_type_service_server_impl.rs Remove DataType service implementation.
src/sagittarius/module_service_client_impl.rs New Sagittarius module service client.
src/sagittarius/mod.rs Update Sagittarius module exports to include module_service_client_impl and drop removed clients.
src/sagittarius/flow_service_client_impl.rs Forward ModuleConfigurations from flow stream into broadcast channel.
src/sagittarius/runtime_status_service_client_impl.rs Map new ActionStatus status variant through to Sagittarius request.
src/sagittarius/test_execution_client_impl.rs Adjust test execution response decoding to ExecutionResult.
src/configuration/service.rs Migrate configuration parsing/output types to ModuleConfigurations.
Cargo.toml Bump tucana to 0.0.70.
Cargo.lock Lockfile updates for tucana 0.0.70 and transitive changes.
Comments suppressed due to low confidence (1)

src/server/action_transfer_service_server_impl.rs:181

  • handle_logon only checks that the provided token exists in ServiceConfiguration (has_action(token)), but it does not verify that the token is authorized for the claimed module/action identifier used to subscribe to action.<identifier>.*. This can allow an action with a valid token to impersonate another identifier by choosing a different module.identifier. Add a validation that binds token -> allowed identifier (e.g., look up the configured action by token and compare its service_name/identifier), and reject mismatches.
    let identifier = match action_logon.module {
        Some(ref m) => m.identifier.clone(),
        None => {
            return Err(Status::aborted("Please provide a module configuration."));
        }
    };
    let lock = actions.lock().await;
    if !lock.has_action(&token.to_string()) {
        log::debug!(
            "Rejected action with identifer: {}, becuase its not registered",
            identifier
        );
        return Err(Status::unauthenticated(
            "token not matching to action identifier",
        ));

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/sagittarius/module_service_client_impl.rs Outdated
Comment thread src/server/mod.rs
Comment thread src/server/action_transfer_service_server_impl.rs
Comment thread src/configuration/service.rs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Raphael Götz <52959657+raphael-goetz@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Aquila should support module update endpoint

2 participants