Skip to content

[Enhancement]: Advanced — Profile Export/Import (share configs across machines) #341

Description

@laurentiu021

Problem

Users with multiple PCs want to replicate their SysManager configuration. There is no way to export/import settings.

Proposed solution

  • Export entire SysManager configuration as JSON file
  • Import on another PC with one click
  • Share profiles with community (optional)
  • Version tracking (detect incompatible config versions)
  • Selective import (choose which sections to apply)

Affected tab

Advanced (new group)

Activity

  1. laurentiu021 commented on Jun 24, 2026

    @laurentiu021
    OwnerAuthor

    Shipped in v1.28.0 as a working Profile Export/Import tab (Advanced group).

    What it does

    • Export SysManager's own configuration — theme/appearance and speed-test history — to a single portable JSON file. Tick which sections to include.
    • Import on another PC: the dialog shows what the profile contains and when/by-which-version it was made, then applies it after confirmation (selective per-section).
    • Version tracking — a profile from a newer, incompatible build is refused with a clear "update SysManager" message rather than silently mis-applied.
    • Only SysManager's own config is touched (never system settings), so an import is fully reversible — just import a different profile.

    How it's built

    • ProfileService bundles a hard-coded catalog of config files into a versioned ConfigProfile and applies it back. Crucially, ApplySections writes only catalog-known sections using the catalog's own file names, so a tampered profile claiming a rogue key or a ..\evil.json path cannot drop files outside the config directory (covered by a negative test).
    • ProfileViewModel + ProfileView follow the existing async + DialogService confirmation + file-dialog conventions.

    Verification

    • 8 unit tests including the path-injection guard, schema-version gate, and a full export→import file round-trip.

    Install: winget upgrade laurentiu021.SysManager or the portable .exe from the v1.28.0 release.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions