temporalio / temporalio/ui

ui-server: adopt the standard TEMPORAL_TLS_* envconfig names for TLS configuration

Open
#3,766 0 comments 0 reactions 0 assignees View on GitHub

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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.