Skip to content

Commit 291deb4

Browse files
committed
Add project files.
1 parent fa1f6e8 commit 291deb4

71 files changed

Lines changed: 49358 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.md

Lines changed: 289 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,289 @@
1+
# 🔄 Changelog
2+
3+
## Version 2.0 (Latest) - Multi-Server UI & Interactive Filtering! 🖥️
4+
**Major UI Enhancements:**
5+
- **Multi-Server Connection Dialog** - Enter multiple servers (one per line), test all at once
6+
- **Parallel Execution Checkbox** - Choose parallel or sequential execution
7+
- **Server Column in Results** - See which server each check result came from
8+
- **Clickable Statistics Cards** - Click PASSED/CRITICAL/WARNING/INFO to filter results
9+
- **Server Filter Panel** - New left sidebar section listing all servers with health indicators
10+
- **INSTANCES Card** - New statistics card showing count of SQL instances checked
11+
12+
**Configuration Persistence:**
13+
- **AppConfig.cs** - Singleton configuration manager
14+
- **SqlHealthMonitor.config** - JSON config file in app directory
15+
- **Auto-Save** - Server list saved when changed via Connect dialog
16+
- **Auto-Load** - Server list loaded on app startup
17+
- **File Watching** - Detects external config file edits and reloads automatically
18+
19+
**Interactive Filtering:**
20+
- Click any statistics card to filter results by that status
21+
- Cards highlight when filter is active (green/red/orange/blue)
22+
- Server list shows color indicators (🟢 green = healthy, 🔴 red = has failures)
23+
- Filters combine: Status + Server + Category + Search text
24+
- Click TOTAL CHECKS to clear status filter
25+
- Click INSTANCES to clear server filter
26+
27+
**New Files:**
28+
- `SqlMonitorUI/AppConfig.cs` - Configuration manager with file watching
29+
30+
**Modified Files:**
31+
- `ConnectionDialog.xaml/.cs` - Multi-line server input, parallel checkbox, test all
32+
- `MainWindow.xaml` - Clickable cards, server panel, instances card, server column
33+
- `MainWindow.xaml.cs` - Filter handlers, config integration, server list population
34+
35+
**See IMPLEMENTATION-V20-MULTISERVER-UI.md for complete details!**
36+
37+
## Version 1.9 - Enterprise Multi-Server + MVVM Architecture! 🏢
38+
**Major Enterprise Features:**
39+
- **Multi-Server Support** - Run checks across multiple SQL servers in parallel using Task.WhenAll()
40+
- **Connection Dialog** - Enterprise-grade connection management with Windows Auth/SQL Auth
41+
- **Script Manager** - Configure and manage embedded diagnostic scripts (sp_Blitz, sp_triage)
42+
- **Bulk Edit Dialog** - Edit multiple checks at once (Category, Severity, Priority, etc.)
43+
- **Complete Health Check Runner** - Execute all scripts and export results to CSV
44+
- **Memory Monitoring** - Background timer monitors memory pressure and triggers cleanup
45+
- **Progress Window** - Visual progress tracking for long-running operations
46+
47+
**Security Improvements:**
48+
- **Windows Authentication (Recommended)** - Uses Integrated Security=SSPI
49+
- **SQL Server Authentication** - For environments without AD
50+
- **Connection String Builder** - Enterprise patterns for secure connection building
51+
- **Security Validation** - Warns about insecure connection settings
52+
- **Password Protection** - Passwords not stored, re-entered each session
53+
54+
**Architecture Improvements:**
55+
- **CommunityToolkit.Mvvm** - Added for enterprise MVVM patterns
56+
- **Server GC Configuration** - Better memory management for enterprise scenarios
57+
- **Proper IDisposable** - All resources properly disposed with using statements
58+
- **Parallel Processing** - Task.WhenAll() for multi-server operations
59+
- **Connection Throttling** - SemaphoreSlim limits concurrent connections
60+
61+
**New UI Components:**
62+
- ConnectionDialog - Configure server, auth type, encryption options
63+
- BulkEditDialog - Bulk edit Category, Severity, Priority, Enabled, ExecutionType
64+
- ScriptManagerWindow - Manage sp_Blitz, sp_triage, custom scripts
65+
- ProgressWindow - Visual progress for health checks
66+
67+
**New Services:**
68+
- ConnectionStringBuilder - Enterprise connection string patterns
69+
- CompleteHealthCheckRunner - Script execution with CSV export
70+
- Multi-server models (ServerConnection, MultiServerCheckResults, etc.)
71+
72+
**See IMPLEMENTATION-V19-ENTERPRISE.md for complete details!**
73+
74+
## Version 1.8 - Enterprise Resource Management + Enhanced Fields! 🏢
75+
**Enterprise-Grade Features:**
76+
- **15+ New SqlCheck Fields** - Priority, Weight, Impact scores, detailed states
77+
- **@ Placeholder System** - Intelligent replacement: "@ databases" → "3 databases"
78+
- **Resource Manager** - Memory optimization, GC tuning, pressure monitoring
79+
- **Enterprise CheckRunner** - Connection pooling, throttling, proper disposal
80+
- **Placeholder Service** - Smart pluralization, creative messages, recommendations
81+
82+
**New SqlCheck Fields:**
83+
- Priority (1-5), SeverityScore (1-5), Weight (decimal)
84+
- ExecutionType, RowCountCondition, ResultInterpretation
85+
- CheckTriggered & CheckCleared (with @ placeholders)
86+
- DetailedRemediation, SupportType, ImpactScore
87+
- ExpectedState, AdditionalNotes
88+
89+
**Resource Management:**
90+
- Automatic garbage collection optimization
91+
- Memory pressure monitoring
92+
- Safe disposal patterns
93+
- Connection throttling (max 10 concurrent)
94+
- Batch processing with periodic cleanup
95+
96+
**Placeholder Magic:**
97+
- "@ databases have no backups" + count=3 → "3 databases have no backups"
98+
- "@ server(s)" + count=1 → "1 server" (smart pluralization!)
99+
- "@ server(s)" + count=10 → "10 servers"
100+
- Creative messages with emoji based on severity
101+
102+
**Memory Management:**
103+
- Server GC configuration support
104+
- Large object heap compaction
105+
- Memory statistics tracking
106+
- Automatic cleanup every 20 checks
107+
- DisposableScope for safe resource handling
108+
109+
**Enterprise Standards Applied:**
110+
- Zero Trust security model
111+
- Proper disposal patterns (IDisposable)
112+
- Connection pooling
113+
- Async/await throughout
114+
- DRY principle
115+
- Comprehensive error handling
116+
117+
**New Services:**
118+
- ResourceManager.cs - Memory and GC optimization
119+
- PlaceholderService.cs - Intelligent @ replacement
120+
- CheckRunner.Enterprise.cs - Production-grade executor
121+
122+
**See IMPLEMENTATION-V18-ENTERPRISE.md for complete details!**
123+
124+
## Version 1.7 - Query Testing + Bulk Operations!
125+
**Implemented Features:**
126+
- Live Query Testing with results grid
127+
- View Execution Code functionality
128+
- Execution Type field (Binary/RowCount)
129+
- Pass/Fail indicators
130+
- Code Viewer window
131+
132+
**Features Ready to Implement:**
133+
- Bulk Edit Dialog (code provided)
134+
- Script Manager (code provided)
135+
- Complete Health Check runner (code provided)
136+
- CSV export with timestamps (code provided)
137+
138+
**New Models:**
139+
- ScriptConfiguration - For managing embedded diagnostic scripts
140+
- ExecutionType property added to SqlCheck (Binary/RowCount)
141+
142+
**New Windows:**
143+
- Enhanced SqlQueryEditorWindow with test panel and results grid
144+
- CodeViewerWindow for viewing execution SQL
145+
- BulkEditDialog (code provided in implementation guide)
146+
- ScriptManagerWindow (code provided in implementation guide)
147+
- ProgressWindow for health check execution
148+
149+
**Services:**
150+
- CompleteHealthCheckRunner - Runs scripts and exports CSV (code provided)
151+
- Enhanced query execution with DataTable support
152+
- CSV export with proper escaping
153+
154+
**See IMPLEMENTATION-GUIDE-V17.md for complete implementation details!**
155+
156+
## Version 1.6 - Check Manager + Real SQL Queries!
157+
**Major Features:**
158+
- **Check Manager UI** - Full visual editor for all health checks
159+
- **Real SQL Extraction** - No more placeholders! Extracts actual queries
160+
- **Import Dialog** - Select which scripts to import individually
161+
- **Source Filtering** - Filter checks by source with radio buttons
162+
- **Visual SQL Editor** - Edit queries with dedicated editor window
163+
- **Export to JSON** - Export filtered or all checks
164+
165+
**Check Manager Features:**
166+
- View all checks in editable data grid
167+
- Filter by source with radio buttons (All, sp_Blitz, sp_triage, Custom)
168+
- Add/Edit/Delete checks visually
169+
- Edit SQL queries in dedicated editor window
170+
- Enable/disable checks with checkboxes
171+
- Export configurations to JSON
172+
- Import/merge from multiple scripts at once
173+
174+
**Import Improvements:**
175+
- Select sp_Blitz and/or sp_triage independently
176+
- Browse for each script separately
177+
- Preview what will be imported
178+
- Merge intelligently with existing checks
179+
- Extract actual SQL queries instead of placeholders
180+
181+
**SQL Query Improvements:**
182+
- Extracts real queries from sp_Blitz script
183+
- Wraps multi-row results in EXISTS for 0/1 output
184+
- Hand-crafted queries for common checks
185+
- Row count handling for complex queries
186+
- Better query formatting and readability
187+
188+
**Added Files:**
189+
- CheckManagerWindow.xaml/cs - Main check management UI
190+
- ImportChecksDialog.xaml/cs - Multi-script import dialog
191+
- SqlQueryEditorWindow.xaml/cs - Query editor
192+
- AdvancedCheckParser.cs - Improved SQL extraction
193+
194+
## Version 1.5 - Enterprise Security + Windows Server 2016+ Support!
195+
**Major Features:**
196+
- **Windows Server 2016+ Compatibility** - Multi-targeting for .NET Framework 4.8 and .NET 8
197+
- **Auto-Upgrading Security** - Encryption automatically uses latest standards when rebuilt
198+
- **Enterprise Security Service** - Connection string encryption, validation, secure storage
199+
- **Multi-Target Builds** - One codebase, works on Server 2016 through 2025+
200+
201+
**Security Features:**
202+
- Connection string encryption using Windows DPAPI
203+
- SHA-256 (net48) / SHA-512 (net8.0) hashing
204+
- Automatic security upgrades when rebuilt on newer frameworks
205+
- Connection string validation with security warnings
206+
- Secure storage for saved connections
207+
- TLS/SSL support for SQL connections
208+
209+
**Compatibility:**
210+
- net48 target for Windows Server 2016/2019
211+
- net8.0 target for Windows Server 2022/2025
212+
- Works on Windows 10/11 desktop
213+
- Self-contained deployment option
214+
- No code changes needed for security upgrades
215+
216+
**Added:**
217+
- SecurityService class with encryption, hashing, validation
218+
- SecureConnectionStorage for encrypted connection persistence
219+
- DEPLOYMENT-GUIDE.md with full compatibility documentation
220+
- Framework-specific security implementations
221+
- Package auto-upgrade with wildcard versions (5.*)
222+
223+
## Version 1.4 - sp_triage Support + Source Tracking!
224+
**New Features:**
225+
- **sp_triage Support!** Import checks from sp_triage.sql (35+ check categories)
226+
- **Source Tracking** - Each check now shows its source (sp_Blitz, sp_triage, or Custom)
227+
- **Source Column** in results grid shows where each check came from
228+
- **Auto-Detection** - Automatically detects which script you're importing
229+
- **Unified Import Button** - "Import Checks" button handles both scripts
230+
231+
**Added:**
232+
- sp_triage parser extracts 35+ output table categories as checks
233+
- Source field in SqlCheck model
234+
- Source column in UI data grid
235+
- Smart script detection from filename
236+
- Support for multiple check sources in one app
237+
238+
**Improved:**
239+
- Import dialog now shows source being imported
240+
- Results clearly indicate which script a check came from
241+
- Better organization when mixing checks from different sources
242+
243+
## Version 1.3 - sp_Blitz Import Feature!
244+
**New Feature:** Import ALL 210+ sp_Blitz Checks Automatically
245+
- Added "📥 Import sp_Blitz" button to UI
246+
- Automatically parses sp_Blitz.sql and extracts ALL 210+ checks
247+
- Improved parser catches all CheckIDs (1-2301)
248+
- Smart merging preserves your custom settings
249+
- ~34 checks have working queries immediately
250+
- ~176 are placeholders you can implement
251+
- See IMPORT-SP-BLITZ-GUIDE.md for full documentation
252+
253+
**Added:**
254+
- SpBlitzParser.cs service for parsing sp_Blitz.sql
255+
- File dialog to select sp_Blitz.sql
256+
- Import confirmation with summary
257+
- Automatic merging with existing checks
258+
- Priority-to-severity mapping (1-50=Critical, 51-100=Warning, 101+=Info)
259+
260+
## Version 1.2
261+
**Fixed:** XAML Parse Exception with DropShadowEffect
262+
- Removed DropShadowEffect from CardStyle (App.xaml)
263+
- Removed DropShadowEffect from Header border (MainWindow.xaml)
264+
- UI will now work on all Windows systems without graphics errors
265+
266+
## Version 1.1
267+
**Fixed:** NuGet Package Restore Issue
268+
- Added nuget.config to ensure NuGet.org is used
269+
- Added FIX-NUGET.md guide for package issues
270+
271+
## Version 1.0
272+
**Initial Release**
273+
- WPF Dashboard UI with SolarWinds-style interface
274+
- Console application for automation
275+
- 12 pre-built SQL Server health checks
276+
- JSON-based check configuration
277+
- Complete documentation
278+
279+
---
280+
281+
## Known Issues
282+
None currently! 🎉
283+
284+
## If You Experience Any Issues
285+
286+
1. Check TROUBLESHOOTING.md
287+
2. Check FIX-NUGET.md for package issues
288+
3. Check IMPORT-SP-BLITZ-GUIDE.md for import issues
289+
4. Try running from command line: `dotnet run --project SqlMonitorUI`

0 commit comments

Comments
 (0)