fleet/frontend/pages/admin/IntegrationsPage/IntegrationNavItems.tsx
jacobshandling ca2fc6030f
Create, list, delete Android certificates from the UI (#37314)
**Related issue:** Resolves #36689 

<img width="1840" height="1196" alt="Screenshot 2025-12-15 at 5 08
02 PM"
src="https://github.com/user-attachments/assets/4f491c80-403f-4188-8cab-552e997c6e9c"
/>
<img width="1840" height="1196" alt="Screenshot 2025-12-15 at 5 09
18 PM"
src="https://github.com/user-attachments/assets/b6e4d9ad-40c1-45c3-8b77-e14d17a2bc7e"
/>
<img width="1840" height="1196" alt="Screenshot 2025-12-15 at 5 09
22 PM"
src="https://github.com/user-attachments/assets/661beee2-3ee2-4269-ab0b-ca070c1a40b8"
/>




If some of the following don't apply, delete the relevant line.

- [x] Changes file added for user-visible changes in `changes/`
- [x] Added/updated automated tests
- [x] QA'd all new/changed functionality manually

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

## Release Notes

* **New Features**
* Added comprehensive Android certificate management in OS Settings with
create, list, and delete operations
* Integrated certificate management with premium tier gating and MDM
enablement checks
  * Supports team-scoped certificates with pagination controls
* Includes validation for certificate names and certificate authority
selection

* **Refactor**
* Generalized heading component to support multiple entity types beyond
configuration profiles

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-12-16 15:39:07 -08:00

75 lines
2.2 KiB
TypeScript

import PATHS from "router/paths";
import { ISideNavItem } from "../components/SideNav/SideNav";
import Integrations from "./cards/Integrations";
import MdmSettings from "./cards/MdmSettings";
import Calendars from "./cards/Calendars";
import ChangeManagement from "./cards/ChangeManagement";
import CertificateAuthorities from "./cards/CertificateAuthorities";
import ConditionalAccess from "./cards/ConditionalAccess";
import IdentityProviders from "./cards/IdentityProviders";
import Sso from "./cards/Sso";
import GlobalHostStatusWebhook from "../IntegrationsPage/cards/GlobalHostStatusWebhook";
const getIntegrationSettingsNavItems = (): ISideNavItem<any>[] => {
const items: ISideNavItem<any>[] = [
{
title: "Ticket destinations",
urlSection: "ticket-destinations",
path: PATHS.ADMIN_INTEGRATIONS_TICKET_DESTINATIONS,
Card: Integrations,
},
{
title: "MDM",
urlSection: "mdm",
path: PATHS.ADMIN_INTEGRATIONS_MDM,
Card: MdmSettings,
},
{
title: "Calendars",
urlSection: "calendars",
path: PATHS.ADMIN_INTEGRATIONS_CALENDARS,
Card: Calendars,
},
{
title: "Change management",
urlSection: "change-management",
path: PATHS.ADMIN_INTEGRATIONS_CHANGE_MANAGEMENT,
Card: ChangeManagement,
},
{
title: "Single sign-on (SSO)",
urlSection: "sso",
path: PATHS.ADMIN_INTEGRATIONS_SSO_FLEET_USERS,
Card: Sso,
},
{
title: "Certificate authorities",
urlSection: "certificate-authorities",
path: PATHS.ADMIN_INTEGRATIONS_CERTIFICATE_AUTHORITIES,
Card: CertificateAuthorities,
},
{
title: "Identity provider (IdP)",
urlSection: "identity-provider",
path: PATHS.ADMIN_INTEGRATIONS_IDENTITY_PROVIDER,
Card: IdentityProviders,
},
{
title: "Host status webhook",
urlSection: "host-status-webhook",
path: PATHS.ADMIN_INTEGRATIONS_HOST_STATUS_WEBHOOK,
Card: GlobalHostStatusWebhook,
},
{
title: "Conditional access",
urlSection: "conditional-access",
path: PATHS.ADMIN_INTEGRATIONS_CONDITIONAL_ACCESS,
Card: ConditionalAccess,
},
];
return items;
};
export default getIntegrationSettingsNavItems;