Relationships
#2458 datastore config migrate skips setting managedConfig when the datastore is already migrated
Opened by stack72 · 9/23/2026· Shipped 9/28/2026
Problem
swamp datastore config migrate says it "Sets managedConfig: true in
.swamp.yaml if not already". It does not do that when the datastore was already
migrated by another repo.
src/cli/commands/datastore_config_migrate.ts returns as soon as
result.alreadyMigrated is true (the sentinel exists), before the
managedConfigSet block. So a second repo joining a shared datastore keeps
running without managedConfig, and nothing says so: the command logs only
"Config migration already completed".
Reproduction
- Two fresh repos, A and B, on the same S3-compatible bucket and namespace
(
swamp datastore setup extension @swamp/s3-datastore ... --namespace e2e). swamp datastore config migratein A: logs "Migrated ... into datastore config tier", and A's.swamp.yamlgainsmanagedConfig: true.swamp datastore config migratein B: logs "Config migration already completed (sentinel exists)", and B's.swamp.yamlhas nomanagedConfig.
Seen while testing swamp-club#2446 against MinIO, on main at edd0e85e plus the 2446 branch (neither change touches this file).
Impact
The documented pod boot sequence (design/enablers/datastores.md, Managed Config
Deployment Architecture) copies in a .swamp.yaml that already has
managedConfig: true, so it does not hit this. An operator who adds a second
instance by running config migrate in a new repo, as the help text suggests,
gets a repo that reads definitions from local directories instead of the
datastore config tier.
Expected
When the sentinel exists and the marker lacks managedConfig, set it (and log
"Set managedConfig: true in .swamp.yaml") before returning. The copy step stays
skipped.
Shipped
Click a lifecycle step above to view its details.
Sign in to post a ripple.