temporalio / temporalio/temporal
Improve user experience with config templates
@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:
--config-file(orTEMPORAL_SERVER_CONFIG_FILE_PATHenv var)- Legacy flags (
--config/--env/--zone) for directory-based hierarchical loading - 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
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.
Assessment
This issue has not been assessed yet.