diff --git a/frontend/pages/ManageControlsPage/OSSettings/cards/CustomSettings/components/ProfileListItem/ProfileListItem.tsx b/frontend/pages/ManageControlsPage/OSSettings/cards/CustomSettings/components/ProfileListItem/ProfileListItem.tsx
index 51c185c521..b61ea7c2f0 100644
--- a/frontend/pages/ManageControlsPage/OSSettings/cards/CustomSettings/components/ProfileListItem/ProfileListItem.tsx
+++ b/frontend/pages/ManageControlsPage/OSSettings/cards/CustomSettings/components/ProfileListItem/ProfileListItem.tsx
@@ -53,6 +53,21 @@ const ProfileDetails = ({
);
};
+const createProfileExtension = (profile: IMdmProfile) => {
+ if (isDDMProfile(profile)) {
+ return "json";
+ }
+ return profile.platform === "darwin" ? "mobileconfig" : "xml";
+};
+
+const createFileContent = async (profile: IMdmProfile) => {
+ const content = await mdmAPI.downloadProfile(profile.profile_uuid);
+ if (isDDMProfile(profile)) {
+ return JSON.stringify(content, null, 2);
+ }
+ return content;
+};
+
interface IProfileListItemProps {
isPremium: boolean;
profile: IMdmProfile;
@@ -68,13 +83,13 @@ const ProfileListItem = ({
onDelete,
setProfileLabelsModalData,
}: IProfileListItemProps) => {
- const { created_at, labels, name, platform, profile_uuid } = profile;
+ const { created_at, labels, name, platform } = profile;
const subClass = "list-item";
const onClickDownload = async () => {
- const fileContent = await mdmAPI.downloadProfile(profile_uuid);
+ const fileContent = await createFileContent(profile);
const formatDate = format(new Date(), "yyyy-MM-dd");
- const extension = platform === "darwin" ? "mobileconfig" : "xml";
+ const extension = createProfileExtension(profile);
const filename = `${formatDate}_${name}.${extension}`;
const file = new File([fileContent], filename);
FileSaver.saveAs(file);
diff --git a/frontend/pages/ManageControlsPage/OSSettings/cards/CustomSettings/components/ProfileUploader/components/AddProfileModal.tsx b/frontend/pages/ManageControlsPage/OSSettings/cards/CustomSettings/components/ProfileUploader/components/AddProfileModal.tsx
index 883479185a..403ef83c16 100644
--- a/frontend/pages/ManageControlsPage/OSSettings/cards/CustomSettings/components/ProfileUploader/components/AddProfileModal.tsx
+++ b/frontend/pages/ManageControlsPage/OSSettings/cards/CustomSettings/components/ProfileUploader/components/AddProfileModal.tsx
@@ -52,7 +52,7 @@ const FileChooser = ({
{
diff --git a/frontend/pages/ManageControlsPage/OSSettings/cards/CustomSettings/components/ProfileUploader/helpers.tsx b/frontend/pages/ManageControlsPage/OSSettings/cards/CustomSettings/components/ProfileUploader/helpers.tsx
index 3f12067abf..bef5542e71 100644
--- a/frontend/pages/ManageControlsPage/OSSettings/cards/CustomSettings/components/ProfileUploader/helpers.tsx
+++ b/frontend/pages/ManageControlsPage/OSSettings/cards/CustomSettings/components/ProfileUploader/helpers.tsx
@@ -78,6 +78,9 @@ export const parseFile = async (file: File): Promise<[string, string]> => {
// }
return [name, "macOS"];
}
+ case "json": {
+ return [name, "macOS"];
+ }
default: {
throw new Error(`Invalid file type: ${ext}`);
}
diff --git a/frontend/pages/hosts/details/HostDetailsPage/HostDetailsPage.tsx b/frontend/pages/hosts/details/HostDetailsPage/HostDetailsPage.tsx
index 11b2178bcf..4f03cb495a 100644
--- a/frontend/pages/hosts/details/HostDetailsPage/HostDetailsPage.tsx
+++ b/frontend/pages/hosts/details/HostDetailsPage/HostDetailsPage.tsx
@@ -753,30 +753,6 @@ const HostDetailsPage = ({
name: host?.mdm.macos_setup?.bootstrap_package_name,
};
- // TODO: Remove this when API is ready
- if (!host.mdm.profiles) {
- host.mdm.profiles = [];
- } else {
- host.mdm.profiles = [
- createMockHostMdmProfile({
- name: "test.json",
- status: "success",
- }),
- createMockHostMdmProfile({
- name: "test2.json",
- status: "pending",
- }),
- createMockHostMdmProfile({
- name: "test3.json",
- status: "failed",
- }),
- createMockHostMdmProfile({
- name: "test4.json",
- status: "acknowledged",
- }),
- ];
- }
-
return (
<>