Skip to content
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
b37d25e
Add "exposed" operation for system nexus endpoint
spkane31 Mar 18, 2026
d70e3ca
merge conflicts
spkane31 Mar 18, 2026
b517764
linter fixes
spkane31 Mar 18, 2026
f0760b3
remove local nexusannotations and use nexus-rpc repo
spkane31 Mar 24, 2026
3f17a76
add nexus annotations to buf.yaml
spkane31 Mar 25, 2026
ba43a56
buf.lock
spkane31 Mar 25, 2026
ab1b41d
add target to Makefile for downloading updates
spkane31 Mar 25, 2026
e263cf2
Merge branch 'master' of github.com:temporalio/api into spk/signal-wi…
spkane31 Mar 30, 2026
4979ae3
Merge branch 'master' of github.com:temporalio/api into spk/signal-wi…
spkane31 Apr 3, 2026
65d1c56
first draft of a nexusrpc{.langs}.yaml files
spkane31 Apr 3, 2026
9558edf
use json pointer format instead of dot notation
spkane31 Apr 3, 2026
d10e568
change file names
spkane31 Apr 6, 2026
863d3f3
Merge branch 'master' of github.com:temporalio/api into spk/signal-wi…
spkane31 Apr 6, 2026
d249bb6
add typescript and python Refs
spkane31 Apr 6, 2026
54fa5c4
Merge branch 'master' of github.com:temporalio/api into spk/signal-wi…
spkane31 Apr 6, 2026
1152ac5
addressing review comments
spkane31 Apr 13, 2026
c267398
install from nexus-rpc/nexus-rpc-gen repo
spkane31 Apr 13, 2026
c3e6d26
tests
spkane31 Apr 14, 2026
adecd33
Merge branch 'master' of github.com:temporalio/api into spk/signal-wi…
spkane31 Apr 14, 2026
1b7b2b5
proto
spkane31 Apr 14, 2026
87be9e8
merge conflicts
spkane31 Apr 16, 2026
e9a0f6c
ci-build
spkane31 Apr 16, 2026
e150e41
remove test files
spkane31 Apr 16, 2026
5ab04f0
remove test deps
spkane31 Apr 16, 2026
4131b90
generate types into #/components/schemas directly in nexus json schem…
spkane31 Apr 17, 2026
0e58e7d
/components/schemas -> /types
spkane31 Apr 17, 2026
c6d6808
generate proto refs for grpc requests and responses
spkane31 Apr 21, 2026
570f947
Merge branch 'master' of github.com:temporalio/api into spk/signal-wi…
spkane31 Apr 24, 2026
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 nexus.v1;

import "google/protobuf/descriptor.proto";

option go_package = "github.com/bergundy/nexus-proto-annotations/go/nexus/v1";
Copy link
Copy Markdown
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
Copy Markdown
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 {
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

We have tags on services too but you didn't support excluding or including based on tags.

That's fine for now, but the "official" plugin would need to have all of this functionality, similar to what bergundy/protoc-gen-go-nexus does.

// 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 (nexus.v1.operation).tags = "exposed";
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

For reviewer: this tag can be used by our code generation tool to generate Nexus handler interfaces.


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