From b37d25e70d87126fdeaf39d2207f57e8fd744b51 Mon Sep 17 00:00:00 2001 From: Sean Kane Date: Wed, 18 Mar 2026 15:40:01 -0600 Subject: [PATCH 1/2] Add "exposed" operation for system nexus endpoint --- nexusannotations/v1/options.proto | 29 +++++++++++++++++++ temporal/api/workflowservice/v1/service.proto | 5 +++- 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 nexusannotations/v1/options.proto diff --git a/nexusannotations/v1/options.proto b/nexusannotations/v1/options.proto new file mode 100644 index 000000000..0f817e4a4 --- /dev/null +++ b/nexusannotations/v1/options.proto @@ -0,0 +1,29 @@ +syntax = "proto3"; + +package nexus.v1; + +import "google/protobuf/descriptor.proto"; + +option go_package = "github.com/bergundy/nexus-proto-annotations/go/nexus/v1"; + +extend google.protobuf.ServiceOptions { + optional ServiceOptions service = 8233; +} + +extend google.protobuf.MethodOptions { + optional OperationOptions operation = 8234; +} + +message OperationOptions { + // Nexus operation name (defaults to proto method name). + string name = 1; + // Tags to attach to the operation. Used by code generators to include and exclude operations. + repeated string tags = 2; +} + +message ServiceOptions { + // Nexus service name (defaults to proto service full name). + string name = 1; + // Tags to attach to the service. Used by code generators to include and exclude services. + repeated string tags = 2; +} \ No newline at end of file diff --git a/temporal/api/workflowservice/v1/service.proto b/temporal/api/workflowservice/v1/service.proto index 8b0eb2ce6..7810aa7d8 100644 --- a/temporal/api/workflowservice/v1/service.proto +++ b/temporal/api/workflowservice/v1/service.proto @@ -10,8 +10,9 @@ option ruby_package = "Temporalio::Api::WorkflowService::V1"; option csharp_namespace = "Temporalio.Api.WorkflowService.V1"; -import "temporal/api/workflowservice/v1/request_response.proto"; import "google/api/annotations.proto"; +import "nexusannotations/v1/options.proto"; +import "temporal/api/workflowservice/v1/request_response.proto"; // WorkflowService API defines how Temporal SDKs and other clients interact with the Temporal server // to create and interact with workflows and activities. @@ -385,6 +386,8 @@ service WorkflowService { // (-- api-linter: core::0136::prepositions=disabled // aip.dev/not-precedent: "With" is used to indicate combined operation. --) rpc SignalWithStartWorkflowExecution (SignalWithStartWorkflowExecutionRequest) returns (SignalWithStartWorkflowExecutionResponse) { + option (nexus.v1.operation).tags = "exposed"; + option (google.api.http) = { post: "/namespaces/{namespace}/workflows/{workflow_id}/signal-with-start/{signal_name}" body: "*" From b51776406409a2abb55c0871515dcc2e1820aeea Mon Sep 17 00:00:00 2001 From: Sean Kane Date: Wed, 18 Mar 2026 15:47:36 -0600 Subject: [PATCH 2/2] linter fixes --- nexusannotations/v1/options.proto | 2 +- temporal/api/workflowservice/v1/service.proto | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/nexusannotations/v1/options.proto b/nexusannotations/v1/options.proto index 0f817e4a4..a8ef63728 100644 --- a/nexusannotations/v1/options.proto +++ b/nexusannotations/v1/options.proto @@ -1,6 +1,6 @@ syntax = "proto3"; -package nexus.v1; +package nexusannotations.v1; import "google/protobuf/descriptor.proto"; diff --git a/temporal/api/workflowservice/v1/service.proto b/temporal/api/workflowservice/v1/service.proto index 53f4ce2db..9cd8b730d 100644 --- a/temporal/api/workflowservice/v1/service.proto +++ b/temporal/api/workflowservice/v1/service.proto @@ -488,7 +488,7 @@ service WorkflowService { // (-- api-linter: core::0136::prepositions=disabled // aip.dev/not-precedent: "With" is used to indicate combined operation. --) rpc SignalWithStartWorkflowExecution (SignalWithStartWorkflowExecutionRequest) returns (SignalWithStartWorkflowExecutionResponse) { - option (nexus.v1.operation).tags = "exposed"; + option (nexusannotations.v1.operation).tags = "exposed"; option (google.api.http) = { post: "/namespaces/{namespace}/workflows/{workflow_id}/signal-with-start/{signal_name}"