Repository navigation
Conversation
This was referenced Oct 28, 2026
moetemp
force-pushed
the
moe/up/python-rpc-options
branch
from
October 29, 2026 04:00
803aadb to
dffa48a
Compare
moetemp
force-pushed
the
moe/up/source-targets
branch
from
October 29, 2026 04:00
4ad0591 to
0b8405f
Compare
1 of 3 tasks
Owner
Author
|
Closing. temporalio#344 already lets |
Owner
Author
|
Reopened. On top of temporalio#346 we may still need three of its rules: the private request methods fill unset sources, a source can read a create's |
A Stream request fills the producer from a Workflow helper in Workflow code and from an Activity helper in a client, and the client API leaves the owner unset. A field takes one `@nexus.source` for each target, and `@nexus.api-omit` takes `targets`.
moetemp
force-pushed
the
moe/up/source-targets
branch
from
October 31, 2026 13:08
0b8405f to
f76c7e1
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed?
This PR lets
@nexus.sourceand@nexus.api-omitname the generation targets that they apply to.@nexus.sourcefor each target, and two sources can't name the same target.@nexus.api-omit targets=leaves the field out of the API of those targets, and it can't share a target with a source.definitionargument of an operation that returns a resource with@nexus.definition. A client source can't.@nexus.api-omiton a required field that isn't alist<T>, also with no target. A TypeScript or .NET call of a target that omits a required list sends the list empty.@nexus.name, keeps an optional sourced field optional, and gives a proto-backed 64-bit sourced field theLongtype.The stream sample takes these directives, so
publishandclosedon't take the producer, and the client create doesn't take the owner.Why?
Both targets share the models, so a Workflow helper as a model default fails in client code. A Stream request's context fields differ per context. The producer is the run in a Workflow, the attempt in an Activity, and the client in a client.
How did you test it?
Link to a test plan if any -
Python tests fill the sources of a Workflow create, a client append and a resource method from fake contexts. The TypeScript and .NET tests check the requests of the client target. Fixtures cover the refused combinations.