-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Start with
- Allow
temporal://system
URLs always to be attached as callbacks. - Dispatch
temporal://system
callback URLs internally, automatically (see link below).
Then
- Add a token here.
Then update the SPEC and Nexus SDKs
- In the Nexus SPEC.md, call out that the
Nexus-Callback-Token
is a standard header and that it is required as part of theStartOperation
request. - In the Nexus SDKs (start with Go), add a
CallbackToken []byte (or string TBD)
field inStartOpertionOptions
(called details, context) in the other SDKs.
Once the server can handle these new URLs, switch to using them
- Behind a dynamic config, which can be deprecated in a few releases.
- Default the server's callback URL to
temporal://system
.- The callback URL template, must be provided when making "external" calls but "worker" endpoints should use the
temporal://system
callback URL.
- The callback URL template, must be provided when making "external" calls but "worker" endpoints should use the
- Figure out how to make this work in Cloud.
Reference
temporal/components/callbacks/fx.go
Line 45 in 16b1e29
return func(r *http.Request) (*http.Response, error) { |
temporal/components/nexusoperations/fx.go
Lines 102 to 111 in 16b1e29
case *persistencespb.NexusEndpointTarget_External_: | |
url = variant.External.GetUrl() | |
var err error | |
httpClient, err = m.Get(clientProviderCacheKey{namespaceID, entry.Id, url}) | |
if err != nil { | |
return nil, err | |
} | |
case *persistencespb.NexusEndpointTarget_Worker_: | |
url = cl.BaseURL() + "/" + commonnexus.RouteDispatchNexusTaskByEndpoint.Path(entry.Id) | |
httpClient = &cl.Client |
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request