Skip to content

Integrate installation into Dashboard Add Server dialog (#755 Phase 2)#763

Merged
erikdarlingdata merged 1 commit intodevfrom
feature/755-dashboard-install
Mar 30, 2026
Merged

Integrate installation into Dashboard Add Server dialog (#755 Phase 2)#763
erikdarlingdata merged 1 commit intodevfrom
feature/755-dashboard-install

Conversation

@erikdarlingdata
Copy link
Copy Markdown
Owner

Summary

  • Add Server dialog now detects PerformanceMonitor database state after Test Connection
  • Offers Install Now (no DB) or Upgrade (old version) inline with progress bar and log
  • Credential separation: post-install prompt for lower-privilege monitoring credentials
  • Advanced options: clean install, reset schedule, validation, community dependencies
  • Uses ScriptProvider.FromEmbeddedResources() — SQL scripts embedded in Installer.Core assembly

Phase 2 of #755. Phase 3 (retire InstallerGui) will follow.

Test plan

  • Clean install via Dashboard on SQL2016 (no existing DB) — 54/54 scripts
  • "Up to date" detection on servers with current version
  • Save & Connect button sizing fixed
  • Thread safety: all UI updates via Dispatcher.Invoke
  • Connection test targets master (works when DB doesn't exist)
  • Upgrade path testing deferred to release testing

🤖 Generated with Claude Code

…Phase 2)

Add Server dialog now detects the PerformanceMonitor database state after
Test Connection and offers Install Now / Upgrade options inline.

New features:
- Database status detection: no DB → Install Now, old version → Upgrade,
  current version → "up to date"
- Full installation with progress bar, scrolling log, and cancel button
- Advanced options (collapsed): clean install, reset schedule, validation,
  community dependencies
- Credential separation: post-install prompt for lower-privilege monitoring
  credentials (SQL auth only)
- Installation report generation with View Report button
- "Skip, just add server" link to bypass installation
- Edit mode skips all installation detection (existing behavior preserved)

Technical:
- Dashboard references Installer.Core, uses ScriptProvider.FromEmbeddedResources()
  (SQL scripts embedded in assembly — no filesystem dependency)
- State machine (DialogState enum) drives panel visibility
- All UI updates wrapped in Dispatcher.Invoke for thread safety
- Connection test targets master (not PerformanceMonitor) so it succeeds
  when the database doesn't exist yet
- Save button uses MinWidth+Padding to fit "Save & Connect" text

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@erikdarlingdata erikdarlingdata merged commit 5b5e049 into dev Mar 30, 2026
@erikdarlingdata erikdarlingdata deleted the feature/755-dashboard-install branch March 30, 2026 16:45
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