Commit Graph
4 Commits
Author SHA1 Message Date
spencermandClaude Opus 5.5 b7c22e1988 scripts: vsql certificate script recovery paths from the second review
ci / frontend (push) Successful in 41s
ci / server (push) Successful in 11m2s
ci / image (push) Successful in 57s
ci / e2e (push) Failing after 4m25s
- A rollback record now says which restarts succeeded. A snapshot stays open
  while an instance is unrestored or its restart failed (or was declined), so
  -Rollback -RestartInstances retries exactly those instead of reporting done
  or stepping back to an older deployment.
- Running dependents (SQL Server Agent) are written to dependents-<service>.json
  before the stop and removed once they run again, so a failed restart does not
  leave Agent stopped for good.
- GetRegValue returns $null only for a value confirmed absent; a missing key or
  read error throws, so it is never snapshotted or verified as absent.
- Instances come from the value names of Instance Names\SQL; the 'PS*' filter
  dropped names such as PSREPORTING.

Tests for each, including the real registry operations on an HKCU test key.
Pester green on PowerShell 7.6 (63) and Windows PowerShell 5.1 (62, 1 skipped).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 21:50:34 -06:00
spencermandClaude Opus 5.5 90adcebc44 scripts: vsql certificate script fixes the six review findings, with a Pester suite on PowerShell 5.1 and 7
ci / frontend (push) Successful in 43s
ci / server (push) Successful in 11m3s
ci / image (push) Successful in 12s
ci / e2e (push) Failing after 4m2s
- Admin check uses -not (IsAdmin); the old call passed -eq $false as arguments.
- Named instances: WQL filter Name='MSSQL$DEV' unescaped, lookup errors surface.
- SANs decoded from the raw extension (DER walk) and matched as whole names.
- Immutable deploy-, request- and rollback- records; already-bound instances
  get no snapshot; -Rollback takes the newest snapshot not yet rolled back,
  -Snapshot picks one.
- certreq -new, -submit, -accept and the key grants go through ShouldProcess;
  a declined or failed prerequisite binds nothing.
- Rollback and automatic restore work per instance, read back, report failures.

Also found while testing: PowerShell 7 returns RSACng for a CSP key, so the
provider check now reads CERT_KEY_PROV_INFO; ForEach-Object member form returned
nothing under -WhatIf; stderr capture under Stop threw on 5.1; LocalSystem and
NetworkService accounts go to icacls as SIDs; SQL Agent is started again after
a restart; signature checked by OID.

DEPLOY.md gains the run procedure: preflight, DEV, docker-1 checks, production, rollback.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 21:41:03 -06:00
spencermandClaude Fable 5.1 850e1da3a9 scripts: vsql certificate request uses the legacy SChannel CSP with an exchange key, validates before binding, scopes key access, saves bindings for rollback, resumes pending requests
ci / frontend (push) Successful in 42s
ci / server (push) Successful in 11m30s
ci / image (push) Successful in 13s
ci / e2e (push) Failing after 9s
Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-10-18 21:19:39 -06:00
spencermandClaude Fable 5.1 fdfb8ae40f scripts: Request-VsqlServerCertificate.ps1 requests and installs a SQL Server TLS certificate from PESCO-PSYLOCKE-CA
ci / frontend (push) Successful in 42s
ci / server (push) Successful in 11m13s
ci / image (push) Successful in 13s
ci / e2e (push) Failing after 3m50s
Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-10-18 21:15:49 -06:00