mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-14 10:29:52 +00:00
feat: resolved frontend url changes and resolved ts error
This commit is contained in:
@@ -82,7 +82,7 @@ export const PkiCollectionModal = ({ popUp, handlePopUpToggle }: Props) => {
|
||||
});
|
||||
|
||||
navigate({
|
||||
to: "/projects/$projectId/cert-manager/pki-collections/$collectionId",
|
||||
to: "/projects/cert-management/$projectId/pki-collections/$collectionId",
|
||||
params: {
|
||||
projectId,
|
||||
collectionId
|
||||
|
||||
@@ -21,7 +21,6 @@ import {
|
||||
} from "@app/components/v2";
|
||||
import { ProjectPermissionActions, ProjectPermissionSub, useWorkspace } from "@app/context";
|
||||
import { useListWorkspacePkiCollections } from "@app/hooks/api";
|
||||
import { ProjectType } from "@app/hooks/api/workspace/types";
|
||||
import { UsePopUpState } from "@app/hooks/usePopUp";
|
||||
|
||||
type Props = {
|
||||
@@ -61,7 +60,7 @@ export const PkiCollectionTable = ({ handlePopUpOpen }: Props) => {
|
||||
key={`pki-collection-${pkiCollection.id}`}
|
||||
onClick={() =>
|
||||
navigate({
|
||||
to: `/projects/$projectId/${ProjectType.CertificateManager}/pki-collections/$collectionId` as const,
|
||||
to: "/projects/cert-management/$projectId/pki-collections/$collectionId",
|
||||
params: {
|
||||
projectId,
|
||||
collectionId: pkiCollection.id
|
||||
|
||||
@@ -3,7 +3,7 @@ import { createFileRoute } from "@tanstack/react-router";
|
||||
import { AlertingPage } from "./AlertingPage";
|
||||
|
||||
export const Route = createFileRoute(
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/cert-manager/_cert-manager-layout/alerting"
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/cert-management/$projectId/_cert-manager-layout/alerting"
|
||||
)({
|
||||
component: AlertingPage,
|
||||
beforeLoad: ({ context }) => {
|
||||
|
||||
@@ -18,7 +18,6 @@ import { ROUTE_PATHS } from "@app/const/routes";
|
||||
import { ProjectPermissionActions, ProjectPermissionSub, useWorkspace } from "@app/context";
|
||||
import { CaType, useDeleteCa, useGetCa } from "@app/hooks/api";
|
||||
import { TInternalCertificateAuthority } from "@app/hooks/api/ca/types";
|
||||
import { ProjectType } from "@app/hooks/api/workspace/types";
|
||||
import { usePopUp } from "@app/hooks/usePopUp";
|
||||
|
||||
import { CaInstallCertModal } from "../CertificateAuthoritiesPage/components/CaInstallCertModal";
|
||||
@@ -71,7 +70,7 @@ const Page = () => {
|
||||
|
||||
handlePopUpClose("deleteCa");
|
||||
navigate({
|
||||
to: `/projects/$projectId/${ProjectType.CertificateManager}/certificate-authorities` as const,
|
||||
to: "/projects/cert-management/$projectId/certificate-authorities",
|
||||
params: {
|
||||
projectId
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ import { createFileRoute, linkOptions } from "@tanstack/react-router";
|
||||
import { CertAuthDetailsByIDPage } from "./CertAuthDetailsByIDPage";
|
||||
|
||||
export const Route = createFileRoute(
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/cert-manager/_cert-manager-layout/ca/$caName"
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/cert-management/$projectId/_cert-manager-layout/ca/$caName"
|
||||
)({
|
||||
component: CertAuthDetailsByIDPage,
|
||||
beforeLoad: ({ context, params }) => {
|
||||
@@ -13,7 +13,7 @@ export const Route = createFileRoute(
|
||||
{
|
||||
label: "Certificate Authorities",
|
||||
link: linkOptions({
|
||||
to: "/projects/$projectId/cert-manager/certificate-authorities",
|
||||
to: "/projects/cert-management/$projectId/certificate-authorities",
|
||||
params: {
|
||||
projectId: params.projectId
|
||||
}
|
||||
|
||||
@@ -30,7 +30,6 @@ import {
|
||||
getCaStatusBadgeVariant
|
||||
} from "@app/hooks/api/ca/constants";
|
||||
import { TInternalCertificateAuthority } from "@app/hooks/api/ca/types";
|
||||
import { ProjectType } from "@app/hooks/api/workspace/types";
|
||||
import { UsePopUpState } from "@app/hooks/usePopUp";
|
||||
|
||||
type Props = {
|
||||
@@ -79,7 +78,7 @@ export const CaTable = ({ handlePopUpOpen }: Props) => {
|
||||
key={`ca-${ca.id}`}
|
||||
onClick={() =>
|
||||
navigate({
|
||||
to: `/projects/$projectId/${ProjectType.CertificateManager}/ca/$caName` as const,
|
||||
to: "/projects/cert-management/$projectId/ca/$caName",
|
||||
params: {
|
||||
projectId: currentWorkspace.id,
|
||||
caName: ca.name
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { createFileRoute } from "@tanstack/react-router";
|
||||
import { createFileRoute } from '@tanstack/react-router'
|
||||
|
||||
import { CertificateAuthoritiesPage } from "./CertificateAuthoritiesPage";
|
||||
import { CertificateAuthoritiesPage } from './CertificateAuthoritiesPage'
|
||||
|
||||
export const Route = createFileRoute(
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/cert-manager/_cert-manager-layout/certificate-authorities"
|
||||
'/_authenticate/_inject-org-details/_org-layout/projects/cert-management/$projectId/_cert-manager-layout/certificate-authorities',
|
||||
)({
|
||||
component: CertificateAuthoritiesPage,
|
||||
beforeLoad: ({ context }) => {
|
||||
@@ -11,9 +11,9 @@ export const Route = createFileRoute(
|
||||
breadcrumbs: [
|
||||
...context.breadcrumbs,
|
||||
{
|
||||
label: "Certificate Authorities"
|
||||
}
|
||||
]
|
||||
};
|
||||
}
|
||||
});
|
||||
label: 'Certificate Authorities',
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { createFileRoute } from "@tanstack/react-router";
|
||||
import { createFileRoute } from '@tanstack/react-router'
|
||||
|
||||
import { CertificatesPage } from "./CertificatesPage";
|
||||
import { CertificatesPage } from './CertificatesPage'
|
||||
|
||||
export const Route = createFileRoute(
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/cert-manager/_cert-manager-layout/certificates"
|
||||
'/_authenticate/_inject-org-details/_org-layout/projects/cert-management/$projectId/_cert-manager-layout/certificates',
|
||||
)({
|
||||
component: CertificatesPage,
|
||||
beforeLoad: ({ context }) => {
|
||||
@@ -11,9 +11,9 @@ export const Route = createFileRoute(
|
||||
breadcrumbs: [
|
||||
...context.breadcrumbs,
|
||||
{
|
||||
label: "Certificates"
|
||||
}
|
||||
]
|
||||
};
|
||||
}
|
||||
});
|
||||
label: 'Certificates',
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
+1
-2
@@ -19,7 +19,6 @@ import { ROUTE_PATHS } from "@app/const/routes";
|
||||
import { ProjectPermissionActions, ProjectPermissionSub, useWorkspace } from "@app/context";
|
||||
import { useDeletePkiCollection, useGetPkiCollectionById } from "@app/hooks/api";
|
||||
import { PkiItemType } from "@app/hooks/api/pkiCollections/constants";
|
||||
import { ProjectType } from "@app/hooks/api/workspace/types";
|
||||
import { usePopUp } from "@app/hooks/usePopUp";
|
||||
|
||||
import { PkiCollectionModal } from "../AlertingPage/components/PkiCollectionModal";
|
||||
@@ -57,7 +56,7 @@ export const PkiCollectionPage = () => {
|
||||
});
|
||||
handlePopUpClose("deletePkiCollection");
|
||||
navigate({
|
||||
to: `/projects/$projectId/${ProjectType.CertificateManager}/certificates` as const,
|
||||
to: "/projects/cert-management/$projectId/certificates",
|
||||
params: {
|
||||
projectId
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ import { createFileRoute, linkOptions } from "@tanstack/react-router";
|
||||
import { PkiCollectionDetailsByIDPage } from "./PkiCollectionDetailsByIDPage";
|
||||
|
||||
export const Route = createFileRoute(
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/cert-manager/_cert-manager-layout/pki-collections/$collectionId"
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/cert-management/$projectId/_cert-manager-layout/pki-collections/$collectionId"
|
||||
)({
|
||||
component: PkiCollectionDetailsByIDPage,
|
||||
beforeLoad: ({ context, params }) => {
|
||||
@@ -13,7 +13,7 @@ export const Route = createFileRoute(
|
||||
{
|
||||
label: "Certificate Collections",
|
||||
link: linkOptions({
|
||||
to: "/projects/$projectId/cert-manager/certificates",
|
||||
to: "/projects/cert-management/$projectId/certificates",
|
||||
params: {
|
||||
projectId: params.projectId
|
||||
}
|
||||
|
||||
+1
-2
@@ -22,7 +22,6 @@ import {
|
||||
useWorkspace
|
||||
} from "@app/context";
|
||||
import { useDeletePkiSubscriber, useGetPkiSubscriber } from "@app/hooks/api";
|
||||
import { ProjectType } from "@app/hooks/api/workspace/types";
|
||||
import { usePopUp } from "@app/hooks/usePopUp";
|
||||
|
||||
import { PkiSubscriberModal } from "../PkiSubscribersPage/components/PkiSubscriberModal";
|
||||
@@ -61,7 +60,7 @@ const Page = () => {
|
||||
|
||||
handlePopUpClose("deletePkiSubscriber");
|
||||
navigate({
|
||||
to: `/projects/$projectId/${ProjectType.CertificateManager}/subscribers` as const,
|
||||
to: "/projects/cert-management/$projectId/subscribers",
|
||||
params: {
|
||||
projectId
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ import { createFileRoute, linkOptions } from "@tanstack/react-router";
|
||||
import { PkiSubscriberDetailsByIDPage } from "./PkiSubscriberDetailsByIDPage";
|
||||
|
||||
export const Route = createFileRoute(
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/cert-manager/_cert-manager-layout/subscribers/$subscriberName"
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/cert-management/$projectId/_cert-manager-layout/subscribers/$subscriberName"
|
||||
)({
|
||||
component: PkiSubscriberDetailsByIDPage,
|
||||
beforeLoad: ({ context, params }) => {
|
||||
@@ -13,7 +13,7 @@ export const Route = createFileRoute(
|
||||
{
|
||||
label: "Subscribers",
|
||||
link: linkOptions({
|
||||
to: "/projects/$projectId/cert-manager/subscribers",
|
||||
to: "/projects/cert-management/$projectId/subscribers",
|
||||
params: {
|
||||
projectId: params.projectId
|
||||
}
|
||||
|
||||
+1
-2
@@ -38,7 +38,6 @@ import {
|
||||
PkiSubscriberStatus,
|
||||
pkiSubscriberStatusToNameMap
|
||||
} from "@app/hooks/api/pkiSubscriber/constants";
|
||||
import { ProjectType } from "@app/hooks/api/workspace/types";
|
||||
import { UsePopUpState } from "@app/hooks/usePopUp";
|
||||
|
||||
type Props = {
|
||||
@@ -76,7 +75,7 @@ export const PkiSubscribersTable = ({ handlePopUpOpen }: Props) => {
|
||||
key={`pki-subscriber-${subscriber.id}`}
|
||||
onClick={() =>
|
||||
navigate({
|
||||
to: `/projects/$projectId/${ProjectType.CertificateManager}/subscribers/$subscriberName` as const,
|
||||
to: "/projects/cert-management/$projectId/subscribers/$subscriberName",
|
||||
params: {
|
||||
projectId: currentWorkspace.id,
|
||||
subscriberName: subscriber.name
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { createFileRoute } from "@tanstack/react-router";
|
||||
import { createFileRoute } from '@tanstack/react-router'
|
||||
|
||||
import { PkiSubscribersPage } from "./PkiSubscribersPage";
|
||||
import { PkiSubscribersPage } from './PkiSubscribersPage'
|
||||
|
||||
export const Route = createFileRoute(
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/cert-manager/_cert-manager-layout/subscribers/"
|
||||
'/_authenticate/_inject-org-details/_org-layout/projects/cert-management/$projectId/_cert-manager-layout/subscribers/',
|
||||
)({
|
||||
component: PkiSubscribersPage,
|
||||
beforeLoad: ({ context }) => {
|
||||
@@ -11,9 +11,9 @@ export const Route = createFileRoute(
|
||||
breadcrumbs: [
|
||||
...context.breadcrumbs,
|
||||
{
|
||||
label: "Subscribers"
|
||||
}
|
||||
]
|
||||
};
|
||||
}
|
||||
});
|
||||
label: 'Subscribers',
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { createFileRoute } from "@tanstack/react-router";
|
||||
import { createFileRoute } from '@tanstack/react-router'
|
||||
|
||||
import { PkiTemplateListPage } from "./PkiTemplateListPage";
|
||||
import { PkiTemplateListPage } from './PkiTemplateListPage'
|
||||
|
||||
export const Route = createFileRoute(
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/cert-manager/_cert-manager-layout/certificate-templates/"
|
||||
'/_authenticate/_inject-org-details/_org-layout/projects/cert-management/$projectId/_cert-manager-layout/certificate-templates/',
|
||||
)({
|
||||
component: PkiTemplateListPage,
|
||||
beforeLoad: ({ context }) => {
|
||||
@@ -11,9 +11,9 @@ export const Route = createFileRoute(
|
||||
breadcrumbs: [
|
||||
...context.breadcrumbs,
|
||||
{
|
||||
label: "Certificate Templates"
|
||||
}
|
||||
]
|
||||
};
|
||||
}
|
||||
});
|
||||
label: 'Certificate Templates',
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { createFileRoute } from "@tanstack/react-router";
|
||||
import { createFileRoute } from '@tanstack/react-router'
|
||||
|
||||
import { SettingsPage } from "./SettingsPage";
|
||||
import { SettingsPage } from './SettingsPage'
|
||||
|
||||
export const Route = createFileRoute(
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/cert-manager/_cert-manager-layout/settings"
|
||||
'/_authenticate/_inject-org-details/_org-layout/projects/cert-management/$projectId/_cert-manager-layout/settings',
|
||||
)({
|
||||
component: SettingsPage,
|
||||
beforeLoad: ({ context }) => {
|
||||
@@ -11,9 +11,9 @@ export const Route = createFileRoute(
|
||||
breadcrumbs: [
|
||||
...context.breadcrumbs,
|
||||
{
|
||||
label: "Settings"
|
||||
}
|
||||
]
|
||||
};
|
||||
}
|
||||
});
|
||||
label: 'Settings',
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
@@ -1,9 +1,37 @@
|
||||
import { createFileRoute } from "@tanstack/react-router";
|
||||
|
||||
import { PkiManagerLayout } from "@app/layouts/PkiManagerLayout";
|
||||
import { workspaceKeys } from "@app/hooks/api";
|
||||
import { fetchWorkspaceById } from "@app/hooks/api/workspace/queries";
|
||||
import { fetchUserProjectPermissions, roleQueryKeys } from "@app/hooks/api/roles/queries";
|
||||
import { BreadcrumbTypes } from "@app/components/v2";
|
||||
import { ProjectSelect } from "@app/layouts/ProjectLayout/components/ProjectSelect";
|
||||
|
||||
export const Route = createFileRoute(
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/cert-manager/_cert-manager-layout"
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/cert-management/$projectId/_cert-manager-layout"
|
||||
)({
|
||||
component: PkiManagerLayout
|
||||
component: PkiManagerLayout,
|
||||
beforeLoad: async ({ params, context }) => {
|
||||
const project = await context.queryClient.ensureQueryData({
|
||||
queryKey: workspaceKeys.getWorkspaceById(params.projectId),
|
||||
queryFn: () => fetchWorkspaceById(params.projectId)
|
||||
});
|
||||
|
||||
await context.queryClient.ensureQueryData({
|
||||
queryKey: roleQueryKeys.getUserProjectPermissions({
|
||||
workspaceId: params.projectId
|
||||
}),
|
||||
queryFn: () => fetchUserProjectPermissions({ workspaceId: params.projectId })
|
||||
});
|
||||
|
||||
return {
|
||||
project,
|
||||
breadcrumbs: [
|
||||
{
|
||||
type: BreadcrumbTypes.Component,
|
||||
component: ProjectSelect
|
||||
}
|
||||
]
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { createFileRoute } from "@tanstack/react-router";
|
||||
import { createFileRoute } from '@tanstack/react-router'
|
||||
|
||||
import { KmipPage } from "./KmipPage";
|
||||
import { KmipPage } from './KmipPage'
|
||||
|
||||
export const Route = createFileRoute(
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/kms/_kms-layout/kmip"
|
||||
'/_authenticate/_inject-org-details/_org-layout/projects/kms/$projectId/_kms-layout/kmip',
|
||||
)({
|
||||
component: KmipPage,
|
||||
beforeLoad: ({ context }) => {
|
||||
@@ -11,9 +11,9 @@ export const Route = createFileRoute(
|
||||
breadcrumbs: [
|
||||
...context.breadcrumbs,
|
||||
{
|
||||
label: "KMIP"
|
||||
}
|
||||
]
|
||||
};
|
||||
}
|
||||
});
|
||||
label: 'KMIP',
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { createFileRoute } from "@tanstack/react-router";
|
||||
import { createFileRoute } from '@tanstack/react-router'
|
||||
|
||||
import { OverviewPage } from "./OverviewPage";
|
||||
import { OverviewPage } from './OverviewPage'
|
||||
|
||||
export const Route = createFileRoute(
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/kms/_kms-layout/overview"
|
||||
'/_authenticate/_inject-org-details/_org-layout/projects/kms/$projectId/_kms-layout/overview',
|
||||
)({
|
||||
component: OverviewPage,
|
||||
beforeLoad: ({ context }) => {
|
||||
@@ -11,9 +11,9 @@ export const Route = createFileRoute(
|
||||
breadcrumbs: [
|
||||
...context.breadcrumbs,
|
||||
{
|
||||
label: "Overview"
|
||||
}
|
||||
]
|
||||
};
|
||||
}
|
||||
});
|
||||
label: 'Overview',
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { createFileRoute } from "@tanstack/react-router";
|
||||
import { createFileRoute } from '@tanstack/react-router'
|
||||
|
||||
import { SettingsPage } from "./SettingsPage";
|
||||
import { SettingsPage } from './SettingsPage'
|
||||
|
||||
export const Route = createFileRoute(
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/kms/_kms-layout/settings"
|
||||
'/_authenticate/_inject-org-details/_org-layout/projects/kms/$projectId/_kms-layout/settings',
|
||||
)({
|
||||
component: SettingsPage,
|
||||
beforeLoad: ({ context }) => {
|
||||
@@ -11,9 +11,9 @@ export const Route = createFileRoute(
|
||||
breadcrumbs: [
|
||||
...context.breadcrumbs,
|
||||
{
|
||||
label: "Settings"
|
||||
}
|
||||
]
|
||||
};
|
||||
}
|
||||
});
|
||||
label: 'Settings',
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
@@ -1,9 +1,37 @@
|
||||
import { createFileRoute } from "@tanstack/react-router";
|
||||
|
||||
import { BreadcrumbTypes } from "@app/components/v2";
|
||||
import { workspaceKeys } from "@app/hooks/api";
|
||||
import { fetchUserProjectPermissions, roleQueryKeys } from "@app/hooks/api/roles/queries";
|
||||
import { fetchWorkspaceById } from "@app/hooks/api/workspace/queries";
|
||||
import { KmsLayout } from "@app/layouts/KmsLayout";
|
||||
import { ProjectSelect } from "@app/layouts/ProjectLayout/components/ProjectSelect";
|
||||
|
||||
export const Route = createFileRoute(
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/kms/_kms-layout"
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/kms/$projectId/_kms-layout"
|
||||
)({
|
||||
component: KmsLayout
|
||||
component: KmsLayout,
|
||||
beforeLoad: async ({ params, context }) => {
|
||||
const project = await context.queryClient.ensureQueryData({
|
||||
queryKey: workspaceKeys.getWorkspaceById(params.projectId),
|
||||
queryFn: () => fetchWorkspaceById(params.projectId)
|
||||
});
|
||||
|
||||
await context.queryClient.ensureQueryData({
|
||||
queryKey: roleQueryKeys.getUserProjectPermissions({
|
||||
workspaceId: params.projectId
|
||||
}),
|
||||
queryFn: () => fetchUserProjectPermissions({ workspaceId: params.projectId })
|
||||
});
|
||||
|
||||
return {
|
||||
project,
|
||||
breadcrumbs: [
|
||||
{
|
||||
type: BreadcrumbTypes.Component,
|
||||
component: ProjectSelect
|
||||
}
|
||||
]
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
+2
-2
@@ -105,7 +105,7 @@ export const OrgAdminProjects = withPermission(
|
||||
<TBody>
|
||||
{isProjectsLoading && <TableSkeleton columns={4} innerKey="projects" />}
|
||||
{!isProjectsLoading &&
|
||||
projects?.map(({ name, slug, createdAt, id, defaultProduct }) => (
|
||||
projects?.map(({ name, slug, createdAt, id, type }) => (
|
||||
<Tr key={`project-${id}`} className="group w-full">
|
||||
<Td>{name}</Td>
|
||||
<Td>{slug}</Td>
|
||||
@@ -126,7 +126,7 @@ export const OrgAdminProjects = withPermission(
|
||||
onClick={(e) => {
|
||||
e.stopPropagation();
|
||||
e.preventDefault();
|
||||
handleAccessProject(defaultProduct, id);
|
||||
handleAccessProject(type, id);
|
||||
}}
|
||||
icon={<FontAwesomeIcon icon={faSignIn} />}
|
||||
disabled={
|
||||
|
||||
@@ -300,10 +300,10 @@ export const LogsFilter = ({ presets, setFilter, filter }: Props) => {
|
||||
onChange(e);
|
||||
}}
|
||||
placeholder="All projects"
|
||||
options={workspacesInOrg.map(({ name, id, defaultProduct }) => ({
|
||||
options={workspacesInOrg.map(({ name, id, type }) => ({
|
||||
name,
|
||||
id,
|
||||
type: defaultProduct
|
||||
type
|
||||
}))}
|
||||
getOptionValue={(option) => option.id}
|
||||
getOptionLabel={(option) => option.name}
|
||||
|
||||
+4
-1
@@ -6,6 +6,8 @@ import { format } from "date-fns";
|
||||
|
||||
import { createNotification } from "@app/components/notifications";
|
||||
import { IconButton, Td, Tooltip, Tr } from "@app/components/v2";
|
||||
import { useWorkspace } from "@app/context";
|
||||
import { getProjectBaseURL } from "@app/helpers/project";
|
||||
import { formatProjectRoleName } from "@app/helpers/roles";
|
||||
import { useGetUserWorkspaces } from "@app/hooks/api";
|
||||
import { IdentityMembership } from "@app/hooks/api/identities/types";
|
||||
@@ -32,6 +34,7 @@ export const IdentityProjectRow = ({
|
||||
}: Props) => {
|
||||
const { data: workspaces } = useGetUserWorkspaces();
|
||||
const navigate = useNavigate();
|
||||
const { currentWorkspace } = useWorkspace();
|
||||
|
||||
const isAccessible = useMemo(() => {
|
||||
const workspaceIds = new Map();
|
||||
@@ -50,7 +53,7 @@ export const IdentityProjectRow = ({
|
||||
onClick={() => {
|
||||
if (isAccessible) {
|
||||
navigate({
|
||||
to: "/projects/$projectId/access-management",
|
||||
to: `${getProjectBaseURL(currentWorkspace.type)}/access-management` as const,
|
||||
params: {
|
||||
projectId: project.id
|
||||
},
|
||||
|
||||
@@ -222,7 +222,7 @@ export const AllProjectView = ({
|
||||
onKeyDown={(evt) => {
|
||||
if (evt.key === "Enter" && workspace.isMember) {
|
||||
navigate({
|
||||
to: getProjectHomePage(workspace.defaultProduct),
|
||||
to: getProjectHomePage(workspace.type),
|
||||
params: {
|
||||
projectId: workspace.id
|
||||
}
|
||||
@@ -232,7 +232,7 @@ export const AllProjectView = ({
|
||||
onClick={() => {
|
||||
if (workspace.isMember) {
|
||||
navigate({
|
||||
to: getProjectHomePage(workspace.defaultProduct),
|
||||
to: getProjectHomePage(workspace.type),
|
||||
params: {
|
||||
projectId: workspace.id
|
||||
}
|
||||
|
||||
@@ -153,7 +153,7 @@ export const MyProjectView = ({
|
||||
<div
|
||||
onClick={() => {
|
||||
navigate({
|
||||
to: getProjectHomePage(workspace.defaultProduct),
|
||||
to: getProjectHomePage(workspace.type),
|
||||
params: {
|
||||
projectId: workspace.id
|
||||
}
|
||||
@@ -215,7 +215,7 @@ export const MyProjectView = ({
|
||||
<div
|
||||
onClick={() => {
|
||||
navigate({
|
||||
to: getProjectHomePage(workspace.defaultProduct),
|
||||
to: getProjectHomePage(workspace.type),
|
||||
params: {
|
||||
projectId: workspace.id
|
||||
}
|
||||
|
||||
+4
-1
@@ -10,6 +10,8 @@ import { useGetUserWorkspaces } from "@app/hooks/api";
|
||||
import { TWorkspaceUser } from "@app/hooks/api/types";
|
||||
import { UsePopUpState } from "@app/hooks/usePopUp";
|
||||
import { OrgAccessControlTabSections } from "@app/types/org";
|
||||
import { getProjectBaseURL } from "@app/helpers/project";
|
||||
import { useWorkspace } from "@app/context";
|
||||
|
||||
type Props = {
|
||||
membership: TWorkspaceUser;
|
||||
@@ -25,6 +27,7 @@ export const UserProjectRow = ({
|
||||
}: Props) => {
|
||||
const { data: workspaces = [] } = useGetUserWorkspaces();
|
||||
const navigate = useNavigate();
|
||||
const { currentWorkspace } = useWorkspace();
|
||||
|
||||
const isAccessible = useMemo(() => {
|
||||
const workspaceIds = new Map();
|
||||
@@ -43,7 +46,7 @@ export const UserProjectRow = ({
|
||||
onClick={() => {
|
||||
if (isAccessible) {
|
||||
navigate({
|
||||
to: "/projects/$projectId/access-management",
|
||||
to: `${getProjectBaseURL(currentWorkspace.type)}/access-management` as const,
|
||||
params: {
|
||||
projectId: project.id
|
||||
},
|
||||
|
||||
@@ -4,6 +4,7 @@ import { useNavigate, useSearch } from "@tanstack/react-router";
|
||||
|
||||
import { PageHeader, Tab, TabList, TabPanel, Tabs } from "@app/components/v2";
|
||||
import { useWorkspace } from "@app/context";
|
||||
import { getProjectBaseURL } from "@app/helpers/project";
|
||||
import { ProjectAccessControlTabs } from "@app/types/project";
|
||||
|
||||
import {
|
||||
@@ -24,7 +25,7 @@ const Page = () => {
|
||||
|
||||
const updateSelectedTab = (tab: string) => {
|
||||
navigate({
|
||||
to: "/projects/$projectId/access-management",
|
||||
to: `${getProjectBaseURL(currentWorkspace.type)}/access-management` as const,
|
||||
search: (prev) => ({ ...prev, selectedTab: tab }),
|
||||
params: {
|
||||
projectId: currentWorkspace.id
|
||||
|
||||
+3
-2
@@ -44,6 +44,7 @@ import { OrderByDirection } from "@app/hooks/api/generic/types";
|
||||
import { UsePopUpState } from "@app/hooks/usePopUp";
|
||||
|
||||
import { GroupRoles } from "./GroupRoles";
|
||||
import { getProjectBaseURL } from "@app/helpers/project";
|
||||
|
||||
type Props = {
|
||||
handlePopUpOpen: (
|
||||
@@ -158,7 +159,7 @@ export const GroupTable = ({ handlePopUpOpen }: Props) => {
|
||||
onKeyDown={(evt) => {
|
||||
if (evt.key === "Enter") {
|
||||
navigate({
|
||||
to: "/projects/$projectId/groups/$groupId",
|
||||
to: `${getProjectBaseURL(currentWorkspace.type)}/groups/$groupId` as const,
|
||||
params: {
|
||||
projectId: currentWorkspace.id,
|
||||
groupId: id
|
||||
@@ -168,7 +169,7 @@ export const GroupTable = ({ handlePopUpOpen }: Props) => {
|
||||
}}
|
||||
onClick={() =>
|
||||
navigate({
|
||||
to: "/projects/$projectId/groups/$groupId",
|
||||
to: `${getProjectBaseURL(currentWorkspace.type)}/groups/$groupId` as const,
|
||||
params: {
|
||||
projectId: currentWorkspace.id,
|
||||
groupId: id
|
||||
|
||||
@@ -60,6 +60,7 @@ import { ProjectIdentityOrderBy } from "@app/hooks/api/workspace/types";
|
||||
import { usePopUp } from "@app/hooks/usePopUp";
|
||||
|
||||
import { IdentityModal } from "./components/IdentityModal";
|
||||
import { getProjectBaseURL } from "@app/helpers/project";
|
||||
|
||||
const MAX_ROLES_TO_BE_SHOWN_IN_TABLE = 2;
|
||||
|
||||
@@ -260,7 +261,7 @@ export const IdentityTab = withProjectPermission(
|
||||
onKeyDown={(evt) => {
|
||||
if (evt.key === "Enter") {
|
||||
navigate({
|
||||
to: "/projects/$projectId/identities/$identityId",
|
||||
to: `${getProjectBaseURL(currentWorkspace.type)}/identities/$identityId` as const,
|
||||
params: {
|
||||
projectId: currentWorkspace.id,
|
||||
identityId: id
|
||||
@@ -270,7 +271,7 @@ export const IdentityTab = withProjectPermission(
|
||||
}}
|
||||
onClick={() =>
|
||||
navigate({
|
||||
to: "/projects/$projectId/identities/$identityId",
|
||||
to: `${getProjectBaseURL(currentWorkspace.type)}/identities/$identityId` as const,
|
||||
params: {
|
||||
projectId: currentWorkspace.id,
|
||||
identityId: id
|
||||
|
||||
+2
-1
@@ -5,6 +5,7 @@ import { useWorkspace } from "@app/context";
|
||||
import { TWorkspaceUser } from "@app/hooks/api/types";
|
||||
|
||||
import { MemberRbacSection } from "./MemberRbacSection";
|
||||
import { getProjectBaseURL } from "@app/helpers/project";
|
||||
|
||||
type Props = {
|
||||
projectMember: TWorkspaceUser;
|
||||
@@ -21,7 +22,7 @@ export const MemberRoleForm = ({ projectMember, onOpenUpgradeModal }: Props) =>
|
||||
>
|
||||
<AlertDescription>
|
||||
<Link
|
||||
to="/projects/$projectId/members/$membershipId"
|
||||
to={`${getProjectBaseURL(currentWorkspace.type)}/members/$membershipId` as const}
|
||||
params={{
|
||||
projectId: currentWorkspace.id,
|
||||
membershipId: projectMember.id
|
||||
|
||||
+3
-2
@@ -60,6 +60,7 @@ import { usePagination, useResetPageHelper } from "@app/hooks";
|
||||
import { useGetProjectRoles, useGetWorkspaceUsers } from "@app/hooks/api";
|
||||
import { OrderByDirection } from "@app/hooks/api/generic/types";
|
||||
import { UsePopUpState } from "@app/hooks/usePopUp";
|
||||
import { getProjectBaseURL } from "@app/helpers/project";
|
||||
|
||||
const MAX_ROLES_TO_BE_SHOWN_IN_TABLE = 2;
|
||||
|
||||
@@ -311,7 +312,7 @@ export const MembersTable = ({ handlePopUpOpen }: Props) => {
|
||||
onKeyDown={(evt) => {
|
||||
if (evt.key === "Enter") {
|
||||
navigate({
|
||||
to: "/projects/$projectId/members/$membershipId",
|
||||
to: `${getProjectBaseURL(currentWorkspace.type)}/members/$membershipId`,
|
||||
params: {
|
||||
projectId: workspaceId,
|
||||
membershipId
|
||||
@@ -321,7 +322,7 @@ export const MembersTable = ({ handlePopUpOpen }: Props) => {
|
||||
}}
|
||||
onClick={() =>
|
||||
navigate({
|
||||
to: "/projects/$projectId/members/$membershipId",
|
||||
to: `${getProjectBaseURL(currentWorkspace.type)}/members/$membershipId`,
|
||||
params: {
|
||||
projectId: workspaceId,
|
||||
membershipId
|
||||
|
||||
+3
-2
@@ -52,6 +52,7 @@ import { OrderByDirection } from "@app/hooks/api/generic/types";
|
||||
import { ProjectMembershipRole, TProjectRole } from "@app/hooks/api/roles/types";
|
||||
import { DuplicateProjectRoleModal } from "@app/pages/project/RoleDetailsBySlugPage/components/DuplicateProjectRoleModal";
|
||||
import { RoleModal } from "@app/pages/project/RoleDetailsBySlugPage/components/RoleModal";
|
||||
import { getProjectBaseURL } from "@app/helpers/project";
|
||||
|
||||
enum RolesOrderBy {
|
||||
Name = "name",
|
||||
@@ -249,7 +250,7 @@ export const ProjectRoleList = () => {
|
||||
className="h-10 cursor-pointer transition-colors duration-100 hover:bg-mineshaft-700"
|
||||
onClick={() =>
|
||||
navigate({
|
||||
to: "/projects/$projectId/roles/$roleSlug",
|
||||
to: `${getProjectBaseURL(currentWorkspace.type)}/roles/$roleSlug`,
|
||||
params: {
|
||||
projectId: currentWorkspace.id,
|
||||
roleSlug: slug
|
||||
@@ -291,7 +292,7 @@ export const ProjectRoleList = () => {
|
||||
onClick={(e) => {
|
||||
e.stopPropagation();
|
||||
navigate({
|
||||
to: "/projects/$projectId/roles/$roleSlug",
|
||||
to: `${getProjectBaseURL(currentWorkspace.type)}/roles/$roleSlug`,
|
||||
params: {
|
||||
projectId: currentWorkspace.id,
|
||||
roleSlug: slug
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
import { createFileRoute, stripSearchParams } from '@tanstack/react-router'
|
||||
import { zodValidator } from '@tanstack/zod-adapter'
|
||||
import { z } from 'zod'
|
||||
|
||||
import { ProjectAccessControlTabs } from '@app/types/project'
|
||||
|
||||
import { AccessControlPage } from './AccessControlPage'
|
||||
|
||||
const AccessControlPageQuerySchema = z.object({
|
||||
selectedTab: z
|
||||
.nativeEnum(ProjectAccessControlTabs)
|
||||
.catch(ProjectAccessControlTabs.Member),
|
||||
requesterEmail: z.string().catch(''),
|
||||
})
|
||||
|
||||
export const Route = createFileRoute(
|
||||
'/_authenticate/_inject-org-details/_org-layout/projects/cert-management/$projectId/_cert-manager-layout/access-management',
|
||||
)({
|
||||
component: AccessControlPage,
|
||||
validateSearch: zodValidator(AccessControlPageQuerySchema),
|
||||
search: {
|
||||
middlewares: [stripSearchParams({ requesterEmail: '' })],
|
||||
},
|
||||
beforeLoad: ({ context }) => {
|
||||
return {
|
||||
breadcrumbs: [
|
||||
...context.breadcrumbs,
|
||||
{
|
||||
label: 'Access Control',
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
})
|
||||
@@ -0,0 +1,34 @@
|
||||
import { createFileRoute, stripSearchParams } from '@tanstack/react-router'
|
||||
import { zodValidator } from '@tanstack/zod-adapter'
|
||||
import { z } from 'zod'
|
||||
|
||||
import { ProjectAccessControlTabs } from '@app/types/project'
|
||||
|
||||
import { AccessControlPage } from './AccessControlPage'
|
||||
|
||||
const AccessControlPageQuerySchema = z.object({
|
||||
selectedTab: z
|
||||
.nativeEnum(ProjectAccessControlTabs)
|
||||
.catch(ProjectAccessControlTabs.Member),
|
||||
requesterEmail: z.string().catch(''),
|
||||
})
|
||||
|
||||
export const Route = createFileRoute(
|
||||
'/_authenticate/_inject-org-details/_org-layout/projects/kms/$projectId/_kms-layout/access-management',
|
||||
)({
|
||||
component: AccessControlPage,
|
||||
validateSearch: zodValidator(AccessControlPageQuerySchema),
|
||||
search: {
|
||||
middlewares: [stripSearchParams({ requesterEmail: '' })],
|
||||
},
|
||||
beforeLoad: ({ context }) => {
|
||||
return {
|
||||
breadcrumbs: [
|
||||
...context.breadcrumbs,
|
||||
{
|
||||
label: 'Access Control',
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
})
|
||||
@@ -0,0 +1,34 @@
|
||||
import { createFileRoute, stripSearchParams } from '@tanstack/react-router'
|
||||
import { zodValidator } from '@tanstack/zod-adapter'
|
||||
import { z } from 'zod'
|
||||
|
||||
import { ProjectAccessControlTabs } from '@app/types/project'
|
||||
|
||||
import { AccessControlPage } from './AccessControlPage'
|
||||
|
||||
const AccessControlPageQuerySchema = z.object({
|
||||
selectedTab: z
|
||||
.nativeEnum(ProjectAccessControlTabs)
|
||||
.catch(ProjectAccessControlTabs.Member),
|
||||
requesterEmail: z.string().catch(''),
|
||||
})
|
||||
|
||||
export const Route = createFileRoute(
|
||||
'/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/access-management',
|
||||
)({
|
||||
component: AccessControlPage,
|
||||
validateSearch: zodValidator(AccessControlPageQuerySchema),
|
||||
search: {
|
||||
middlewares: [stripSearchParams({ requesterEmail: '' })],
|
||||
},
|
||||
beforeLoad: ({ context }) => {
|
||||
return {
|
||||
breadcrumbs: [
|
||||
...context.breadcrumbs,
|
||||
{
|
||||
label: 'Access Control',
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
})
|
||||
@@ -0,0 +1,34 @@
|
||||
import { createFileRoute, stripSearchParams } from '@tanstack/react-router'
|
||||
import { zodValidator } from '@tanstack/zod-adapter'
|
||||
import { z } from 'zod'
|
||||
|
||||
import { ProjectAccessControlTabs } from '@app/types/project'
|
||||
|
||||
import { AccessControlPage } from './AccessControlPage'
|
||||
|
||||
const AccessControlPageQuerySchema = z.object({
|
||||
selectedTab: z
|
||||
.nativeEnum(ProjectAccessControlTabs)
|
||||
.catch(ProjectAccessControlTabs.Member),
|
||||
requesterEmail: z.string().catch(''),
|
||||
})
|
||||
|
||||
export const Route = createFileRoute(
|
||||
'/_authenticate/_inject-org-details/_org-layout/projects/secret-scanning/$projectId/_secret-scanning-layout/access-management',
|
||||
)({
|
||||
component: AccessControlPage,
|
||||
validateSearch: zodValidator(AccessControlPageQuerySchema),
|
||||
search: {
|
||||
middlewares: [stripSearchParams({ requesterEmail: '' })],
|
||||
},
|
||||
beforeLoad: ({ context }) => {
|
||||
return {
|
||||
breadcrumbs: [
|
||||
...context.breadcrumbs,
|
||||
{
|
||||
label: 'Access Control',
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
})
|
||||
@@ -0,0 +1,34 @@
|
||||
import { createFileRoute, stripSearchParams } from '@tanstack/react-router'
|
||||
import { zodValidator } from '@tanstack/zod-adapter'
|
||||
import { z } from 'zod'
|
||||
|
||||
import { ProjectAccessControlTabs } from '@app/types/project'
|
||||
|
||||
import { AccessControlPage } from './AccessControlPage'
|
||||
|
||||
const AccessControlPageQuerySchema = z.object({
|
||||
selectedTab: z
|
||||
.nativeEnum(ProjectAccessControlTabs)
|
||||
.catch(ProjectAccessControlTabs.Member),
|
||||
requesterEmail: z.string().catch(''),
|
||||
})
|
||||
|
||||
export const Route = createFileRoute(
|
||||
'/_authenticate/_inject-org-details/_org-layout/projects/ssh/$projectId/_ssh-layout/access-management',
|
||||
)({
|
||||
component: AccessControlPage,
|
||||
validateSearch: zodValidator(AccessControlPageQuerySchema),
|
||||
search: {
|
||||
middlewares: [stripSearchParams({ requesterEmail: '' })],
|
||||
},
|
||||
beforeLoad: ({ context }) => {
|
||||
return {
|
||||
breadcrumbs: [
|
||||
...context.breadcrumbs,
|
||||
{
|
||||
label: 'Access Control',
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
})
|
||||
@@ -19,6 +19,7 @@ import { usePopUp } from "@app/hooks";
|
||||
import { useDeleteGroupFromWorkspace } from "@app/hooks/api";
|
||||
import { TGroupMembership } from "@app/hooks/api/groups/types";
|
||||
import { GroupRoles } from "@app/pages/project/AccessControlPage/components/GroupsTab/components/GroupsSection/GroupRoles";
|
||||
import { getProjectBaseURL } from "@app/helpers/project";
|
||||
|
||||
type Props = {
|
||||
groupMembership: TGroupMembership;
|
||||
@@ -46,7 +47,7 @@ export const GroupDetailsSection = ({ groupMembership }: Props) => {
|
||||
});
|
||||
|
||||
navigate({
|
||||
to: "/projects/$projectId/access-management",
|
||||
to: `${getProjectBaseURL(currentWorkspace.type)}/access-management`,
|
||||
params: {
|
||||
projectId: currentWorkspace.id
|
||||
},
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
import { createFileRoute, linkOptions } from '@tanstack/react-router'
|
||||
|
||||
import { ProjectAccessControlTabs } from '@app/types/project'
|
||||
|
||||
import { GroupDetailsByIDPage } from './GroupDetailsByIDPage'
|
||||
|
||||
export const Route = createFileRoute(
|
||||
'/_authenticate/_inject-org-details/_org-layout/projects/cert-management/$projectId/_cert-manager-layout/groups/$groupId',
|
||||
)({
|
||||
component: GroupDetailsByIDPage,
|
||||
beforeLoad: ({ context, params }) => {
|
||||
return {
|
||||
breadcrumbs: [
|
||||
...context.breadcrumbs,
|
||||
{
|
||||
label: 'Access Control',
|
||||
link: linkOptions({
|
||||
to: '/projects/$projectId/access-management',
|
||||
params: {
|
||||
projectId: params.projectId,
|
||||
},
|
||||
search: {
|
||||
selectedTab: ProjectAccessControlTabs.Groups,
|
||||
},
|
||||
}),
|
||||
},
|
||||
{
|
||||
label: 'Group',
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
})
|
||||
@@ -0,0 +1,33 @@
|
||||
import { createFileRoute, linkOptions } from '@tanstack/react-router'
|
||||
|
||||
import { ProjectAccessControlTabs } from '@app/types/project'
|
||||
|
||||
import { GroupDetailsByIDPage } from './GroupDetailsByIDPage'
|
||||
|
||||
export const Route = createFileRoute(
|
||||
'/_authenticate/_inject-org-details/_org-layout/projects/kms/$projectId/_kms-layout/groups/$groupId',
|
||||
)({
|
||||
component: GroupDetailsByIDPage,
|
||||
beforeLoad: ({ context, params }) => {
|
||||
return {
|
||||
breadcrumbs: [
|
||||
...context.breadcrumbs,
|
||||
{
|
||||
label: 'Access Control',
|
||||
link: linkOptions({
|
||||
to: '/projects/$projectId/access-management',
|
||||
params: {
|
||||
projectId: params.projectId,
|
||||
},
|
||||
search: {
|
||||
selectedTab: ProjectAccessControlTabs.Groups,
|
||||
},
|
||||
}),
|
||||
},
|
||||
{
|
||||
label: 'Group',
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
})
|
||||
@@ -0,0 +1,33 @@
|
||||
import { createFileRoute, linkOptions } from '@tanstack/react-router'
|
||||
|
||||
import { ProjectAccessControlTabs } from '@app/types/project'
|
||||
|
||||
import { GroupDetailsByIDPage } from './GroupDetailsByIDPage'
|
||||
|
||||
export const Route = createFileRoute(
|
||||
'/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/groups/$groupId',
|
||||
)({
|
||||
component: GroupDetailsByIDPage,
|
||||
beforeLoad: ({ context, params }) => {
|
||||
return {
|
||||
breadcrumbs: [
|
||||
...context.breadcrumbs,
|
||||
{
|
||||
label: 'Access Control',
|
||||
link: linkOptions({
|
||||
to: '/projects/$projectId/access-management',
|
||||
params: {
|
||||
projectId: params.projectId,
|
||||
},
|
||||
search: {
|
||||
selectedTab: ProjectAccessControlTabs.Groups,
|
||||
},
|
||||
}),
|
||||
},
|
||||
{
|
||||
label: 'Group',
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
})
|
||||
@@ -0,0 +1,33 @@
|
||||
import { createFileRoute, linkOptions } from '@tanstack/react-router'
|
||||
|
||||
import { ProjectAccessControlTabs } from '@app/types/project'
|
||||
|
||||
import { GroupDetailsByIDPage } from './GroupDetailsByIDPage'
|
||||
|
||||
export const Route = createFileRoute(
|
||||
'/_authenticate/_inject-org-details/_org-layout/projects/secret-scanning/$projectId/_secret-scanning-layout/groups/$groupId',
|
||||
)({
|
||||
component: GroupDetailsByIDPage,
|
||||
beforeLoad: ({ context, params }) => {
|
||||
return {
|
||||
breadcrumbs: [
|
||||
...context.breadcrumbs,
|
||||
{
|
||||
label: 'Access Control',
|
||||
link: linkOptions({
|
||||
to: '/projects/$projectId/access-management',
|
||||
params: {
|
||||
projectId: params.projectId,
|
||||
},
|
||||
search: {
|
||||
selectedTab: ProjectAccessControlTabs.Groups,
|
||||
},
|
||||
}),
|
||||
},
|
||||
{
|
||||
label: 'Group',
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
})
|
||||
@@ -0,0 +1,33 @@
|
||||
import { createFileRoute, linkOptions } from '@tanstack/react-router'
|
||||
|
||||
import { ProjectAccessControlTabs } from '@app/types/project'
|
||||
|
||||
import { GroupDetailsByIDPage } from './GroupDetailsByIDPage'
|
||||
|
||||
export const Route = createFileRoute(
|
||||
'/_authenticate/_inject-org-details/_org-layout/projects/ssh/$projectId/_ssh-layout/groups/$groupId',
|
||||
)({
|
||||
component: GroupDetailsByIDPage,
|
||||
beforeLoad: ({ context, params }) => {
|
||||
return {
|
||||
breadcrumbs: [
|
||||
...context.breadcrumbs,
|
||||
{
|
||||
label: 'Access Control',
|
||||
link: linkOptions({
|
||||
to: '/projects/$projectId/access-management',
|
||||
params: {
|
||||
projectId: params.projectId,
|
||||
},
|
||||
search: {
|
||||
selectedTab: ProjectAccessControlTabs.Groups,
|
||||
},
|
||||
}),
|
||||
},
|
||||
{
|
||||
label: 'Group',
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
})
|
||||
@@ -20,7 +20,7 @@ import {
|
||||
ProjectPermissionSub,
|
||||
useWorkspace
|
||||
} from "@app/context";
|
||||
import { getCurrentProductFromUrl, getProjectHomePage } from "@app/helpers/project";
|
||||
import { getProjectBaseURL, getProjectHomePage } from "@app/helpers/project";
|
||||
import { usePopUp } from "@app/hooks";
|
||||
import {
|
||||
useAssumeProjectPrivileges,
|
||||
@@ -28,7 +28,6 @@ import {
|
||||
useGetWorkspaceIdentityMembershipDetails
|
||||
} from "@app/hooks/api";
|
||||
import { ActorType } from "@app/hooks/api/auditLogs/enums";
|
||||
import { ProjectType } from "@app/hooks/api/workspace/types";
|
||||
|
||||
import { IdentityProjectAdditionalPrivilegeSection } from "./components/IdentityProjectAdditionalPrivilegeSection";
|
||||
import { IdentityRoleDetailsSection } from "./components/IdentityRoleDetailsSection";
|
||||
@@ -68,9 +67,7 @@ const Page = () => {
|
||||
type: "success",
|
||||
text: "Identity privilege assumption has started"
|
||||
});
|
||||
const url = getProjectHomePage(
|
||||
getCurrentProductFromUrl(window.location.href) || ProjectType.SecretManager
|
||||
);
|
||||
const url = getProjectHomePage(currentWorkspace.type);
|
||||
window.location.href = url.replace("$projectId", currentWorkspace.id);
|
||||
}
|
||||
}
|
||||
@@ -89,7 +86,7 @@ const Page = () => {
|
||||
});
|
||||
handlePopUpClose("deleteIdentity");
|
||||
navigate({
|
||||
to: "/projects/$projectId/access-management",
|
||||
to: `${getProjectBaseURL(currentWorkspace.type)}/access-management` as const,
|
||||
params: {
|
||||
projectId: workspaceId
|
||||
},
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
import { createFileRoute, linkOptions } from '@tanstack/react-router'
|
||||
|
||||
import { ProjectAccessControlTabs } from '@app/types/project'
|
||||
|
||||
import { IdentityDetailsByIDPage } from './IdentityDetailsByIDPage'
|
||||
|
||||
export const Route = createFileRoute(
|
||||
'/_authenticate/_inject-org-details/_org-layout/projects/cert-management/$projectId/_cert-manager-layout/identities/$identityId',
|
||||
)({
|
||||
component: IdentityDetailsByIDPage,
|
||||
beforeLoad: ({ context, params }) => {
|
||||
return {
|
||||
breadcrumbs: [
|
||||
...context.breadcrumbs,
|
||||
{
|
||||
label: 'Access Control',
|
||||
link: linkOptions({
|
||||
to: '/projects/$projectId/access-management',
|
||||
params: {
|
||||
projectId: params.projectId,
|
||||
},
|
||||
search: {
|
||||
selectedTab: ProjectAccessControlTabs.Identities,
|
||||
},
|
||||
}),
|
||||
},
|
||||
{
|
||||
label: 'Machine Identity',
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
})
|
||||
@@ -0,0 +1,33 @@
|
||||
import { createFileRoute, linkOptions } from '@tanstack/react-router'
|
||||
|
||||
import { ProjectAccessControlTabs } from '@app/types/project'
|
||||
|
||||
import { IdentityDetailsByIDPage } from './IdentityDetailsByIDPage'
|
||||
|
||||
export const Route = createFileRoute(
|
||||
'/_authenticate/_inject-org-details/_org-layout/projects/kms/$projectId/_kms-layout/identities/$identityId',
|
||||
)({
|
||||
component: IdentityDetailsByIDPage,
|
||||
beforeLoad: ({ context, params }) => {
|
||||
return {
|
||||
breadcrumbs: [
|
||||
...context.breadcrumbs,
|
||||
{
|
||||
label: 'Access Control',
|
||||
link: linkOptions({
|
||||
to: '/projects/$projectId/access-management',
|
||||
params: {
|
||||
projectId: params.projectId,
|
||||
},
|
||||
search: {
|
||||
selectedTab: ProjectAccessControlTabs.Identities,
|
||||
},
|
||||
}),
|
||||
},
|
||||
{
|
||||
label: 'Machine Identity',
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
})
|
||||
@@ -0,0 +1,33 @@
|
||||
import { createFileRoute, linkOptions } from '@tanstack/react-router'
|
||||
|
||||
import { ProjectAccessControlTabs } from '@app/types/project'
|
||||
|
||||
import { IdentityDetailsByIDPage } from './IdentityDetailsByIDPage'
|
||||
|
||||
export const Route = createFileRoute(
|
||||
'/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/identities/$identityId',
|
||||
)({
|
||||
component: IdentityDetailsByIDPage,
|
||||
beforeLoad: ({ context, params }) => {
|
||||
return {
|
||||
breadcrumbs: [
|
||||
...context.breadcrumbs,
|
||||
{
|
||||
label: 'Access Control',
|
||||
link: linkOptions({
|
||||
to: '/projects/$projectId/access-management',
|
||||
params: {
|
||||
projectId: params.projectId,
|
||||
},
|
||||
search: {
|
||||
selectedTab: ProjectAccessControlTabs.Identities,
|
||||
},
|
||||
}),
|
||||
},
|
||||
{
|
||||
label: 'Machine Identity',
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
})
|
||||
@@ -0,0 +1,33 @@
|
||||
import { createFileRoute, linkOptions } from '@tanstack/react-router'
|
||||
|
||||
import { ProjectAccessControlTabs } from '@app/types/project'
|
||||
|
||||
import { IdentityDetailsByIDPage } from './IdentityDetailsByIDPage'
|
||||
|
||||
export const Route = createFileRoute(
|
||||
'/_authenticate/_inject-org-details/_org-layout/projects/secret-scanning/$projectId/_secret-scanning-layout/identities/$identityId',
|
||||
)({
|
||||
component: IdentityDetailsByIDPage,
|
||||
beforeLoad: ({ context, params }) => {
|
||||
return {
|
||||
breadcrumbs: [
|
||||
...context.breadcrumbs,
|
||||
{
|
||||
label: 'Access Control',
|
||||
link: linkOptions({
|
||||
to: '/projects/$projectId/access-management',
|
||||
params: {
|
||||
projectId: params.projectId,
|
||||
},
|
||||
search: {
|
||||
selectedTab: ProjectAccessControlTabs.Identities,
|
||||
},
|
||||
}),
|
||||
},
|
||||
{
|
||||
label: 'Machine Identity',
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
})
|
||||
@@ -0,0 +1,33 @@
|
||||
import { createFileRoute, linkOptions } from '@tanstack/react-router'
|
||||
|
||||
import { ProjectAccessControlTabs } from '@app/types/project'
|
||||
|
||||
import { IdentityDetailsByIDPage } from './IdentityDetailsByIDPage'
|
||||
|
||||
export const Route = createFileRoute(
|
||||
'/_authenticate/_inject-org-details/_org-layout/projects/ssh/$projectId/_ssh-layout/identities/$identityId',
|
||||
)({
|
||||
component: IdentityDetailsByIDPage,
|
||||
beforeLoad: ({ context, params }) => {
|
||||
return {
|
||||
breadcrumbs: [
|
||||
...context.breadcrumbs,
|
||||
{
|
||||
label: 'Access Control',
|
||||
link: linkOptions({
|
||||
to: '/projects/$projectId/access-management',
|
||||
params: {
|
||||
projectId: params.projectId,
|
||||
},
|
||||
search: {
|
||||
selectedTab: ProjectAccessControlTabs.Identities,
|
||||
},
|
||||
}),
|
||||
},
|
||||
{
|
||||
label: 'Machine Identity',
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
})
|
||||
@@ -21,7 +21,7 @@ import {
|
||||
useOrganization,
|
||||
useWorkspace
|
||||
} from "@app/context";
|
||||
import { getCurrentProductFromUrl, getProjectHomePage } from "@app/helpers/project";
|
||||
import { getProjectBaseURL, getProjectHomePage } from "@app/helpers/project";
|
||||
import { usePopUp } from "@app/hooks";
|
||||
import {
|
||||
useAssumeProjectPrivileges,
|
||||
@@ -29,7 +29,6 @@ import {
|
||||
useGetWorkspaceUserDetails
|
||||
} from "@app/hooks/api";
|
||||
import { ActorType } from "@app/hooks/api/auditLogs/enums";
|
||||
import { ProjectType } from "@app/hooks/api/workspace/types";
|
||||
|
||||
import { MemberProjectAdditionalPrivilegeSection } from "./components/MemberProjectAdditionalPrivilegeSection";
|
||||
import { MemberRoleDetailsSection } from "./components/MemberRoleDetailsSection";
|
||||
@@ -73,9 +72,7 @@ export const Page = () => {
|
||||
text: "User privilege assumption has started"
|
||||
});
|
||||
|
||||
const url = getProjectHomePage(
|
||||
getCurrentProductFromUrl(window.location.href) || ProjectType.SecretManager
|
||||
);
|
||||
const url = getProjectHomePage(currentWorkspace.type);
|
||||
window.location.href = url.replace("$projectId", currentWorkspace.id);
|
||||
}
|
||||
}
|
||||
@@ -96,7 +93,7 @@ export const Page = () => {
|
||||
type: "success"
|
||||
});
|
||||
navigate({
|
||||
to: "/projects/$projectId/access-management",
|
||||
to: `${getProjectBaseURL(currentWorkspace.type)}/access-management` as const,
|
||||
params: {
|
||||
projectId: currentWorkspace.id
|
||||
}
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
import { createFileRoute, linkOptions } from '@tanstack/react-router'
|
||||
|
||||
import { ProjectAccessControlTabs } from '@app/types/project'
|
||||
|
||||
import { MemberDetailsByIDPage } from './MemberDetailsByIDPage'
|
||||
|
||||
export const Route = createFileRoute(
|
||||
'/_authenticate/_inject-org-details/_org-layout/projects/cert-management/$projectId/_cert-manager-layout/members/$membershipId',
|
||||
)({
|
||||
component: MemberDetailsByIDPage,
|
||||
beforeLoad: ({ context, params }) => {
|
||||
return {
|
||||
breadcrumbs: [
|
||||
...context.breadcrumbs,
|
||||
{
|
||||
label: 'Access Control',
|
||||
link: linkOptions({
|
||||
to: '/projects/$projectId/access-management',
|
||||
params: {
|
||||
projectId: params.projectId,
|
||||
},
|
||||
search: {
|
||||
selectedTab: ProjectAccessControlTabs.Member,
|
||||
},
|
||||
}),
|
||||
},
|
||||
{
|
||||
label: 'User',
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
})
|
||||
@@ -0,0 +1,33 @@
|
||||
import { createFileRoute, linkOptions } from '@tanstack/react-router'
|
||||
|
||||
import { ProjectAccessControlTabs } from '@app/types/project'
|
||||
|
||||
import { MemberDetailsByIDPage } from './MemberDetailsByIDPage'
|
||||
|
||||
export const Route = createFileRoute(
|
||||
'/_authenticate/_inject-org-details/_org-layout/projects/kms/$projectId/_kms-layout/members/$membershipId',
|
||||
)({
|
||||
component: MemberDetailsByIDPage,
|
||||
beforeLoad: ({ context, params }) => {
|
||||
return {
|
||||
breadcrumbs: [
|
||||
...context.breadcrumbs,
|
||||
{
|
||||
label: 'Access Control',
|
||||
link: linkOptions({
|
||||
to: '/projects/$projectId/access-management',
|
||||
params: {
|
||||
projectId: params.projectId,
|
||||
},
|
||||
search: {
|
||||
selectedTab: ProjectAccessControlTabs.Member,
|
||||
},
|
||||
}),
|
||||
},
|
||||
{
|
||||
label: 'User',
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
})
|
||||
@@ -0,0 +1,33 @@
|
||||
import { createFileRoute, linkOptions } from '@tanstack/react-router'
|
||||
|
||||
import { ProjectAccessControlTabs } from '@app/types/project'
|
||||
|
||||
import { MemberDetailsByIDPage } from './MemberDetailsByIDPage'
|
||||
|
||||
export const Route = createFileRoute(
|
||||
'/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/members/$membershipId',
|
||||
)({
|
||||
component: MemberDetailsByIDPage,
|
||||
beforeLoad: ({ context, params }) => {
|
||||
return {
|
||||
breadcrumbs: [
|
||||
...context.breadcrumbs,
|
||||
{
|
||||
label: 'Access Control',
|
||||
link: linkOptions({
|
||||
to: '/projects/$projectId/access-management',
|
||||
params: {
|
||||
projectId: params.projectId,
|
||||
},
|
||||
search: {
|
||||
selectedTab: ProjectAccessControlTabs.Member,
|
||||
},
|
||||
}),
|
||||
},
|
||||
{
|
||||
label: 'User',
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
})
|
||||
@@ -0,0 +1,33 @@
|
||||
import { createFileRoute, linkOptions } from '@tanstack/react-router'
|
||||
|
||||
import { ProjectAccessControlTabs } from '@app/types/project'
|
||||
|
||||
import { MemberDetailsByIDPage } from './MemberDetailsByIDPage'
|
||||
|
||||
export const Route = createFileRoute(
|
||||
'/_authenticate/_inject-org-details/_org-layout/projects/secret-scanning/$projectId/_secret-scanning-layout/members/$membershipId',
|
||||
)({
|
||||
component: MemberDetailsByIDPage,
|
||||
beforeLoad: ({ context, params }) => {
|
||||
return {
|
||||
breadcrumbs: [
|
||||
...context.breadcrumbs,
|
||||
{
|
||||
label: 'Access Control',
|
||||
link: linkOptions({
|
||||
to: '/projects/$projectId/access-management',
|
||||
params: {
|
||||
projectId: params.projectId,
|
||||
},
|
||||
search: {
|
||||
selectedTab: ProjectAccessControlTabs.Member,
|
||||
},
|
||||
}),
|
||||
},
|
||||
{
|
||||
label: 'User',
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
})
|
||||
@@ -0,0 +1,33 @@
|
||||
import { createFileRoute, linkOptions } from '@tanstack/react-router'
|
||||
|
||||
import { ProjectAccessControlTabs } from '@app/types/project'
|
||||
|
||||
import { MemberDetailsByIDPage } from './MemberDetailsByIDPage'
|
||||
|
||||
export const Route = createFileRoute(
|
||||
'/_authenticate/_inject-org-details/_org-layout/projects/ssh/$projectId/_ssh-layout/members/$membershipId',
|
||||
)({
|
||||
component: MemberDetailsByIDPage,
|
||||
beforeLoad: ({ context, params }) => {
|
||||
return {
|
||||
breadcrumbs: [
|
||||
...context.breadcrumbs,
|
||||
{
|
||||
label: 'Access Control',
|
||||
link: linkOptions({
|
||||
to: '/projects/$projectId/access-management',
|
||||
params: {
|
||||
projectId: params.projectId,
|
||||
},
|
||||
search: {
|
||||
selectedTab: ProjectAccessControlTabs.Member,
|
||||
},
|
||||
}),
|
||||
},
|
||||
{
|
||||
label: 'User',
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
})
|
||||
@@ -25,6 +25,7 @@ import { RolePermissionsSection } from "@app/pages/project/RoleDetailsBySlugPage
|
||||
import { ProjectAccessControlTabs } from "@app/types/project";
|
||||
|
||||
import { RoleModal } from "./components/RoleModal";
|
||||
import { getProjectBaseURL } from "@app/helpers/project";
|
||||
|
||||
const Page = () => {
|
||||
const navigate = useNavigate();
|
||||
@@ -60,7 +61,7 @@ const Page = () => {
|
||||
});
|
||||
handlePopUpClose("deleteRole");
|
||||
navigate({
|
||||
to: "/projects/$projectId/access-management",
|
||||
to: `${getProjectBaseURL(currentWorkspace.type)}/access-management` as const,
|
||||
params: {
|
||||
projectId
|
||||
},
|
||||
|
||||
+2
-1
@@ -10,6 +10,7 @@ import { ProjectPermissionSecretActions } from "@app/context/ProjectPermissionCo
|
||||
import { useCreateProjectRole, useGetProjectRoleBySlug } from "@app/hooks/api";
|
||||
import { TProjectRole } from "@app/hooks/api/roles/types";
|
||||
import { slugSchema } from "@app/lib/schemas";
|
||||
import { getProjectBaseURL } from "@app/helpers/project";
|
||||
|
||||
type Props = {
|
||||
isOpen: boolean;
|
||||
@@ -80,7 +81,7 @@ const Content = ({ role, onClose }: ContentProps) => {
|
||||
});
|
||||
|
||||
navigate({
|
||||
to: "/projects/$projectId/roles/$roleSlug",
|
||||
to: `${getProjectBaseURL(currentWorkspace.type)}/roles/$roleSlug` as const,
|
||||
params: {
|
||||
roleSlug: newRole.slug,
|
||||
projectId: currentWorkspace.id
|
||||
|
||||
@@ -14,6 +14,7 @@ import {
|
||||
} from "@app/hooks/api";
|
||||
import { UsePopUpState } from "@app/hooks/usePopUp";
|
||||
import { slugSchema } from "@app/lib/schemas";
|
||||
import { getProjectBaseURL } from "@app/helpers/project";
|
||||
|
||||
const schema = z
|
||||
.object({
|
||||
@@ -100,7 +101,7 @@ export const RoleModal = ({ popUp, handlePopUpToggle }: Props) => {
|
||||
});
|
||||
|
||||
navigate({
|
||||
to: "/projects/$projectId/roles/$roleSlug",
|
||||
to: `${getProjectBaseURL(currentWorkspace.type)}/roles/$roleSlug` as const,
|
||||
params: {
|
||||
roleSlug: newRole.slug,
|
||||
projectId
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
import { createFileRoute, linkOptions } from '@tanstack/react-router'
|
||||
|
||||
import { ProjectAccessControlTabs } from '@app/types/project'
|
||||
|
||||
import { RoleDetailsBySlugPage } from './RoleDetailsBySlugPage'
|
||||
|
||||
export const Route = createFileRoute(
|
||||
'/_authenticate/_inject-org-details/_org-layout/projects/cert-management/$projectId/_cert-manager-layout/roles/$roleSlug',
|
||||
)({
|
||||
component: RoleDetailsBySlugPage,
|
||||
beforeLoad: ({ context, params }) => {
|
||||
return {
|
||||
breadcrumbs: [
|
||||
...context.breadcrumbs,
|
||||
{
|
||||
label: 'Access Control',
|
||||
link: linkOptions({
|
||||
to: '/projects/$projectId/access-management',
|
||||
params: {
|
||||
projectId: params.projectId,
|
||||
},
|
||||
search: {
|
||||
selectedTab: ProjectAccessControlTabs.Roles,
|
||||
},
|
||||
}),
|
||||
},
|
||||
{
|
||||
label: 'Roles',
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
})
|
||||
@@ -0,0 +1,33 @@
|
||||
import { createFileRoute, linkOptions } from '@tanstack/react-router'
|
||||
|
||||
import { ProjectAccessControlTabs } from '@app/types/project'
|
||||
|
||||
import { RoleDetailsBySlugPage } from './RoleDetailsBySlugPage'
|
||||
|
||||
export const Route = createFileRoute(
|
||||
'/_authenticate/_inject-org-details/_org-layout/projects/kms/$projectId/_kms-layout/roles/$roleSlug',
|
||||
)({
|
||||
component: RoleDetailsBySlugPage,
|
||||
beforeLoad: ({ context, params }) => {
|
||||
return {
|
||||
breadcrumbs: [
|
||||
...context.breadcrumbs,
|
||||
{
|
||||
label: 'Access Control',
|
||||
link: linkOptions({
|
||||
to: '/projects/$projectId/access-management',
|
||||
params: {
|
||||
projectId: params.projectId,
|
||||
},
|
||||
search: {
|
||||
selectedTab: ProjectAccessControlTabs.Roles,
|
||||
},
|
||||
}),
|
||||
},
|
||||
{
|
||||
label: 'Roles',
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
})
|
||||
@@ -0,0 +1,33 @@
|
||||
import { createFileRoute, linkOptions } from '@tanstack/react-router'
|
||||
|
||||
import { ProjectAccessControlTabs } from '@app/types/project'
|
||||
|
||||
import { RoleDetailsBySlugPage } from './RoleDetailsBySlugPage'
|
||||
|
||||
export const Route = createFileRoute(
|
||||
'/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/roles/$roleSlug',
|
||||
)({
|
||||
component: RoleDetailsBySlugPage,
|
||||
beforeLoad: ({ context, params }) => {
|
||||
return {
|
||||
breadcrumbs: [
|
||||
...context.breadcrumbs,
|
||||
{
|
||||
label: 'Access Control',
|
||||
link: linkOptions({
|
||||
to: '/projects/$projectId/access-management',
|
||||
params: {
|
||||
projectId: params.projectId,
|
||||
},
|
||||
search: {
|
||||
selectedTab: ProjectAccessControlTabs.Roles,
|
||||
},
|
||||
}),
|
||||
},
|
||||
{
|
||||
label: 'Roles',
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
})
|
||||
@@ -0,0 +1,33 @@
|
||||
import { createFileRoute, linkOptions } from '@tanstack/react-router'
|
||||
|
||||
import { ProjectAccessControlTabs } from '@app/types/project'
|
||||
|
||||
import { RoleDetailsBySlugPage } from './RoleDetailsBySlugPage'
|
||||
|
||||
export const Route = createFileRoute(
|
||||
'/_authenticate/_inject-org-details/_org-layout/projects/secret-scanning/$projectId/_secret-scanning-layout/roles/$roleSlug',
|
||||
)({
|
||||
component: RoleDetailsBySlugPage,
|
||||
beforeLoad: ({ context, params }) => {
|
||||
return {
|
||||
breadcrumbs: [
|
||||
...context.breadcrumbs,
|
||||
{
|
||||
label: 'Access Control',
|
||||
link: linkOptions({
|
||||
to: '/projects/$projectId/access-management',
|
||||
params: {
|
||||
projectId: params.projectId,
|
||||
},
|
||||
search: {
|
||||
selectedTab: ProjectAccessControlTabs.Roles,
|
||||
},
|
||||
}),
|
||||
},
|
||||
{
|
||||
label: 'Roles',
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
})
|
||||
@@ -0,0 +1,33 @@
|
||||
import { createFileRoute, linkOptions } from '@tanstack/react-router'
|
||||
|
||||
import { ProjectAccessControlTabs } from '@app/types/project'
|
||||
|
||||
import { RoleDetailsBySlugPage } from './RoleDetailsBySlugPage'
|
||||
|
||||
export const Route = createFileRoute(
|
||||
'/_authenticate/_inject-org-details/_org-layout/projects/ssh/$projectId/_ssh-layout/roles/$roleSlug',
|
||||
)({
|
||||
component: RoleDetailsBySlugPage,
|
||||
beforeLoad: ({ context, params }) => {
|
||||
return {
|
||||
breadcrumbs: [
|
||||
...context.breadcrumbs,
|
||||
{
|
||||
label: 'Access Control',
|
||||
link: linkOptions({
|
||||
to: '/projects/$projectId/access-management',
|
||||
params: {
|
||||
projectId: params.projectId,
|
||||
},
|
||||
search: {
|
||||
selectedTab: ProjectAccessControlTabs.Roles,
|
||||
},
|
||||
}),
|
||||
},
|
||||
{
|
||||
label: 'Roles',
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
})
|
||||
@@ -0,0 +1,19 @@
|
||||
import { createFileRoute } from "@tanstack/react-router";
|
||||
|
||||
import { SettingsPage } from "./SettingsPage";
|
||||
|
||||
export const Route = createFileRoute(
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/_project-general-layout/settings"
|
||||
)({
|
||||
component: SettingsPage,
|
||||
beforeLoad: ({ context }) => {
|
||||
return {
|
||||
breadcrumbs: [
|
||||
...context.breadcrumbs,
|
||||
{
|
||||
label: "Settings"
|
||||
}
|
||||
]
|
||||
};
|
||||
}
|
||||
});
|
||||
@@ -0,0 +1,19 @@
|
||||
import { createFileRoute } from "@tanstack/react-router";
|
||||
|
||||
import { SettingsPage } from "./SettingsPage";
|
||||
|
||||
export const Route = createFileRoute(
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/_project-general-layout/settings"
|
||||
)({
|
||||
component: SettingsPage,
|
||||
beforeLoad: ({ context }) => {
|
||||
return {
|
||||
breadcrumbs: [
|
||||
...context.breadcrumbs,
|
||||
{
|
||||
label: "Settings"
|
||||
}
|
||||
]
|
||||
};
|
||||
}
|
||||
});
|
||||
@@ -0,0 +1,19 @@
|
||||
import { createFileRoute } from "@tanstack/react-router";
|
||||
|
||||
import { SettingsPage } from "./SettingsPage";
|
||||
|
||||
export const Route = createFileRoute(
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/_project-general-layout/settings"
|
||||
)({
|
||||
component: SettingsPage,
|
||||
beforeLoad: ({ context }) => {
|
||||
return {
|
||||
breadcrumbs: [
|
||||
...context.breadcrumbs,
|
||||
{
|
||||
label: "Settings"
|
||||
}
|
||||
]
|
||||
};
|
||||
}
|
||||
});
|
||||
@@ -0,0 +1,19 @@
|
||||
import { createFileRoute } from "@tanstack/react-router";
|
||||
|
||||
import { SettingsPage } from "./SettingsPage";
|
||||
|
||||
export const Route = createFileRoute(
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/_project-general-layout/settings"
|
||||
)({
|
||||
component: SettingsPage,
|
||||
beforeLoad: ({ context }) => {
|
||||
return {
|
||||
breadcrumbs: [
|
||||
...context.breadcrumbs,
|
||||
{
|
||||
label: "Settings"
|
||||
}
|
||||
]
|
||||
};
|
||||
}
|
||||
});
|
||||
@@ -0,0 +1,19 @@
|
||||
import { createFileRoute } from '@tanstack/react-router'
|
||||
|
||||
import { SettingsPage } from './SettingsPage'
|
||||
|
||||
export const Route = createFileRoute(
|
||||
'/_authenticate/_inject-org-details/_org-layout/_project-layout/projects/ssh/$projectId/_ssh-layout/settings',
|
||||
)({
|
||||
component: SettingsPage,
|
||||
beforeLoad: ({ context }) => {
|
||||
return {
|
||||
breadcrumbs: [
|
||||
...context.breadcrumbs,
|
||||
{
|
||||
label: 'Settings',
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
})
|
||||
@@ -1,31 +1,15 @@
|
||||
import { createFileRoute } from "@tanstack/react-router";
|
||||
|
||||
import { BreadcrumbTypes } from "@app/components/v2";
|
||||
import { workspaceKeys } from "@app/hooks/api";
|
||||
import { fetchUserProjectPermissions, roleQueryKeys } from "@app/hooks/api/roles/queries";
|
||||
import { fetchWorkspaceById } from "@app/hooks/api/workspace/queries";
|
||||
import { ProjectLayout } from "@app/layouts/ProjectLayout";
|
||||
import { ProjectSelect } from "@app/layouts/ProjectLayout/components/ProjectSelect";
|
||||
|
||||
export const Route = createFileRoute(
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout"
|
||||
"/_authenticate/_inject-org-details/_org-layout/_project-layout"
|
||||
)({
|
||||
component: ProjectLayout,
|
||||
beforeLoad: async ({ params, context }) => {
|
||||
const project = await context.queryClient.ensureQueryData({
|
||||
queryKey: workspaceKeys.getWorkspaceById(params.projectId),
|
||||
queryFn: () => fetchWorkspaceById(params.projectId)
|
||||
});
|
||||
|
||||
await context.queryClient.ensureQueryData({
|
||||
queryKey: roleQueryKeys.getUserProjectPermissions({
|
||||
workspaceId: params.projectId
|
||||
}),
|
||||
queryFn: () => fetchUserProjectPermissions({ workspaceId: params.projectId })
|
||||
});
|
||||
|
||||
beforeLoad: async () => {
|
||||
return {
|
||||
project,
|
||||
breadcrumbs: [
|
||||
{
|
||||
type: BreadcrumbTypes.Component,
|
||||
|
||||
@@ -34,7 +34,7 @@ export const CommitDetailsPage = () => {
|
||||
|
||||
const handleGoBackToHistory = () => {
|
||||
navigate({
|
||||
to: "/projects/$projectId/secret-manager/commits/$environment/$folderId",
|
||||
to: "/projects/secret-management/$projectId/commits/$environment/$folderId",
|
||||
params: {
|
||||
projectId: currentWorkspace.id,
|
||||
folderId,
|
||||
@@ -49,7 +49,7 @@ export const CommitDetailsPage = () => {
|
||||
|
||||
const handleGoToRollbackPreview = () => {
|
||||
navigate({
|
||||
to: "/projects/$projectId/secret-manager/commits/$environment/$folderId/$commitId/restore",
|
||||
to: "/projects/secret-management/$projectId/commits/$environment/$folderId/$commitId/restore",
|
||||
params: {
|
||||
projectId: currentWorkspace.id,
|
||||
folderId,
|
||||
|
||||
+1
-1
@@ -102,7 +102,7 @@ export const RollbackPreviewTab = (): JSX.Element => {
|
||||
|
||||
const goBackToHistory = () => {
|
||||
navigate({
|
||||
to: "/projects/$projectId/secret-manager/commits/$environment/$folderId",
|
||||
to: "/projects/secret-management/$projectId/commits/$environment/$folderId",
|
||||
params: {
|
||||
projectId: currentWorkspace.id,
|
||||
folderId,
|
||||
|
||||
+4
-4
@@ -12,7 +12,7 @@ const RollbackPreviewTabQueryParamsSchema = z.object({
|
||||
});
|
||||
|
||||
export const Route = createFileRoute(
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/secret-manager/_secret-manager-layout/commits/$environment/$folderId/$commitId/restore"
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/commits/$environment/$folderId/$commitId/restore"
|
||||
)({
|
||||
component: RollbackPreviewTab,
|
||||
validateSearch: zodValidator(RollbackPreviewTabQueryParamsSchema),
|
||||
@@ -33,7 +33,7 @@ export const Route = createFileRoute(
|
||||
links: context.project.environments.map((el) => ({
|
||||
label: el.name,
|
||||
link: linkOptions({
|
||||
to: "/projects/$projectId/secret-manager/secrets/$envSlug",
|
||||
to: "/projects/secret-management/$projectId/secrets/$envSlug",
|
||||
params: {
|
||||
projectId: params.projectId,
|
||||
envSlug: el.slug
|
||||
@@ -56,7 +56,7 @@ export const Route = createFileRoute(
|
||||
{
|
||||
label: "Commits",
|
||||
link: linkOptions({
|
||||
to: "/projects/$projectId/secret-manager/commits/$environment/$folderId",
|
||||
to: "/projects/secret-management/$projectId/commits/$environment/$folderId",
|
||||
params: {
|
||||
projectId: params.projectId,
|
||||
environment: params.environment,
|
||||
@@ -70,7 +70,7 @@ export const Route = createFileRoute(
|
||||
{
|
||||
label: params.commitId,
|
||||
link: linkOptions({
|
||||
to: "/projects/$projectId/secret-manager/commits/$environment/$folderId/$commitId",
|
||||
to: "/projects/secret-management/$projectId/commits/$environment/$folderId/$commitId",
|
||||
params: {
|
||||
projectId: params.projectId,
|
||||
environment: params.environment,
|
||||
|
||||
@@ -12,7 +12,7 @@ const CommitDetailsPageQueryParamsSchema = z.object({
|
||||
});
|
||||
|
||||
export const Route = createFileRoute(
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/secret-manager/_secret-manager-layout/commits/$environment/$folderId/$commitId/"
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/commits/$environment/$folderId/$commitId/"
|
||||
)({
|
||||
component: CommitDetailsPage,
|
||||
validateSearch: zodValidator(CommitDetailsPageQueryParamsSchema),
|
||||
@@ -33,7 +33,7 @@ export const Route = createFileRoute(
|
||||
links: context.project.environments.map((el) => ({
|
||||
label: el.name,
|
||||
link: linkOptions({
|
||||
to: "/projects/$projectId/secret-manager/secrets/$envSlug",
|
||||
to: "/projects/secret-management/$projectId/secrets/$envSlug",
|
||||
params: {
|
||||
projectId: params.projectId,
|
||||
envSlug: el.slug
|
||||
@@ -56,7 +56,7 @@ export const Route = createFileRoute(
|
||||
{
|
||||
label: "Commits",
|
||||
link: linkOptions({
|
||||
to: "/projects/$projectId/secret-manager/commits/$environment/$folderId",
|
||||
to: "/projects/secret-management/$projectId/commits/$environment/$folderId",
|
||||
params: {
|
||||
projectId: params.projectId,
|
||||
environment: params.environment,
|
||||
|
||||
@@ -31,7 +31,7 @@ export const CommitsPage = () => {
|
||||
|
||||
const handleSelectCommit = (commitId: string) => {
|
||||
navigate({
|
||||
to: "/projects/$projectId/secret-manager/commits/$environment/$folderId/$commitId",
|
||||
to: "/projects/secret-management/$projectId/commits/$environment/$folderId/$commitId",
|
||||
params: {
|
||||
projectId: currentWorkspace.id,
|
||||
folderId,
|
||||
|
||||
@@ -13,7 +13,7 @@ const CommitsPageQueryParamsSchema = z.object({
|
||||
});
|
||||
|
||||
export const Route = createFileRoute(
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/secret-manager/_secret-manager-layout/commits/$environment/$folderId/"
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/commits/$environment/$folderId/"
|
||||
)({
|
||||
component: CommitsPage,
|
||||
validateSearch: zodValidator(CommitsPageQueryParamsSchema),
|
||||
@@ -34,7 +34,7 @@ export const Route = createFileRoute(
|
||||
links: context.project.environments.map((el) => ({
|
||||
label: el.name,
|
||||
link: linkOptions({
|
||||
to: "/projects/$projectId/secret-manager/secrets/$envSlug",
|
||||
to: "/projects/secret-management/$projectId/secrets/$envSlug",
|
||||
params: {
|
||||
projectId: params.projectId,
|
||||
envSlug: el.slug
|
||||
@@ -57,7 +57,7 @@ export const Route = createFileRoute(
|
||||
{
|
||||
label: "Commits",
|
||||
link: linkOptions({
|
||||
to: "/projects/$projectId/secret-manager/commits/$environment/$folderId",
|
||||
to: "/projects/secret-management/$projectId/commits/$environment/$folderId",
|
||||
params: {
|
||||
projectId: params.projectId,
|
||||
environment: params.environment,
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { createFileRoute } from "@tanstack/react-router";
|
||||
import { createFileRoute } from '@tanstack/react-router'
|
||||
|
||||
import { IPAllowListPage } from "./IPAllowlistPage";
|
||||
import { IPAllowListPage } from './IPAllowlistPage'
|
||||
|
||||
export const Route = createFileRoute(
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/secret-manager/_secret-manager-layout/allowlist"
|
||||
'/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/allowlist',
|
||||
)({
|
||||
component: () => IPAllowListPage
|
||||
});
|
||||
component: () => IPAllowListPage,
|
||||
})
|
||||
|
||||
@@ -5,7 +5,7 @@ import { IntegrationsListPageTabs } from "@app/types/integrations";
|
||||
import { IntegrationDetailsByIDPage } from "./IntegrationsDetailsByIDPage";
|
||||
|
||||
export const Route = createFileRoute(
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/secret-manager/_secret-manager-layout/integrations/$integrationId"
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/$integrationId"
|
||||
)({
|
||||
component: IntegrationDetailsByIDPage,
|
||||
beforeLoad: ({ context, params }) => {
|
||||
@@ -15,7 +15,7 @@ export const Route = createFileRoute(
|
||||
{
|
||||
label: "Integrations",
|
||||
link: linkOptions({
|
||||
to: "/projects/$projectId/secret-manager/integrations",
|
||||
to: "/projects/secret-management/$projectId/integrations",
|
||||
params,
|
||||
search: {
|
||||
selectedTab: IntegrationsListPageTabs.NativeIntegrations
|
||||
|
||||
+30
-30
@@ -42,7 +42,7 @@ export const redirectForProviderAuth = (
|
||||
switch (integrationOption.slug) {
|
||||
case "gcp-secret-manager":
|
||||
navigate({
|
||||
to: "/projects/$projectId/secret-manager/integrations/gcp-secret-manager/authorize",
|
||||
to: "/projects/secret-management/$projectId/integrations/gcp-secret-manager/authorize",
|
||||
params: {
|
||||
projectId
|
||||
}
|
||||
@@ -54,7 +54,7 @@ export const redirectForProviderAuth = (
|
||||
return;
|
||||
}
|
||||
navigate({
|
||||
to: "/projects/$projectId/secret-manager/integrations/azure-key-vault/authorize",
|
||||
to: "/projects/secret-management/$projectId/integrations/azure-key-vault/authorize",
|
||||
params: {
|
||||
projectId
|
||||
},
|
||||
@@ -76,7 +76,7 @@ export const redirectForProviderAuth = (
|
||||
}
|
||||
case "aws-parameter-store":
|
||||
navigate({
|
||||
to: "/projects/$projectId/secret-manager/integrations/aws-parameter-store/authorize",
|
||||
to: "/projects/secret-management/$projectId/integrations/aws-parameter-store/authorize",
|
||||
params: {
|
||||
projectId
|
||||
}
|
||||
@@ -84,7 +84,7 @@ export const redirectForProviderAuth = (
|
||||
break;
|
||||
case "aws-secret-manager":
|
||||
navigate({
|
||||
to: "/projects/$projectId/secret-manager/integrations/aws-secret-manager/authorize",
|
||||
to: "/projects/secret-management/$projectId/integrations/aws-secret-manager/authorize",
|
||||
params: {
|
||||
projectId
|
||||
}
|
||||
@@ -120,7 +120,7 @@ export const redirectForProviderAuth = (
|
||||
}
|
||||
case "github":
|
||||
navigate({
|
||||
to: "/projects/$projectId/secret-manager/integrations/github/auth-mode-selection",
|
||||
to: "/projects/secret-management/$projectId/integrations/github/auth-mode-selection",
|
||||
params: {
|
||||
projectId
|
||||
}
|
||||
@@ -128,7 +128,7 @@ export const redirectForProviderAuth = (
|
||||
break;
|
||||
case "gitlab":
|
||||
navigate({
|
||||
to: "/projects/$projectId/secret-manager/integrations/gitlab/authorize",
|
||||
to: "/projects/secret-management/$projectId/integrations/gitlab/authorize",
|
||||
params: {
|
||||
projectId
|
||||
}
|
||||
@@ -136,7 +136,7 @@ export const redirectForProviderAuth = (
|
||||
break;
|
||||
case "render":
|
||||
navigate({
|
||||
to: "/projects/$projectId/secret-manager/integrations/render/authorize",
|
||||
to: "/projects/secret-management/$projectId/integrations/render/authorize",
|
||||
params: {
|
||||
projectId
|
||||
}
|
||||
@@ -144,7 +144,7 @@ export const redirectForProviderAuth = (
|
||||
break;
|
||||
case "flyio":
|
||||
navigate({
|
||||
to: "/projects/$projectId/secret-manager/integrations/flyio/authorize",
|
||||
to: "/projects/secret-management/$projectId/integrations/flyio/authorize",
|
||||
params: {
|
||||
projectId
|
||||
}
|
||||
@@ -152,7 +152,7 @@ export const redirectForProviderAuth = (
|
||||
break;
|
||||
case "circleci":
|
||||
navigate({
|
||||
to: "/projects/$projectId/secret-manager/integrations/circleci/authorize",
|
||||
to: "/projects/secret-management/$projectId/integrations/circleci/authorize",
|
||||
params: {
|
||||
projectId
|
||||
}
|
||||
@@ -160,7 +160,7 @@ export const redirectForProviderAuth = (
|
||||
break;
|
||||
case "databricks":
|
||||
navigate({
|
||||
to: "/projects/$projectId/secret-manager/integrations/databricks/authorize",
|
||||
to: "/projects/secret-management/$projectId/integrations/databricks/authorize",
|
||||
params: {
|
||||
projectId
|
||||
}
|
||||
@@ -168,7 +168,7 @@ export const redirectForProviderAuth = (
|
||||
break;
|
||||
case "laravel-forge":
|
||||
navigate({
|
||||
to: "/projects/$projectId/secret-manager/integrations/laravel-forge/authorize",
|
||||
to: "/projects/secret-management/$projectId/integrations/laravel-forge/authorize",
|
||||
params: {
|
||||
projectId
|
||||
}
|
||||
@@ -176,7 +176,7 @@ export const redirectForProviderAuth = (
|
||||
break;
|
||||
case "travisci":
|
||||
navigate({
|
||||
to: "/projects/$projectId/secret-manager/integrations/travisci/authorize",
|
||||
to: "/projects/secret-management/$projectId/integrations/travisci/authorize",
|
||||
params: {
|
||||
projectId
|
||||
}
|
||||
@@ -184,7 +184,7 @@ export const redirectForProviderAuth = (
|
||||
break;
|
||||
case "supabase":
|
||||
navigate({
|
||||
to: "/projects/$projectId/secret-manager/integrations/supabase/authorize",
|
||||
to: "/projects/secret-management/$projectId/integrations/supabase/authorize",
|
||||
params: {
|
||||
projectId
|
||||
}
|
||||
@@ -192,7 +192,7 @@ export const redirectForProviderAuth = (
|
||||
break;
|
||||
case "checkly":
|
||||
navigate({
|
||||
to: "/projects/$projectId/secret-manager/integrations/checkly/authorize",
|
||||
to: "/projects/secret-management/$projectId/integrations/checkly/authorize",
|
||||
params: {
|
||||
projectId
|
||||
}
|
||||
@@ -200,7 +200,7 @@ export const redirectForProviderAuth = (
|
||||
break;
|
||||
case "qovery":
|
||||
navigate({
|
||||
to: "/projects/$projectId/secret-manager/integrations/qovery/authorize",
|
||||
to: "/projects/secret-management/$projectId/integrations/qovery/authorize",
|
||||
params: {
|
||||
projectId
|
||||
}
|
||||
@@ -208,7 +208,7 @@ export const redirectForProviderAuth = (
|
||||
break;
|
||||
case "railway":
|
||||
navigate({
|
||||
to: "/projects/$projectId/secret-manager/integrations/railway/authorize",
|
||||
to: "/projects/secret-management/$projectId/integrations/railway/authorize",
|
||||
params: {
|
||||
projectId
|
||||
}
|
||||
@@ -216,7 +216,7 @@ export const redirectForProviderAuth = (
|
||||
break;
|
||||
case "terraform-cloud":
|
||||
navigate({
|
||||
to: "/projects/$projectId/secret-manager/integrations/terraform-cloud/authorize",
|
||||
to: "/projects/secret-management/$projectId/integrations/terraform-cloud/authorize",
|
||||
params: {
|
||||
projectId
|
||||
}
|
||||
@@ -224,7 +224,7 @@ export const redirectForProviderAuth = (
|
||||
break;
|
||||
case "hashicorp-vault":
|
||||
navigate({
|
||||
to: "/projects/$projectId/secret-manager/integrations/hashicorp-vault/authorize",
|
||||
to: "/projects/secret-management/$projectId/integrations/hashicorp-vault/authorize",
|
||||
params: {
|
||||
projectId
|
||||
}
|
||||
@@ -232,7 +232,7 @@ export const redirectForProviderAuth = (
|
||||
break;
|
||||
case "cloudflare-pages":
|
||||
navigate({
|
||||
to: "/projects/$projectId/secret-manager/integrations/cloudflare-pages/authorize",
|
||||
to: "/projects/secret-management/$projectId/integrations/cloudflare-pages/authorize",
|
||||
params: {
|
||||
projectId
|
||||
}
|
||||
@@ -240,7 +240,7 @@ export const redirectForProviderAuth = (
|
||||
break;
|
||||
case "cloudflare-workers":
|
||||
navigate({
|
||||
to: "/projects/$projectId/secret-manager/integrations/cloudflare-workers/authorize",
|
||||
to: "/projects/secret-management/$projectId/integrations/cloudflare-workers/authorize",
|
||||
params: {
|
||||
projectId
|
||||
}
|
||||
@@ -257,7 +257,7 @@ export const redirectForProviderAuth = (
|
||||
}
|
||||
case "codefresh":
|
||||
navigate({
|
||||
to: "/projects/$projectId/secret-manager/integrations/codefresh/authorize",
|
||||
to: "/projects/secret-management/$projectId/integrations/codefresh/authorize",
|
||||
params: {
|
||||
projectId
|
||||
}
|
||||
@@ -265,7 +265,7 @@ export const redirectForProviderAuth = (
|
||||
break;
|
||||
case "digital-ocean-app-platform":
|
||||
navigate({
|
||||
to: "/projects/$projectId/secret-manager/integrations/digital-ocean-app-platform/authorize",
|
||||
to: "/projects/secret-management/$projectId/integrations/digital-ocean-app-platform/authorize",
|
||||
params: {
|
||||
projectId
|
||||
}
|
||||
@@ -273,7 +273,7 @@ export const redirectForProviderAuth = (
|
||||
break;
|
||||
case "cloud-66":
|
||||
navigate({
|
||||
to: "/projects/$projectId/secret-manager/integrations/cloud-66/authorize",
|
||||
to: "/projects/secret-management/$projectId/integrations/cloud-66/authorize",
|
||||
params: {
|
||||
projectId
|
||||
}
|
||||
@@ -281,7 +281,7 @@ export const redirectForProviderAuth = (
|
||||
break;
|
||||
case "northflank":
|
||||
navigate({
|
||||
to: "/projects/$projectId/secret-manager/integrations/northflank/authorize",
|
||||
to: "/projects/secret-management/$projectId/integrations/northflank/authorize",
|
||||
params: {
|
||||
projectId
|
||||
}
|
||||
@@ -289,7 +289,7 @@ export const redirectForProviderAuth = (
|
||||
break;
|
||||
case "windmill":
|
||||
navigate({
|
||||
to: "/projects/$projectId/secret-manager/integrations/windmill/authorize",
|
||||
to: "/projects/secret-management/$projectId/integrations/windmill/authorize",
|
||||
params: {
|
||||
projectId
|
||||
}
|
||||
@@ -297,7 +297,7 @@ export const redirectForProviderAuth = (
|
||||
break;
|
||||
case "teamcity":
|
||||
navigate({
|
||||
to: "/projects/$projectId/secret-manager/integrations/teamcity/authorize",
|
||||
to: "/projects/secret-management/$projectId/integrations/teamcity/authorize",
|
||||
params: {
|
||||
projectId
|
||||
}
|
||||
@@ -305,7 +305,7 @@ export const redirectForProviderAuth = (
|
||||
break;
|
||||
case "hasura-cloud":
|
||||
navigate({
|
||||
to: "/projects/$projectId/secret-manager/integrations/hasura-cloud/authorize",
|
||||
to: "/projects/secret-management/$projectId/integrations/hasura-cloud/authorize",
|
||||
params: {
|
||||
projectId
|
||||
}
|
||||
@@ -313,7 +313,7 @@ export const redirectForProviderAuth = (
|
||||
break;
|
||||
case "rundeck":
|
||||
navigate({
|
||||
to: "/projects/$projectId/secret-manager/integrations/rundeck/authorize",
|
||||
to: "/projects/secret-management/$projectId/integrations/rundeck/authorize",
|
||||
params: {
|
||||
projectId
|
||||
}
|
||||
@@ -321,7 +321,7 @@ export const redirectForProviderAuth = (
|
||||
break;
|
||||
case "azure-devops":
|
||||
navigate({
|
||||
to: "/projects/$projectId/secret-manager/integrations/azure-devops/authorize",
|
||||
to: "/projects/secret-management/$projectId/integrations/azure-devops/authorize",
|
||||
params: {
|
||||
projectId
|
||||
}
|
||||
@@ -329,7 +329,7 @@ export const redirectForProviderAuth = (
|
||||
break;
|
||||
case "octopus-deploy":
|
||||
navigate({
|
||||
to: "/projects/$projectId/secret-manager/integrations/octopus-deploy/authorize",
|
||||
to: "/projects/secret-management/$projectId/integrations/octopus-deploy/authorize",
|
||||
params: {
|
||||
projectId
|
||||
}
|
||||
|
||||
+1
-1
@@ -59,7 +59,7 @@ export const IntegrationRow = ({
|
||||
<Tr
|
||||
onClick={() =>
|
||||
navigate({
|
||||
to: "/projects/$projectId/secret-manager/integrations/$integrationId",
|
||||
to: "/projects/secret-management/$projectId/integrations/$integrationId",
|
||||
params: {
|
||||
integrationId: integration.id,
|
||||
projectId: currentWorkspace.id
|
||||
|
||||
@@ -21,7 +21,7 @@ const IntegrationsListPageQuerySchema = z.object({
|
||||
});
|
||||
|
||||
export const Route = createFileRoute(
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/secret-manager/_secret-manager-layout/integrations/"
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/"
|
||||
)({
|
||||
component: IntegrationsListPage,
|
||||
validateSearch: zodValidator(IntegrationsListPageQuerySchema),
|
||||
@@ -36,7 +36,7 @@ export const Route = createFileRoute(
|
||||
});
|
||||
} catch {
|
||||
throw redirect({
|
||||
to: "/projects/$projectId/secret-manager/integrations",
|
||||
to: "/projects/secret-management/$projectId/integrations",
|
||||
params: {
|
||||
projectId
|
||||
},
|
||||
@@ -46,7 +46,7 @@ export const Route = createFileRoute(
|
||||
|
||||
if (secretSyncs.length) {
|
||||
throw redirect({
|
||||
to: "/projects/$projectId/secret-manager/integrations",
|
||||
to: "/projects/secret-management/$projectId/integrations",
|
||||
params: {
|
||||
projectId
|
||||
},
|
||||
@@ -62,7 +62,7 @@ export const Route = createFileRoute(
|
||||
});
|
||||
} catch {
|
||||
throw redirect({
|
||||
to: "/projects/$projectId/secret-manager/integrations",
|
||||
to: "/projects/secret-management/$projectId/integrations",
|
||||
params: {
|
||||
projectId
|
||||
},
|
||||
@@ -72,7 +72,7 @@ export const Route = createFileRoute(
|
||||
|
||||
if (integrations.length) {
|
||||
throw redirect({
|
||||
to: "/projects/$projectId/secret-manager/integrations",
|
||||
to: "/projects/secret-management/$projectId/integrations",
|
||||
params: {
|
||||
projectId
|
||||
},
|
||||
@@ -81,7 +81,7 @@ export const Route = createFileRoute(
|
||||
}
|
||||
|
||||
throw redirect({
|
||||
to: "/projects/$projectId/secret-manager/integrations",
|
||||
to: "/projects/secret-management/$projectId/integrations",
|
||||
params: {
|
||||
projectId
|
||||
},
|
||||
|
||||
@@ -667,7 +667,7 @@ export const OverviewPage = () => {
|
||||
const envIndex = visibleEnvs.findIndex((el) => slug === el.slug);
|
||||
if (envIndex !== -1) {
|
||||
navigate({
|
||||
to: "/projects/$projectId/secret-manager/secrets/$envSlug",
|
||||
to: "/projects/secret-management/$projectId/secrets/$envSlug",
|
||||
params: {
|
||||
projectId: workspaceId,
|
||||
envSlug: slug
|
||||
@@ -1420,7 +1420,7 @@ export const OverviewPage = () => {
|
||||
iconSize="3x"
|
||||
>
|
||||
<Link
|
||||
to="/projects/$projectId/secret-manager/settings"
|
||||
to="/projects/secret-management/$projectId/settings"
|
||||
params={{
|
||||
projectId: workspaceId
|
||||
}}
|
||||
|
||||
+1
-1
@@ -9,7 +9,7 @@ type Props = {
|
||||
|
||||
export const FolderBreadCrumbs = ({ secretPath = "/", onResetSearch }: Props) => {
|
||||
const navigate = useNavigate({
|
||||
from: "/projects/$projectId/secret-manager/overview"
|
||||
from: "/projects/secret-management/$projectId/overview"
|
||||
});
|
||||
|
||||
const onFolderCrumbClick = (index: number) => {
|
||||
|
||||
+1
-1
@@ -17,7 +17,7 @@ export const QuickSearchDynamicSecretItem = ({
|
||||
onClose
|
||||
}: Props) => {
|
||||
const navigate = useNavigate({
|
||||
from: "/projects/$projectId/secret-manager/overview"
|
||||
from: "/projects/secret-management/$projectId/overview"
|
||||
});
|
||||
|
||||
const [groupDynamicSecret] = dynamicSecretGroup;
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@ type Props = {
|
||||
|
||||
export const QuickSearchFolderItem = ({ folderGroup, onClose }: Props) => {
|
||||
const navigate = useNavigate({
|
||||
from: "/projects/$projectId/secret-manager/overview"
|
||||
from: "/projects/secret-management/$projectId/overview"
|
||||
});
|
||||
|
||||
const [groupFolder] = folderGroup;
|
||||
|
||||
+1
-1
@@ -46,7 +46,7 @@ export const QuickSearchSecretItem = ({
|
||||
isSingleEnv,
|
||||
search
|
||||
}: Props) => {
|
||||
const navigate = useNavigate({ from: "/projects/$projectId/secret-manager/overview" });
|
||||
const navigate = useNavigate({ from: "/projects/secret-management/$projectId/overview" });
|
||||
const envSlugMap = new Map(environments.map((env) => [env.slug, env]));
|
||||
const [isUrlCopied, , setIsUrlCopied] = useTimedReset<boolean>({
|
||||
initialState: false
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@ type Props = {
|
||||
|
||||
export const QuickSearchSecretRotationItem = ({ secretRotationGroup, onClose }: Props) => {
|
||||
const navigate = useNavigate({
|
||||
from: "/projects/$projectId/secret-manager/overview"
|
||||
from: "/projects/secret-management/$projectId/overview"
|
||||
});
|
||||
|
||||
const [groupSecretRotation] = secretRotationGroup;
|
||||
|
||||
@@ -10,7 +10,7 @@ const SecretOverviewPageQuerySchema = z.object({
|
||||
});
|
||||
|
||||
export const Route = createFileRoute(
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/secret-manager/_secret-manager-layout/overview"
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/overview"
|
||||
)({
|
||||
component: OverviewPage,
|
||||
validateSearch: zodValidator(SecretOverviewPageQuerySchema),
|
||||
@@ -24,7 +24,7 @@ export const Route = createFileRoute(
|
||||
{
|
||||
label: "Secrets",
|
||||
link: linkOptions({
|
||||
to: "/projects/$projectId/secret-manager/overview",
|
||||
to: "/projects/secret-management/$projectId/overview",
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
import { createFileRoute } from "@tanstack/react-router";
|
||||
import { zodValidator } from "@tanstack/zod-adapter";
|
||||
import { z } from "zod";
|
||||
import { createFileRoute } from '@tanstack/react-router'
|
||||
import { zodValidator } from '@tanstack/zod-adapter'
|
||||
import { z } from 'zod'
|
||||
|
||||
import { SecretApprovalsPage } from "./SecretApprovalsPage";
|
||||
import { SecretApprovalsPage } from './SecretApprovalsPage'
|
||||
|
||||
const SecretApprovalPageQueryParams = z.object({
|
||||
requestId: z.string().catch("")
|
||||
});
|
||||
requestId: z.string().catch(''),
|
||||
})
|
||||
|
||||
export const Route = createFileRoute(
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/secret-manager/_secret-manager-layout/approval"
|
||||
'/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/approval',
|
||||
)({
|
||||
component: SecretApprovalsPage,
|
||||
validateSearch: zodValidator(SecretApprovalPageQueryParams),
|
||||
@@ -18,9 +18,9 @@ export const Route = createFileRoute(
|
||||
breadcrumbs: [
|
||||
...context.breadcrumbs,
|
||||
{
|
||||
label: "Approvals"
|
||||
}
|
||||
]
|
||||
};
|
||||
}
|
||||
});
|
||||
label: 'Approvals',
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
@@ -234,7 +234,7 @@ const Page = () => {
|
||||
type: "error"
|
||||
});
|
||||
navigate({
|
||||
to: "/projects/$projectId/secret-manager/overview",
|
||||
to: "/projects/secret-management/$projectId/overview",
|
||||
params: {
|
||||
projectId: workspaceId
|
||||
}
|
||||
@@ -386,7 +386,7 @@ const Page = () => {
|
||||
const handleOnClickRollbackMode = () => {
|
||||
if (isPITEnabled) {
|
||||
navigate({
|
||||
to: "/projects/$projectId/secret-manager/commits/$environment/$folderId",
|
||||
to: "/projects/secret-management/$projectId/commits/$environment/$folderId",
|
||||
params: {
|
||||
projectId: workspaceId,
|
||||
folderId,
|
||||
|
||||
+7
-2
@@ -64,6 +64,7 @@ import { camelCaseToSpaces } from "@app/lib/fn/string";
|
||||
import { CreateReminderForm } from "./CreateReminderForm";
|
||||
import { HIDDEN_SECRET_VALUE } from "./SecretItem";
|
||||
import { formSchema, SecretActionType, TFormSchema } from "./SecretListView.utils";
|
||||
import { getProjectBaseURL } from "@app/helpers/project";
|
||||
|
||||
type Props = {
|
||||
isOpen?: boolean;
|
||||
@@ -990,7 +991,9 @@ export const SecretDetailSidebar = ({
|
||||
className="z-[100] capitalize"
|
||||
>
|
||||
<Link
|
||||
to="/projects/$projectId/members/$membershipId"
|
||||
to={
|
||||
`${getProjectBaseURL(currentWorkspace.type)}/members/$membershipId` as const
|
||||
}
|
||||
params={{
|
||||
projectId: currentWorkspace.id,
|
||||
membershipId: user.membershipId
|
||||
@@ -1021,7 +1024,9 @@ export const SecretDetailSidebar = ({
|
||||
className="z-[100]"
|
||||
>
|
||||
<Link
|
||||
to="/projects/$projectId/identities/$identityId"
|
||||
to={
|
||||
`${getProjectBaseURL(currentWorkspace.type)}/identities/$identityId` as const
|
||||
}
|
||||
params={{
|
||||
projectId: currentWorkspace.id,
|
||||
identityId: identity.id
|
||||
|
||||
@@ -13,7 +13,7 @@ const SecretDashboardPageQueryParamsSchema = z.object({
|
||||
tags: z.string().catch("")
|
||||
});
|
||||
export const Route = createFileRoute(
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/secret-manager/_secret-manager-layout/secrets/$envSlug"
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/secrets/$envSlug"
|
||||
)({
|
||||
component: SecretDashboardPage,
|
||||
validateSearch: zodValidator(SecretDashboardPageQueryParamsSchema),
|
||||
@@ -28,7 +28,7 @@ export const Route = createFileRoute(
|
||||
{
|
||||
label: "Secrets",
|
||||
link: linkOptions({
|
||||
to: "/projects/$projectId/secret-manager/overview",
|
||||
to: "/projects/secret-management/$projectId/overview",
|
||||
params
|
||||
})
|
||||
},
|
||||
@@ -39,7 +39,7 @@ export const Route = createFileRoute(
|
||||
links: context.project.environments.map((el) => ({
|
||||
label: el.name,
|
||||
link: linkOptions({
|
||||
to: "/projects/$projectId/secret-manager/secrets/$envSlug",
|
||||
to: "/projects/secret-management/$projectId/secrets/$envSlug",
|
||||
params: {
|
||||
projectId: params.projectId,
|
||||
envSlug: el.slug
|
||||
|
||||
@@ -172,7 +172,7 @@ const Page = () => {
|
||||
PostgreSQL and Microsoft SQL Server Rotations can now be created from the{" "}
|
||||
<Link
|
||||
className="text-mineshaft-100 underline decoration-primary underline-offset-2 hover:text-mineshaft-200"
|
||||
to="/projects/$projectId/secret-manager/overview"
|
||||
to="/projects/secret-management/$projectId/overview"
|
||||
params={{ projectId: currentWorkspace.id }}
|
||||
>
|
||||
Secret Manager Dashboard
|
||||
@@ -407,7 +407,7 @@ const Page = () => {
|
||||
Infisical is revamping its Secret Rotation experience. Navigate to the{" "}
|
||||
<Link
|
||||
className="text-mineshaft-100 underline decoration-primary underline-offset-2 hover:text-mineshaft-200"
|
||||
to="/projects/$projectId/secret-manager/overview"
|
||||
to="/projects/secret-management/$projectId/overview"
|
||||
params={{ projectId: currentWorkspace.id }}
|
||||
>
|
||||
Secret Manager Dashboard
|
||||
@@ -424,7 +424,7 @@ const Page = () => {
|
||||
<Button
|
||||
onClick={() =>
|
||||
navigate({
|
||||
to: "/projects/$projectId/secret-manager/overview",
|
||||
to: "/projects/secret-management/$projectId/overview",
|
||||
params: { projectId: currentWorkspace.id }
|
||||
})
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { createFileRoute } from "@tanstack/react-router";
|
||||
import { createFileRoute } from '@tanstack/react-router'
|
||||
|
||||
import { SecretRotationPage } from "./SecretRotationPage";
|
||||
import { SecretRotationPage } from './SecretRotationPage'
|
||||
|
||||
export const Route = createFileRoute(
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/secret-manager/_secret-manager-layout/secret-rotation"
|
||||
'/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/secret-rotation',
|
||||
)({
|
||||
component: SecretRotationPage,
|
||||
beforeLoad: ({ context }) => {
|
||||
@@ -11,9 +11,9 @@ export const Route = createFileRoute(
|
||||
breadcrumbs: [
|
||||
...context.breadcrumbs,
|
||||
{
|
||||
label: "Secret Rotation"
|
||||
}
|
||||
]
|
||||
};
|
||||
}
|
||||
});
|
||||
label: 'Secret Rotation',
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
@@ -5,7 +5,7 @@ import { IntegrationsListPageTabs } from "@app/types/integrations";
|
||||
import { SecretSyncDetailsByIDPage } from "./SecretSyncDetailsByIDPage";
|
||||
|
||||
export const Route = createFileRoute(
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/secret-manager/_secret-manager-layout/integrations/secret-syncs/$destination/$syncId"
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/secret-syncs/$destination/$syncId"
|
||||
)({
|
||||
component: SecretSyncDetailsByIDPage,
|
||||
beforeLoad: ({ context, params }) => {
|
||||
@@ -15,7 +15,7 @@ export const Route = createFileRoute(
|
||||
{
|
||||
label: "Integrations",
|
||||
link: linkOptions({
|
||||
to: "/projects/$projectId/secret-manager/integrations",
|
||||
to: "/projects/secret-management/$projectId/integrations",
|
||||
params,
|
||||
search: {
|
||||
selectedTab: IntegrationsListPageTabs.SecretSyncs
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { createFileRoute } from "@tanstack/react-router";
|
||||
import { createFileRoute } from '@tanstack/react-router'
|
||||
|
||||
import { SettingsPage } from "./SettingsPage";
|
||||
import { SettingsPage } from './SettingsPage'
|
||||
|
||||
export const Route = createFileRoute(
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/secret-manager/_secret-manager-layout/settings"
|
||||
'/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/settings',
|
||||
)({
|
||||
component: SettingsPage,
|
||||
beforeLoad: ({ context }) => {
|
||||
@@ -11,9 +11,9 @@ export const Route = createFileRoute(
|
||||
breadcrumbs: [
|
||||
...context.breadcrumbs,
|
||||
{
|
||||
label: "Settings"
|
||||
}
|
||||
]
|
||||
};
|
||||
}
|
||||
});
|
||||
label: 'Settings',
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
+1
-1
@@ -68,7 +68,7 @@ export const AWSParameterStoreAuthorizeIntegrationPage = () => {
|
||||
});
|
||||
|
||||
navigate({
|
||||
to: "/projects/$projectId/secret-manager/integrations/aws-parameter-store/create",
|
||||
to: "/projects/secret-management/$projectId/integrations/aws-parameter-store/create",
|
||||
params: {
|
||||
projectId: currentWorkspace.id
|
||||
},
|
||||
|
||||
+2
-2
@@ -5,7 +5,7 @@ import { IntegrationsListPageTabs } from "@app/types/integrations";
|
||||
import { AWSParameterStoreAuthorizeIntegrationPage } from "./AwsParameterStoreAuthorizePage";
|
||||
|
||||
export const Route = createFileRoute(
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/secret-manager/_secret-manager-layout/integrations/aws-parameter-store/authorize"
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/aws-parameter-store/authorize"
|
||||
)({
|
||||
component: AWSParameterStoreAuthorizeIntegrationPage,
|
||||
beforeLoad: ({ context, params }) => {
|
||||
@@ -15,7 +15,7 @@ export const Route = createFileRoute(
|
||||
{
|
||||
label: "Integrations",
|
||||
link: linkOptions({
|
||||
to: "/projects/$projectId/secret-manager/integrations",
|
||||
to: "/projects/secret-management/$projectId/integrations",
|
||||
params,
|
||||
search: {
|
||||
selectedTab: IntegrationsListPageTabs.NativeIntegrations
|
||||
|
||||
+1
-1
@@ -156,7 +156,7 @@ export const AWSParameterStoreConfigurePage = () => {
|
||||
setPathErrorText("");
|
||||
|
||||
navigate({
|
||||
to: "/projects/$projectId/secret-manager/integrations",
|
||||
to: "/projects/secret-management/$projectId/integrations",
|
||||
params: {
|
||||
projectId: currentWorkspace.id
|
||||
},
|
||||
|
||||
+2
-2
@@ -11,7 +11,7 @@ const AwsParameterStoreConfigurePageQueryParamsSchema = z.object({
|
||||
});
|
||||
|
||||
export const Route = createFileRoute(
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/secret-manager/_secret-manager-layout/integrations/aws-parameter-store/create"
|
||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/aws-parameter-store/create"
|
||||
)({
|
||||
component: AWSParameterStoreConfigurePage,
|
||||
validateSearch: zodValidator(AwsParameterStoreConfigurePageQueryParamsSchema),
|
||||
@@ -22,7 +22,7 @@ export const Route = createFileRoute(
|
||||
{
|
||||
label: "Integrations",
|
||||
link: linkOptions({
|
||||
to: "/projects/$projectId/secret-manager/integrations",
|
||||
to: "/projects/secret-management/$projectId/integrations",
|
||||
params,
|
||||
search: {
|
||||
selectedTab: IntegrationsListPageTabs.NativeIntegrations
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user