Worker authentication is optional per workload. When configured, every inbound gRPC request must include anDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/temporal-sa/temporal-cloud-proxy/llms.txt
Use this file to discover all available pages before exploring further.
authorization: Bearer <token> metadata header. The proxy validates the token before forwarding the call to Temporal Cloud — requests that are missing the header or carry an invalid token are rejected with a codes.Unauthenticated or codes.InvalidArgument gRPC error before any payload is forwarded.
Worker auth and namespace auth are completely independent concerns. Namespace auth is the credential the proxy presents to Temporal Cloud (mTLS or API key). Worker auth is the credential workers present to the proxy (JWT or SPIFFE SVID). Both can be configured simultaneously, and configuring one does not imply the other.
JWT authentication
The JWT authenticator fetches the provider’s public keys from a JWKS endpoint and uses them to verify the token signature. The JWKS URL is polled for updates every 5 minutes in the background, so key rotations at the provider are picked up automatically without restarting the proxy.The full URL of the JWKS (JSON Web Key Set) endpoint. The proxy fetches this URL at startup to obtain the initial signing keys and then refreshes it every 5 minutes. The endpoint must be reachable from the host running the proxy.
One or more audience values that the proxy accepts. The token’s
aud claim must contain at least one entry that exactly matches a value in this list. Both single-string and multi-value aud claims are supported.Validation steps
For each incoming request, the JWT authenticator performs the following checks in order:Signature verification
The token’s signature is verified against the public keys fetched from the configured JWKS URL.
Audience check
The
aud claim must contain at least one value matching an entry in the configured audiences list. Tokens with a missing or non-matching aud are rejected.SPIFFE / SPIRE authentication
The SPIFFE authenticator connects to a SPIRE workload API socket to obtain the JWKS used to validate JWT-SVIDs. After validating the SVID’s signature and audience, it checks the SVID’s SPIFFE ID against a configured allowlist — only SVIDs whose SPIFFE ID exactly matches one of the listed values are accepted.The allowlist of SPIFFE IDs. The validated SVID’s SPIFFE ID must exactly match one entry in this list (string equality). SVIDs with a valid signature but a SPIFFE ID not in the list are rejected with
invalid SPIFFE ID: <id> not in allowed list.The SPIRE workload API socket address. Accepts
unix:// paths (e.g. unix:///tmp/spire-agent/public/api.sock) or tcp:// addresses. The proxy calls workloadapi.NewJWTSource against this endpoint at startup.One or more audience values the SVID must include. Passed directly to
jwtsvid.ParseAndValidate, which enforces the audience check as part of standard SVID validation.If the All calls are still subject to namespace-level authentication (mTLS or API key) before reaching Temporal Cloud.
authentication block is omitted from a workload entirely, the proxy logs a warning at startup and forwards all inbound requests for that workload without any token validation: