Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions nexusannotations/v1/options.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
syntax = "proto3";

package nexusannotations.v1;

import "google/protobuf/descriptor.proto";

option go_package = "github.com/bergundy/nexus-proto-annotations/go/nexus/v1";
Copy link
Member

Choose a reason for hiding this comment

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

The package name here would be different depending on the verdict of where we would want to put these annotations. I don't think we should reference anything in my personal repo.

Copy link
Member

Choose a reason for hiding this comment

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

Also note that the annotations already exist in the referenced GH repo, I had to inline them here because the package name nexus was conflicting and confusing our protoc generation pipeline.


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;
}
5 changes: 4 additions & 1 deletion temporal/api/workflowservice/v1/service.proto
Original file line number Diff line number Diff line change
Expand Up @@ -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";
import "temporal/api/protometa/v1/annotations.proto";

// WorkflowService API defines how Temporal SDKs and other clients interact with the Temporal server
Expand Down Expand Up @@ -487,6 +488,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 (nexusannotations.v1.operation).tags = "exposed";

option (google.api.http) = {
post: "/namespaces/{namespace}/workflows/{workflow_id}/signal-with-start/{signal_name}"
body: "*"
Expand Down
Loading