Repository navigation
Check the SCOrch transport in both switch directions - #785
Merged
Merged
Conversation
- Setup health probe and first login pin the configured server certificate per request and reject redirects, instead of switching off certificate validation for the whole process (D01). - A failed reinstall that changes the service account restores the install root DACL before the old binaries come back (#735). - Uninstall stops when the service cannot be deleted, keeps the marker and deploy\ until everything else is gone, and the Inno uninstaller aborts on a failed cleanup so it can be repeated (#714, server part). - PurgeData takes ownership with takeown /A item by item, so it works on German Windows, and deletes nothing when a native step fails (#731). - The gMSA repair command reads the existing retrieval principals and adds this host; the deploy README drops the blanket RBCD recipe (#713). Closes #713 Closes #731 Closes #735 Refs #714 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Update-Desktop.ps1 passes the custom data path and service names to re-provisioning instead of letting it fall back to defaults (#709). - The staged update snapshots both service registrations and the component ACLs; the rollback registers the services again before the database restore and fails explicitly when one is missing (#710). - Setup identifies the account that started it (ExecAsOriginalUser) and passes its SID as -HandoffUserSid; the provisioner no longer falls back to the console user or its own profile (#732). - The desktop uninstaller aborts on a failed or missing cleanup, so the uninstall can be repeated (#714, desktop part). Closes #709 Closes #710 Closes #714 Closes #732 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Switching to NodePilot also stops SCOrch jobs, but the preflight only validated the NodePilot side, so a remote http:// SCOrch URL was used with Windows credentials. The preflight now validates SCOrch for both targets, and the ScorchApiClient constructor enforces the same loopback-or-HTTPS rule. Closes #728 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
| public async Task Preflight_RejectsRemoteHttpScorchSourceOrDestination(bool toNodePilot) | ||
| { | ||
| var target = toNodePilot ? SwitchTarget.NodePilot : SwitchTarget.SystemCenterOrchestrator; | ||
| File.WriteAllText(Path.Combine(_directory, "np.exe"), string.Empty); |
| { | ||
| var target = toNodePilot ? SwitchTarget.NodePilot : SwitchTarget.SystemCenterOrchestrator; | ||
| File.WriteAllText(Path.Combine(_directory, "np.exe"), string.Empty); | ||
| var config = Path.Combine(_directory, "custom.json"); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Third of three setup/switcher PRs from the 2026-10-28 audit. Stacked on #783 and #784; the change of its own is the last commit.
What changes
Switching to NodePilot also calls SCOrch, to stop its running jobs, but the preflight only validated the NodePilot side. A remote
http://SCOrch URL was therefore accepted in that direction and used with Windows credentials, while the other direction rejected it.SwitcherConfigurationValidator.RequireScorchTransport, and theScorchApiClientconstructor enforces it as well, so no other caller can bypass it.docs/switcher.mdalready states the rule; the code now matches it in both directions.Testing
dotnet test tests/NodePilot.Switcher.Tests: 175 of 175 pass. They include the new preflight case for both directions, which must fail before a SCOrch client is created, and the constructor cases (remote HTTP and non-HTTP schemes rejected; loopback HTTP and HTTPS accepted).http://localhost:81, which stays allowed. No live preflight was run against SCOrch.Closes #728
🤖 Generated with Claude Code