Skip to content

upgrade safety version 2 #174

@abishekve

Description

@abishekve

Milestone 2: Initial Automation (v1.1)

  • Implement automatic backup of configuration and monitoring data before every upgrade.
  • Add in-app notifications for available updates, with direct download links.
  • Develop automatic rollback/restore mechanism triggered by post-upgrade health check failures.
  • Enhance logging to capture all upgrade/rollback actions, backup locations, and errors.

Milestone 3: Enhanced Admin Experience (v1.2)

  • Add "Update Now" and scheduled update options in the admin dashboard.
  • Automate post-upgrade health checks (service status, probe liveness, config validity) and revert if checks fail.
  • Implement backup retention management and UI for backup control.
  • Display live status, progress, and error tracking for upgrades/rollbacks in the dashboard.

Milestone 4: Centralized & Scalable (v1.3)

  • Build a centralized update console for multi-site/staged rollouts.
  • Enable pause, resume, and rollback by group/site; support incremental deployment.

Milestone 5: Full Autonomy (v2.0+)

  • Enable automated silent updates with admin approval.
  • Implement rolling upgrades for zero downtime.
  • Add auto-diagnostics and self-healing for upgrade failures.
  • Integrate detailed audit, reporting, and 3rd-party patch management.

Acceptance Criteria

  • Zero user data/config loss after upgrade failure.
  • Upgrades require minimal downtime and manual interaction.
  • Upgrade and rollback outcomes fully logged and auditable.
  • Simple self-service for backup, restore, and upgrade status.

Reference Files to Touch

  • Backend:
    • ThingConnect.Pulse.Server/Controllers/ConfigurationController.cs (config apply, versioning, validation)
    • ThingConnect.Pulse.Server/Services/ConfigurationService.cs (config management, backup utilities)
    • ThingConnect.Pulse.Server/Services/ConfigurationParser.cs (YAML parsing, schema validation)
  • Frontend:
    • thingconnect.pulse.client/src/pages/Configuration.tsx (config UI, version history)
    • thingconnect.pulse.client/src/components/config/ConfigurationEditor.tsx (editor, validation)
    • thingconnect.pulse.client/src/components/config/ConfigurationVersions.tsx (version management)
    • thingconnect.pulse.client/src/api/services/configuration.service.ts (API calls for config/versioning)
  • Installer/Ops:
    • Installer scripts (Inno Setup)
    • PowerShell recovery scripts for rollback
    • Documentation: updates.md, release notes

Risks & Mitigations

  • Risk: Data/config loss during upgrade or rollback.
    • Mitigation: Automated backups, transactional migrations, and documented restore procedures.
  • Risk: Service downtime during upgrade.
    • Mitigation: Rolling upgrades, health checks, and scheduled updates.
  • Risk: Operator error in manual steps.
    • Mitigation: Improved documentation, in-app guidance, and automation.

Testing Plan

  • Automated tests for upgrade/rollback scenarios, data/config integrity, and service lifecycle.
  • Manual verification of backup, restore, and upgrade flows on representative environments.
  • CI/CD gates for upgrade safety checks before release.

Success Criteria:

  • No data or config loss after upgrade failure.
  • Minimal downtime and manual steps.
  • All upgrade/rollback actions are logged and auditable.
  • Easy self-service for backup, restore, and upgrade status.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions