From 067e5fb33ffe23b76c78621fbc16c53d51573bcb Mon Sep 17 00:00:00 2001 From: Juan Fernandez Date: Fri, 13 Mar 2026 14:00:26 -0400 Subject: [PATCH] Made Host Results endpoint URL consistent (33714) (#41501) Resolves #33714 Added alias `GET /api/v1/fleet/scripts/batch/abc-def/host_results` for `GET /api/v1/fleet/scripts/batch/abc-def/host-results` for consistency sake. --- ...4-inconsistent-use-of-hyphen-scripts-host-results-endpoint | 1 + docs/REST API/rest-api.md | 2 +- frontend/utilities/endpoints.ts | 2 +- server/service/handler.go | 3 ++- server/service/integration_enterprise_test.go | 4 ++-- 5 files changed, 7 insertions(+), 5 deletions(-) create mode 100644 changes/33714-inconsistent-use-of-hyphen-scripts-host-results-endpoint diff --git a/changes/33714-inconsistent-use-of-hyphen-scripts-host-results-endpoint b/changes/33714-inconsistent-use-of-hyphen-scripts-host-results-endpoint new file mode 100644 index 0000000000..13b03b8bdb --- /dev/null +++ b/changes/33714-inconsistent-use-of-hyphen-scripts-host-results-endpoint @@ -0,0 +1 @@ +* Made the host results endpoint URL consistent with the other URLs. \ No newline at end of file diff --git a/docs/REST API/rest-api.md b/docs/REST API/rest-api.md index 54964bc5d4..958d8b9e7c 100644 --- a/docs/REST API/rest-api.md +++ b/docs/REST API/rest-api.md @@ -9508,7 +9508,7 @@ Returns a summary of a batch-run script, including host counts and current statu Returns a list hosts targeted in a batch script run, along with their script execution status. -`GET /api/v1/fleet/scripts/batch/:batch_execution_id/host-results` +`GET /api/v1/fleet/scripts/batch/:batch_execution_id/host_results` #### Parameters diff --git a/frontend/utilities/endpoints.ts b/frontend/utilities/endpoints.ts index 87ec2db3f3..8e7b506580 100644 --- a/frontend/utilities/endpoints.ts +++ b/frontend/utilities/endpoints.ts @@ -302,7 +302,7 @@ export default { `/${API_VERSION}/fleet/scripts/batch/${id}`, SCRIPT_RUN_BATCH_SUMMARIES: `/${API_VERSION}/fleet/scripts/batch`, SCRIPT_BATCH_HOST_RESULTS: (id: string) => - `/${API_VERSION}/fleet/scripts/batch/${id}/host-results`, + `/${API_VERSION}/fleet/scripts/batch/${id}/host_results`, // Command endpoints COMMANDS: `/${API_VERSION}/fleet/commands`, diff --git a/server/service/handler.go b/server/service/handler.go index 747cdd4e35..35e370e643 100644 --- a/server/service/handler.go +++ b/server/service/handler.go @@ -551,7 +551,8 @@ func attachFleetAPIRoutes(r *mux.Router, svc fleet.Service, config config.FleetC ue.POST("/api/_version_/fleet/scripts/batch/{batch_execution_id:[a-zA-Z0-9-]+}/cancel", batchScriptCancelEndpoint, batchScriptCancelRequest{}) // Deprecated, will remove in favor of batchScriptExecutionStatusEndpoint when batch script details page is ready. ue.GET("/api/_version_/fleet/scripts/batch/summary/{batch_execution_id:[a-zA-Z0-9-]+}", batchScriptExecutionSummaryEndpoint, batchScriptExecutionSummaryRequest{}) - ue.GET("/api/_version_/fleet/scripts/batch/{batch_execution_id:[a-zA-Z0-9-]+}/host-results", batchScriptExecutionHostResultsEndpoint, batchScriptExecutionHostResultsRequest{}) + ue.WithAltPaths("/api/_version_/fleet/scripts/batch/{batch_execution_id:[a-zA-Z0-9-]+}/host-results"). // .../host-results is DEPRECATED but we need to maintain for backwards compatibility because customers may already be using it + GET("/api/_version_/fleet/scripts/batch/{batch_execution_id:[a-zA-Z0-9-]+}/host_results", batchScriptExecutionHostResultsEndpoint, batchScriptExecutionHostResultsRequest{}) ue.GET("/api/_version_/fleet/scripts/batch/{batch_execution_id:[a-zA-Z0-9-]+}", batchScriptExecutionStatusEndpoint, batchScriptExecutionStatusRequest{}) ue.GET("/api/_version_/fleet/scripts/batch", batchScriptExecutionListEndpoint, batchScriptExecutionListRequest{}) diff --git a/server/service/integration_enterprise_test.go b/server/service/integration_enterprise_test.go index ef12117d77..9a94ae1e6f 100644 --- a/server/service/integration_enterprise_test.go +++ b/server/service/integration_enterprise_test.go @@ -7631,12 +7631,12 @@ func (s *integrationEnterpriseTestSuite) TestRunBatchScript() { ) var batchPendingHostsResp batchScriptExecutionHostResultsResponse - res := s.Do("GET", fmt.Sprintf("/api/latest/fleet/scripts/batch/%s/host-results", batchRes.BatchExecutionID), nil, http.StatusBadRequest) + res := s.Do("GET", fmt.Sprintf("/api/latest/fleet/scripts/batch/%s/host_results", batchRes.BatchExecutionID), nil, http.StatusBadRequest) errMsg := extractServerErrorText(res.Body) require.Contains(t, errMsg, "Param status is required") // List pending hosts - s.DoJSON("GET", fmt.Sprintf("/api/latest/fleet/scripts/batch/%s/host-results?status=pending", batchRes.BatchExecutionID), nil, http.StatusOK, &batchPendingHostsResp) + s.DoJSON("GET", fmt.Sprintf("/api/latest/fleet/scripts/batch/%s/host_results?status=pending", batchRes.BatchExecutionID), nil, http.StatusOK, &batchPendingHostsResp) require.Len(t, batchPendingHostsResp.Hosts, 2) require.Equal(t, batchPendingHostsResp.Count, uint(2)) require.Equal(t, batchPendingHostsResp.Meta.HasNextResults, false)