Skip to content

✨ Configuration Migration Plan & Backward Compatibility #1484

@zacharykeeping

Description

@zacharykeeping

Hi Team,

Pain

We're introducing new tenant configuration structure that could break existing SSW production deployments. We need to ensure zero-downtime migration and backward compatibility with current appsettings.

Suggested Solution

Implement fallback logic to use legacy configuration values when new TenantSettings are not specified. Create a migration plan and rollback strategy for each environment.

Implementation:

  • Add default SSW values to TenantSettings
  • Implement fallback to legacy config structure
  • Create migration checklist for each environment
  • Document rollback procedure
  • Test against current production config

Tasks

  • Add default SSW values to TenantSettings class
  • Implement fallback logic in TenantService (use legacy config if TenantSettings missing)
  • Create configuration migration documentation with step-by-step guide
  • Create environment-specific migration checklists (Dev, Staging, Prod)
  • Test current production appsettings.json compatibility
  • Document any breaking changes (should be zero)
  • Create rollback procedure documentation
  • Verify zero-downtime deployment possible
  • Create Azure DevOps pipeline updates (if needed)

Acceptance Criteria

  • Meets Definition of Done - https://github.com/SSWConsulting/SSW.Rewards.Mobile/blob/main/_docs/Definition-of-Done.md
  • SSW defaults are applied when no TenantSettings specified
  • Existing appsettings values are respected (backward compatible)
  • Migration path documented for each environment
  • Rollback plan documented and tested
  • Zero downtime migration confirmed possible
  • No breaking changes to existing deployments
  • Production configuration tested and verified

More Information

Files to Create:

  • _docs/Configuration-Migration.md

Files to Modify:

  • src/Application/Common/Models/TenantSettings.cs (add defaults)
  • src/Infrastructure/Services/TenantService.cs (add fallback logic)

Critical: This must NOT break existing SSW production deployments

Dependencies: First 2 PBIs must be completed first

Epic: #1483

Thanks!

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions