Add web-based service controls for restart and shutdown#41
Merged
Conversation
Adds POST /api/service/restart and POST /api/service/stop endpoints wired into the process lifecycle. Restart exits with code 1 so service managers configured for restart-on-failure (Windows Service recovery, NSSM, systemd) will restart automatically; stop exits cleanly with code 0. Dashboard gains Restart/Stop buttons with JS confirmation dialogs, a network-reachability warning when bound to 0.0.0.0, and a plain-language note that stopping disables N.I.N.A./Alpaca safety integration. GET requests to these paths fall through to the Dashboard catch-all and never trigger service actions. Closes #20
gosec requires #nosec G104 annotations; //nolint:errcheck alone does not suppress the gosec scanner. Assign encoder and svc.Stop return values to _ and add the required suppression directive with a rationale comment.
|
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
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.
Summary
POST /api/service/restartandPOST /api/service/stopendpoints wired into the process lifecycle.AppExitpolicy, systemdRestart=on-failure) restart the process automatically; stop exits cleanly with code 0 and stays stopped.GETrequests to the control paths fall through to the Dashboard catch-all and never trigger service actions — no plain link can accidentally trigger a stop or restart.Validation
go test ./internal/webgo test ./...go vet ./...Closes #20