Skip to content

Conversation

@chaptersix
Copy link
Contributor

This implements issue #421: adds GetDynamicConfig RPC to the admin service and a corresponding 'tdbg config list' command to dump all registered dynamic config settings along with their configured override values.

Changes:

  • Extended GenericSetting interface with Description() and DefaultValue() methods
  • Added ListSettings() to registry for enumerating all registered settings
  • Added GetConfiguredValues() to Collection for retrieving configured overrides
  • Added proto definitions for GetDynamicConfig request/response
  • Implemented GetDynamicConfig in admin handler
  • Added tdbg config list command with key filtering support
  • Added tests for Description(), DefaultValue(), ListSettings(), GetConfiguredValues()

What changed?

Describe what has changed in this PR.

Why?

Tell your future self why have you made these changes.

How did you test it?

  • built
  • run locally and tested manually
  • covered by existing tests
  • added new unit test(s)
  • added new functional test(s)

Potential risks

Any change is risky. Identify all risks you are aware of. If none, remove this section.

This implements issue temporalio#421: adds GetDynamicConfig RPC to the admin service
and a corresponding 'tdbg config list' command to dump all registered
dynamic config settings along with their configured override values.

Changes:
- Extended GenericSetting interface with Description() and DefaultValue() methods
- Added ListSettings() to registry for enumerating all registered settings
- Added GetConfiguredValues() to Collection for retrieving configured overrides
- Added proto definitions for GetDynamicConfig request/response
- Implemented GetDynamicConfig in admin handler
- Added tdbg config list command with key filtering support
- Added tests for Description(), DefaultValue(), ListSettings(), GetConfiguredValues()
@CLAassistant
Copy link

CLAassistant commented Jan 4, 2026

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
1 out of 2 committers have signed the CLA.

✅ chaptersix
❌ claude
You have signed the CLA already but the status is still pending? Let us recheck it.

@chaptersix
Copy link
Contributor Author

> ./tdbg config list --filter history.enablechasmcallbacks -v
Found 1 dynamic config settings:

history.enablechasmcallbacks
  Precedence: Namespace
  Default: false
  Description: Controls whether new callbacks are created using the CHASM implementation
           instead of the previous HSM backed implementation.
  Values:
    {namespace:default}=true
> ./tdbg config list --filter history.enablechasmcallbacks
Found 1 settings (use -v for details)

 KEY                           PRECEDENCE  DEFAULT  VALUES
 history.enablechasmcallbacks  Namespace   false    {namespace:default}=true
>  ./tdbg config list --filter history.enablechasmcallbacks --json | jq
[
 {
   "key": "history.enablechasmcallbacks",
   "precedence": "Namespace",
   "default": "false",
   "values": [
     {
       "constraints": {
         "namespace": "default"
       },
       "value": "true"
     }
   ],
   "description": "Controls whether new callbacks are created using the CHASM implementation\ninstead of the previous HSM backed implementation."
 }
]

return &adminservice.GetDynamicConfigResponse{Entries: entries}, nil
}

func precedenceToString(p dynamicconfig.Precedence) string {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do we need a type swtich?

}
}

func constrainedValueToProto(cv dynamicconfig.ConstrainedValue) *adminservice.DynamicConfigValue {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

simplify?

@chaptersix
Copy link
Contributor Author

will need to re-open. claude is preventing to license check from passing

@chaptersix
Copy link
Contributor Author

Closing in favor of existing PR.

@chaptersix chaptersix closed this Jan 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants