fleet/frontend/router/paths.ts
2024-10-21 12:36:50 +01:00

210 lines
8.7 KiB
TypeScript

import { buildQueryStringFromParams } from "utilities/url";
import { IPolicy } from "../interfaces/policy";
import URL_PREFIX from "./url_prefix";
// Note: changes to paths.ts should change page_titles.ts respectively
export default {
ROOT: `${URL_PREFIX}/`,
// Controls pages
CONTROLS: `${URL_PREFIX}/controls`,
CONTROLS_OS_UPDATES: `${URL_PREFIX}/controls/os-updates`,
CONTROLS_OS_SETTINGS: `${URL_PREFIX}/controls/os-settings`,
CONTROLS_CUSTOM_SETTINGS: `${URL_PREFIX}/controls/os-settings/custom-settings`,
CONTROLS_DISK_ENCRYPTION: `${URL_PREFIX}/controls/os-settings/disk-encryption`,
CONTROLS_SETUP_EXPERIENCE: `${URL_PREFIX}/controls/setup-experience`,
CONTROLS_END_USER_AUTHENTICATION: `${URL_PREFIX}/controls/setup-experience/end-user-auth`,
CONTROLS_BOOTSTRAP_PACKAGE: `${URL_PREFIX}/controls/setup-experience/bootstrap-package`,
CONTROLS_SETUP_ASSITANT: `${URL_PREFIX}/controls/setup-experience/setup-assistant`,
CONTROLS_INSTALL_SOFTWARE: `${URL_PREFIX}/controls/setup-experience/install-software`,
CONTROLS_RUN_SCRIPT: `${URL_PREFIX}/controls/setup-experience/run-script`,
CONTROLS_SCRIPTS: `${URL_PREFIX}/controls/scripts`,
// Dashboard pages
DASHBOARD: `${URL_PREFIX}/dashboard`,
DASHBOARD_LINUX: `${URL_PREFIX}/dashboard/linux`,
DASHBOARD_MAC: `${URL_PREFIX}/dashboard/mac`,
DASHBOARD_WINDOWS: `${URL_PREFIX}/dashboard/windows`,
DASHBOARD_CHROME: `${URL_PREFIX}/dashboard/chrome`,
DASHBOARD_IOS: `${URL_PREFIX}/dashboard/ios`,
DASHBOARD_IPADOS: `${URL_PREFIX}/dashboard/ipados`,
/**
* Admin pages
*/
ADMIN_SETTINGS: `${URL_PREFIX}/settings`,
ADMIN_USERS: `${URL_PREFIX}/settings/users`,
// Integrations pages
ADMIN_INTEGRATIONS: `${URL_PREFIX}/settings/integrations`,
ADMIN_INTEGRATIONS_TICKET_DESTINATIONS: `${URL_PREFIX}/settings/integrations/ticket-destinations`,
ADMIN_INTEGRATIONS_MDM: `${URL_PREFIX}/settings/integrations/mdm`,
ADMIN_INTEGRATIONS_MDM_APPLE: `${URL_PREFIX}/settings/integrations/mdm/apple`,
ADMIN_INTEGRATIONS_MDM_WINDOWS: `${URL_PREFIX}/settings/integrations/mdm/windows`,
ADMIN_INTEGRATIONS_APPLE_BUSINESS_MANAGER: `${URL_PREFIX}/settings/integrations/mdm/abm`,
ADMIN_INTEGRATIONS_AUTOMATIC_ENROLLMENT_WINDOWS: `${URL_PREFIX}/settings/integrations/automatic-enrollment/windows`,
ADMIN_INTEGRATIONS_SCEP: `${URL_PREFIX}/settings/integrations/mdm/scep`,
ADMIN_INTEGRATIONS_CALENDARS: `${URL_PREFIX}/settings/integrations/calendars`,
ADMIN_INTEGRATIONS_VPP: `${URL_PREFIX}/settings/integrations/mdm/vpp`,
ADMIN_INTEGRATIONS_VPP_SETUP: `${URL_PREFIX}/settings/integrations/vpp/setup`,
ADMIN_TEAMS: `${URL_PREFIX}/settings/teams`,
ADMIN_ORGANIZATION: `${URL_PREFIX}/settings/organization`,
ADMIN_ORGANIZATION_INFO: `${URL_PREFIX}/settings/organization/info`,
ADMIN_ORGANIZATION_WEBADDRESS: `${URL_PREFIX}/settings/organization/webaddress`,
ADMIN_ORGANIZATION_SSO: `${URL_PREFIX}/settings/organization/sso`,
ADMIN_ORGANIZATION_SMTP: `${URL_PREFIX}/settings/organization/smtp`,
ADMIN_ORGANIZATION_AGENTS: `${URL_PREFIX}/settings/organization/agents`,
ADMIN_ORGANIZATION_HOST_STATUS_WEBHOOK: `${URL_PREFIX}/settings/organization/host-status-webhook`,
ADMIN_ORGANIZATION_STATISTICS: `${URL_PREFIX}/settings/organization/statistics`,
ADMIN_ORGANIZATION_ADVANCED: `${URL_PREFIX}/settings/organization/advanced`,
ADMIN_ORGANIZATION_FLEET_DESKTOP: `${URL_PREFIX}/settings/organization/fleet-desktop`,
// Software pages
SOFTWARE: `${URL_PREFIX}/software`,
SOFTWARE_TITLES: `${URL_PREFIX}/software/titles`,
SOFTWARE_OS: `${URL_PREFIX}/software/os`,
SOFTWARE_VERSIONS: `${URL_PREFIX}/software/versions`,
SOFTWARE_TITLE_DETAILS: (id: string): string => {
return `${URL_PREFIX}/software/titles/${id}`;
},
SOFTWARE_VERSION_DETAILS: (id: string): string => {
return `${URL_PREFIX}/software/versions/${id}`;
},
SOFTWARE_OS_DETAILS: (id: number): string => {
return `${URL_PREFIX}/software/os/${id}`;
},
SOFTWARE_VULNERABILITIES: `${URL_PREFIX}/software/vulnerabilities`,
SOFTWARE_VULNERABILITY_DETAILS: (cve: string): string => {
return `${URL_PREFIX}/software/vulnerabilities/${cve}`;
},
SOFTWARE_ADD_FLEET_MAINTAINED: `${URL_PREFIX}/software/add/fleet-maintained`,
SOFTWARE_FLEET_MAINTAINED_DETAILS: (id: number) =>
`${URL_PREFIX}/software/add/fleet-maintained/${id}`,
SOFTWARE_ADD_PACKAGE: `${URL_PREFIX}/software/add/package`,
SOFTWARE_ADD_APP_STORE: `${URL_PREFIX}/software/add/app-store`,
// Label pages
LABEL_NEW_DYNAMIC: `${URL_PREFIX}/labels/new/dynamic`,
LABEL_NEW_MANUAL: `${URL_PREFIX}/labels/new/manual`,
LABEL_EDIT: (labelId: number) => `${URL_PREFIX}/labels/${labelId}`,
EDIT_PACK: (packId: number): string => {
return `${URL_PREFIX}/packs/${packId}/edit`;
},
PACK: (packId: number): string => {
return `${URL_PREFIX}/packs/${packId}`;
},
EDIT_LABEL: (labelId: number): string => {
return `${URL_PREFIX}/labels/${labelId}`;
},
EDIT_QUERY: (queryId: number, teamId?: number): string => {
return `${URL_PREFIX}/queries/${queryId}/edit${
teamId ? `?team_id=${teamId}` : ""
}`;
},
LIVE_QUERY: (
queryId: number | null,
teamId?: number,
hostId?: number
): string => {
const baseUrl = `${URL_PREFIX}/queries/${queryId || "new"}/live`;
const queryParams = buildQueryStringFromParams({
team_id: teamId,
host_id: hostId,
});
return queryParams ? `${baseUrl}?${queryParams}` : baseUrl;
},
QUERY_DETAILS: (queryId: number, teamId?: number): string => {
return `${URL_PREFIX}/queries/${queryId}${
teamId ? `?team_id=${teamId}` : ""
}`;
},
EDIT_POLICY: (policy: IPolicy): string => {
return `${URL_PREFIX}/policies/${policy.id}${
policy.team_id !== undefined ? `?team_id=${policy.team_id}` : ""
}`;
},
FORGOT_PASSWORD: `${URL_PREFIX}/login/forgot`,
NO_ACCESS: `${URL_PREFIX}/login/denied`,
API_ONLY_USER: `${URL_PREFIX}/apionlyuser`,
// error pages
FLEET_403: `${URL_PREFIX}/403`,
FLEET_404: `${URL_PREFIX}/404`,
FLEET_500: `${URL_PREFIX}/500`,
LOGIN: `${URL_PREFIX}/login`,
LOGOUT: `${URL_PREFIX}/logout`,
MANAGE_HOSTS: `${URL_PREFIX}/hosts/manage`,
MANAGE_HOSTS_ADD_HOSTS: `${URL_PREFIX}/hosts/manage/?add_hosts=true`,
MANAGE_HOSTS_LABEL: (labelId: number | string): string => {
return `${URL_PREFIX}/hosts/manage/labels/${labelId}`;
},
HOST_DETAILS: (id: number): string => {
return `${URL_PREFIX}/hosts/${id}`;
},
HOST_SCRIPTS: (id: number): string => {
return `${URL_PREFIX}/hosts/${id}/scripts`;
},
HOST_SOFTWARE: (id: number): string => {
return `${URL_PREFIX}/hosts/${id}/software`;
},
HOST_QUERIES: (id: number): string => {
return `${URL_PREFIX}/hosts/${id}/queries`;
},
HOST_POLICIES: (id: number): string => {
return `${URL_PREFIX}/hosts/${id}/policies`;
},
HOST_QUERY_REPORT: (hostId: number, queryId: number): string =>
`${URL_PREFIX}/hosts/${hostId}/queries/${queryId}`,
DEVICE_USER_DETAILS: (deviceAuthToken: string): string => {
return `${URL_PREFIX}/device/${deviceAuthToken}`;
},
DEVICE_USER_DETAILS_SELF_SERVICE: (deviceAuthToken: string): string => {
return `${URL_PREFIX}/device/${deviceAuthToken}/self-service`;
},
DEVICE_USER_DETAILS_SOFTWARE: (deviceAuthToken: string): string => {
return `${URL_PREFIX}/device/${deviceAuthToken}/software`;
},
DEVICE_USER_DETAILS_POLICIES: (deviceAuthToken: string): string => {
return `${URL_PREFIX}/device/${deviceAuthToken}/policies`;
},
TEAM_DETAILS_USERS: (teamId?: number): string => {
if (teamId !== undefined && teamId > 0) {
return `${URL_PREFIX}/settings/teams/users?team_id=${teamId}`;
}
return `${URL_PREFIX}/settings/teams`;
},
TEAM_DETAILS_OPTIONS: (teamId?: number): string => {
if (teamId !== undefined && teamId > 0) {
return `${URL_PREFIX}/settings/teams/options?team_id=${teamId}`;
}
return `${URL_PREFIX}/settings/teams`;
},
TEAM_DETAILS_SETTINGS: (teamId?: number) => {
if (teamId !== undefined && teamId > 0) {
return `${URL_PREFIX}/settings/teams/settings?team_id=${teamId}`;
}
return `${URL_PREFIX}/settings/teams`;
},
MANAGE_PACKS: `${URL_PREFIX}/packs/manage`,
NEW_PACK: `${URL_PREFIX}/packs/new`,
MANAGE_QUERIES: `${URL_PREFIX}/queries/manage`,
MANAGE_SCHEDULE: `${URL_PREFIX}/schedule/manage`,
MANAGE_TEAM_SCHEDULE: (teamId: number): string => {
return `${URL_PREFIX}/schedule/manage?team_id=${teamId}`;
},
MANAGE_POLICIES: `${URL_PREFIX}/policies/manage`,
NEW_LABEL: `${URL_PREFIX}/labels/new`,
NEW_POLICY: `${URL_PREFIX}/policies/new`,
NEW_QUERY: (teamId?: number) =>
`${URL_PREFIX}/queries/new${teamId ? `?team_id=${teamId}` : ""}`,
RESET_PASSWORD: `${URL_PREFIX}/login/reset`,
SETUP: `${URL_PREFIX}/setup`,
ACCOUNT: `${URL_PREFIX}/account`,
URL_PREFIX,
};