temporalio / temporalio/temporal

Improve user experience with config templates

Open
#10,410 0 comments 1 reaction 1 assignee View on GitHub

@chaptersix is already working on this.

Since May 28, 2026.

Dominant language
Go
Stars
23.2k
Forks
1.9k
Avg merge
2d 8h
Merged PRs (30d)
228

Description

Problem

Working with Temporal server config templates is harder than it needs to be, especially in containerized environments.

Diagnostic commands don't work in default container environments

The start command supports three config loading strategies:

  1. --config-file (or TEMPORAL_SERVER_CONFIG_FILE_PATH env var)
  2. Legacy flags (--config/--env/--zone) for directory-based hierarchical loading
  3. Embedded template (default when no flags are set)

The render-config and validate-dynamic-config commands only support option 2. Since the default container image uses the embedded template with no config files mounted, these diagnostic commands don't work out of the box. To inspect the resolved config, users must download the embedded template from the repo source, rename it to development.yaml, and load it through the legacy path:

wget -q -O /tmp/development.yaml \
  https://raw.githubusercontent.com/temporalio/temporal/v1.31.0/common/config/config_template_embedded.yaml

temporal-server --config /tmp render-config

This should be as simple as running temporal-server render-config with no arguments, the same way start works.

No easy way to view the embedded template

Users who want to customize the config template have no way to extract or view it from the binary. They have to find the correct version of config_template_embedded.yaml in the GitHub repo source. There should be a straightforward way to dump the raw template to see what options are available before customizing.

validate-dynamic-config requires knowing the file path

validate-dynamic-config requires explicit file paths as arguments. It cannot resolve the path from the server config's dynamicConfigClient.filepath, even though that information is already available. Users need to know the exact path rather than just validating what the server would actually use.

--config-file flag not available on diagnostic commands

The --config-file flag (and TEMPORAL_SERVER_CONFIG_FILE_PATH env var) only works with start. Users who provide a custom config file have no way to use the same flag with render-config or validate-dynamic-config.

Expected Behavior

Config template tooling should be easy to use in any environment where the server itself runs. Users should be able to inspect, validate, and understand their configuration without workarounds.

See #10282 for one possible approach.

Contributor guide

Open the contributing guide

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.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.