ui-server: adopt the standard TEMPORAL_TLS_* envconfig names for TLS configuration
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 431
- Forks
- 179
- Avg merge
- 2d 9h
- Merged PRs (30d)
- 71
Description
Is your feature request related to a problem? Please describe.
The temporal CLI and every Temporal SDK (Go, Python, TypeScript, Java, .NET) share a standardized "environment configuration" convention for client connection settings, including TLS — TEMPORAL_ADDRESS, TEMPORAL_NAMESPACE, TEMPORAL_TLS, TEMPORAL_TLS_CLIENT_CERT_PATH, TEMPORAL_TLS_CLIENT_KEY_PATH, TEMPORAL_TLS_SERVER_CA_CERT_PATH, TEMPORAL_TLS_SERVER_NAME, TEMPORAL_TLS_DISABLE_HOST_VERIFICATION (see the CLI's option definitions: cliext/option-sets.yaml#L136-L179, and e.g. the Python SDK's temporalio.envconfig module).
ui-server's Docker config template (server/config/docker.yaml) uses an older, unrelated set of names for the same settings — TEMPORAL_TLS_CA, TEMPORAL_TLS_CERT, TEMPORAL_TLS_KEY (plus _DATA variants), TEMPORAL_TLS_ENABLE_HOST_VERIFICATION. It doesn't recognize the standard names at all, verified locally on temporalio/ui:2.52.0: garbage PEM data under the old names fails fast (Unable to load server CA certificate, proving they're read), the same garbage under the standard names is silently ignored (server starts clean, proving they're never read).
This means anyone deploying Temporal with mTLS across the CLI, SDKs, and the Web UI has to maintain two parallel sets of TLS env vars pointing at the same certificate files — mismatches produce no error, so it's easy to get wrong silently.
Describe the solution you'd like
Have ui-server's config loader also accept the standard envconfig names (TEMPORAL_TLS_CLIENT_CERT_PATH/_DATA, TEMPORAL_TLS_CLIENT_KEY_PATH/_DATA, TEMPORAL_TLS_SERVER_CA_CERT_PATH/_DATA, TEMPORAL_TLS_DISABLE_HOST_VERIFICATION) — ideally via the same shared envconfig implementation the SDKs and CLI already use — so one env block can configure the UI alongside every other client.
Describe alternatives you've considered
Keeping both sets of names indefinitely and documenting the mapping — works, but every deployment has to know about and maintain the duplication rather than it being handled once in ui-server itself.
Additional context
temporalio/ui 2.52.0 (also affects earlier versions using the same config scheme, and likely current main).
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with server/config/docker.yaml, then trace the ui-server configuration loader that consumes these TLS settings. Compare the existing names with the standard names listed in the issue, including _DATA variants and host-verification behavior. Done means the standard variables configure TLS alongside the existing settings without silently ignoring valid values.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, typescript
- Domain
- backend, devops
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 72/100