From 32d43a1a73e1423c2eab9376a8ac452c3169fd76 Mon Sep 17 00:00:00 2001 From: jacobshandling <61553566+jacobshandling@users.noreply.github.com> Date: Fri, 5 Sep 2025 14:49:05 -0700 Subject: [PATCH] UI: Update setup experience software IT admin endpoints (#32670) ## For #32037 Align setup experience software endpoints with https://github.com/fleetdm/fleet/pull/32317/files - only merge with associated server and agent PRs --------- Co-authored-by: Jacob Shandling --- .../BootstrapPackage/BootstrapPackage.tsx | 3 +- .../cards/InstallSoftware/InstallSoftware.tsx | 3 +- frontend/services/entities/mdm.ts | 29 +++++++------------ .../handlers/setup-experience-handlers.ts | 9 ++---- frontend/utilities/endpoints.ts | 5 +--- 5 files changed, 19 insertions(+), 30 deletions(-) diff --git a/frontend/pages/ManageControlsPage/SetupExperience/cards/BootstrapPackage/BootstrapPackage.tsx b/frontend/pages/ManageControlsPage/SetupExperience/cards/BootstrapPackage/BootstrapPackage.tsx index c7fdb74cbf..01d5a3d386 100644 --- a/frontend/pages/ManageControlsPage/SetupExperience/cards/BootstrapPackage/BootstrapPackage.tsx +++ b/frontend/pages/ManageControlsPage/SetupExperience/cards/BootstrapPackage/BootstrapPackage.tsx @@ -66,7 +66,8 @@ const BootstrapPackage = ({ currentTeamId }: IBootstrapPackageProps) => { >( ["install-software", currentTeamId], () => - mdmAPI.getSetupExperienceSoftware("macos", { + mdmAPI.getSetupExperienceSoftware({ + platform: "macos", team_id: currentTeamId, per_page: PER_PAGE_SIZE, }), diff --git a/frontend/pages/ManageControlsPage/SetupExperience/cards/InstallSoftware/InstallSoftware.tsx b/frontend/pages/ManageControlsPage/SetupExperience/cards/InstallSoftware/InstallSoftware.tsx index 1ec84a9f10..2d8e13eb5d 100644 --- a/frontend/pages/ManageControlsPage/SetupExperience/cards/InstallSoftware/InstallSoftware.tsx +++ b/frontend/pages/ManageControlsPage/SetupExperience/cards/InstallSoftware/InstallSoftware.tsx @@ -64,7 +64,8 @@ const InstallSoftware = ({ currentTeamId }: IInstallSoftwareProps) => { >( ["install-software", currentTeamId, selectedPlatform], () => - mdmAPI.getSetupExperienceSoftware(selectedPlatform, { + mdmAPI.getSetupExperienceSoftware({ + platform: selectedPlatform, team_id: currentTeamId, per_page: PER_PAGE_SIZE, }), diff --git a/frontend/services/entities/mdm.ts b/frontend/services/entities/mdm.ts index f26690060c..1b9ee4d529 100644 --- a/frontend/services/entities/mdm.ts +++ b/frontend/services/entities/mdm.ts @@ -16,6 +16,7 @@ import endpoints from "utilities/endpoints"; import { buildQueryStringFromParams } from "utilities/url"; import { ISoftwareTitlesResponse } from "./software"; +import { PaginationParams } from "./common"; export interface IEulaMetadataResponse { name: string; @@ -89,9 +90,9 @@ export interface IGetSetupExperienceScriptResponse { updated_at: string; } -interface IGetSetupExperienceSoftwareParams { +interface IGetSetupExperienceSoftwareParams extends Partial { team_id: number; - per_page: number; + platform: SetupExperiencePlatform; } export type IGetSetupExperienceSoftwareResponse = ISoftwareTitlesResponse & { @@ -360,16 +361,15 @@ const mdmService = { }, getSetupExperienceSoftware: ( - platform: SetupExperiencePlatform, params: IGetSetupExperienceSoftwareParams ): Promise => { const { MDM_SETUP_EXPERIENCE_SOFTWARE } = endpoints; - const path = `${MDM_SETUP_EXPERIENCE_SOFTWARE( - platform - )}?${buildQueryStringFromParams({ - ...params, - })}`; + const path = `${MDM_SETUP_EXPERIENCE_SOFTWARE}?${buildQueryStringFromParams( + { + ...params, + } + )}`; return sendRequest("GET", path); }, @@ -379,17 +379,10 @@ const mdmService = { teamId: number, softwareTitlesIds: number[] ) => { - const { MDM_SETUP_EXPERIENCE_SOFTWARE } = endpoints; - - const path = `${MDM_SETUP_EXPERIENCE_SOFTWARE( - platform - )}?${buildQueryStringFromParams({ - team_id: teamId, - })}`; - - return sendRequest("PUT", path, { - team_id: teamId, + return sendRequest("PUT", endpoints.MDM_SETUP_EXPERIENCE_SOFTWARE, { software_title_ids: softwareTitlesIds, + team_id: teamId, + platform, }); }, diff --git a/frontend/test/handlers/setup-experience-handlers.ts b/frontend/test/handlers/setup-experience-handlers.ts index f00880f805..ab8d5158af 100644 --- a/frontend/test/handlers/setup-experience-handlers.ts +++ b/frontend/test/handlers/setup-experience-handlers.ts @@ -13,11 +13,9 @@ import { IGetSetupExperienceScriptResponse, IGetSetupExperienceSoftwareResponse, } from "services/entities/mdm"; -import { SetupExperiencePlatform } from "interfaces/platform"; const setupExperienceScriptUrl = baseUrl("/setup_experience/script"); -const setupExperienceInstallSoftwareUrl = (platform: SetupExperiencePlatform) => - baseUrl(`/setup_experience/${platform}/software`); +const setupExperienceInstallSoftwareUrl = baseUrl(`/setup_experience/software`); const setupExperienceBootstrapMetadataUrl = baseUrl( "/mdm/bootstrap/:teamId/metadata" ); @@ -47,10 +45,9 @@ export const errorNoSetupExperienceScriptHandler = http.get( ); export const createSetupExperienceSoftwareHandler = ( - overrides?: Partial, - platform: SetupExperiencePlatform = "macos" + overrides?: Partial ) => - http.get(setupExperienceInstallSoftwareUrl(platform), () => { + http.get(setupExperienceInstallSoftwareUrl, () => { return HttpResponse.json( createMockSetupExperienceSoftwareResponse({ ...overrides }) ); diff --git a/frontend/utilities/endpoints.ts b/frontend/utilities/endpoints.ts index b03232f6ee..68108a92a4 100644 --- a/frontend/utilities/endpoints.ts +++ b/frontend/utilities/endpoints.ts @@ -182,10 +182,7 @@ export default { // Setup experiece endpoints MDM_SETUP_EXPERIENCE: `/${API_VERSION}/fleet/setup_experience`, - // maintained for backwards compatibility, use MDM_SETUP_EXPERIENCE_SOFTWARE endpoint - MDM_MACOS_SETUP_EXPERIENCE_SOFTWARE: `/${API_VERSION}/fleet/setup_experience/software`, - MDM_SETUP_EXPERIENCE_SOFTWARE: (platform: SetupExperiencePlatform) => - `/${API_VERSION}/fleet/setup_experience/${platform}/software`, + MDM_SETUP_EXPERIENCE_SOFTWARE: `/${API_VERSION}/fleet/setup_experience/software`, MDM_SETUP_EXPERIENCE_SCRIPT: `/${API_VERSION}/fleet/setup_experience/script`, // OS Version endpoints