Skip to content

Keep dev-server feature overrides current - #14

Draft
chaptersix wants to merge 7 commits into
mainfrom
saa-dynamic-config-overrides
Draft

Keep dev-server feature overrides current#14
chaptersix wants to merge 7 commits into
mainfrom
saa-dynamic-config-overrides

Conversation

@chaptersix

Copy link
Copy Markdown
Owner

Related issues

What changed?

  • Remove dynamic-config overrides that now match the pinned server defaults, including the CHASM and Standalone Activities enablement flags.
  • Keep temporary boolean feature overrides in explicit lists that are applied at test or dev-server startup and validated against server defaults.
  • Fail focused unit tests when a server upgrade makes an override redundant, signaling that its list entry should be removed.
  • Keep rate limits, cache behavior, and timeout tuning outside the feature-override lists.

Checklist

Design

  • This feature does not depend on Cloud-only APIs or behavior.

Tests

  • Added unit coverage for feature override defaults.

Validation

go test ./internal/devserver ./internal/temporalcli \
  -run 'Test(StartDevServerFeatureOverridesMatchServerDefaults|DynamicConfigOverridesMatchServerDefaults)$' \\\n  -count=1\n```

Standalone activities (activity.enableStandalone) now default to enabled
in the pinned server version, so the explicit override in SharedServerSuite
was a no-op; several other overrides had also become redundant. Remove
them and add a regression test that starts a bare dev server and confirms
standalone activities still work without any override.

Also move the remaining overrides into a const list annotated with
whether each one is test-only tuning or a feature flag forced on ahead
of its server default, so future server bumps that flip a default are
easy to catch and clean up.

Fixes temporalio#1083
…verrides

Fold the hardcoded overrides that StartDevServer applies to every dev
server into the same dynamicConfigOverride/TestOnly scheme used by
SharedServerSuite, and prune the ones now redundant with server
defaults (frontend.workerVersioningWorkflowAPIs,
system.enableDeploymentVersions, frontend.enableUpdateWorkflowExecution).

Also fix StartDevServer unconditionally overwriting caller-supplied
dynamic config values with its own defaults, which was silently
shadowing SharedServerSuite's frontend.namespaceRPS.visibility override
(10000) with its own lower value (100). It now only fills in keys the
caller hasn't already set.
dynamicconfig.EnableChasm and activity.Enabled (SAA) are on by default
as of server v1.32, matching the pinned go.temporal.io/server version,
so the overrides forcing them on in devserver.Server (the
'temporal server start-dev' code path) were already no-ops. Remove
them and update the stale comment.

Also switch the test dynamic config override lists from raw string
keys to the actual exported dynamicconfig.GenericSetting values from
go.temporal.io/server (e.g. dynamicconfig.EnableSignalWithStartFromWorkflow,
serveractivity.StartDelayEnabled, servernexusoperation.Enabled), so a
key that gets renamed or removed upstream is a compile error instead
of a silently no-op override.
TestDynamicConfigOverridesMatchServerDefaults reads each non-test-only
override's real default straight from go.temporal.io/server via
dynamicconfig.NewNoopCollection(), with no dev server needed. It fails
the moment a server bump changes the assumption an override relies on:
either a false-by-default flag we force to true now defaulting true
(the override became a no-op and should be removed), or a flag we
stopped forcing on because it defaults to true (dynamicconfig.EnableChasm,
serveractivity.Enabled) reverting to false (the override needs to come
back, in both the test lists and internal/devserver/server.go).

This closes the gap on activity.EnableStandaloneActivityOperatorCommands
and FrontendEnableBatchOperationsForStandaloneActivities, which had no
guard at all before this.
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.

1 participant