feat: added org route

This commit is contained in:
=
2024-12-27 16:00:05 +05:30
parent 7002e297c8
commit 1f2d52176c
70 changed files with 1123 additions and 1445 deletions

View File

@@ -2,6 +2,6 @@ import { createFileRoute } from "@tanstack/react-router";
import { LoginLdapPage } from "./LoginLDAPPage";
export const Route = createFileRoute("/_restrict-login-signup/login/ldap/")({
export const Route = createFileRoute("/_restrict-login-signup/login/ldap")({
component: LoginLdapPage
});

View File

@@ -1,7 +1,7 @@
import { createFileRoute } from "@tanstack/react-router";
import { createFileRoute } from '@tanstack/react-router'
import { LoginPage } from "./LoginPage";
import { LoginPage } from './LoginPage'
export const Route = createFileRoute("/_restrict-login-signup/login/")({
component: LoginPage
});
export const Route = createFileRoute('/_restrict-login-signup/login/')({
component: LoginPage,
})

View File

@@ -8,7 +8,7 @@ const LoginSSOQueryParamsSchema = z.object({
token: z.string()
});
export const Route = createFileRoute("/_restrict-login-signup/login/sso/")({
export const Route = createFileRoute("/_restrict-login-signup/login/sso")({
component: LoginSsoPage,
validateSearch: zodValidator(LoginSSOQueryParamsSchema)
});

View File

@@ -1,7 +1,9 @@
import { createFileRoute } from "@tanstack/react-router";
import { createFileRoute } from '@tanstack/react-router'
import { LoginProviderErrorPage } from "./ProviderErrorPage";
import { LoginProviderErrorPage } from './ProviderErrorPage'
export const Route = createFileRoute("/_restrict-login-signup/login/provider/error")({
component: LoginProviderErrorPage
});
export const Route = createFileRoute(
'/_restrict-login-signup/login/provider/error',
)({
component: LoginProviderErrorPage,
})

View File

@@ -1,14 +1,16 @@
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 { LoginProviderSuccessPage } from "./ProviderSuccessPage";
import { LoginProviderSuccessPage } from './ProviderSuccessPage'
const LoginProviderSuccessQuerySchema = z.object({
token: z.string()
});
token: z.string(),
})
export const Route = createFileRoute("/_restrict-login-signup/login/provider/success")({
export const Route = createFileRoute(
'/_restrict-login-signup/login/provider/success',
)({
component: LoginProviderSuccessPage,
validateSearch: zodValidator(LoginProviderSuccessQuerySchema)
});
validateSearch: zodValidator(LoginProviderSuccessQuerySchema),
})

View File

@@ -1,7 +1,9 @@
import { createFileRoute } from "@tanstack/react-router";
import { createFileRoute } from '@tanstack/react-router'
import { SelectOrganizationPage } from "./SelectOrgPage";
import { SelectOrganizationPage } from './SelectOrgPage'
export const Route = createFileRoute("/_restrict-login-signup/login/select-organization/")({
component: SelectOrganizationPage
});
export const Route = createFileRoute(
'/_restrict-login-signup/login/select-organization',
)({
component: SelectOrganizationPage,
})

View File

@@ -1,14 +1,14 @@
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 { SignupSsoPage } from "./SignUpSsoPage";
import { SignupSsoPage } from './SignUpSsoPage'
const SignupSSOPageQueryParamsSchema = z.object({
token: z.string()
});
token: z.string(),
})
export const Route = createFileRoute("/_restrict-login-signup/signup/sso/")({
export const Route = createFileRoute('/_restrict-login-signup/signup/sso')({
component: SignupSsoPage,
validateSearch: zodValidator(SignupSSOPageQueryParamsSchema)
});
validateSearch: zodValidator(SignupSSOPageQueryParamsSchema),
})

View File

@@ -0,0 +1,9 @@
import { createFileRoute, redirect } from "@tanstack/react-router";
export const Route = createFileRoute("/")({
beforeLoad: () => {
throw redirect({
to: "/login"
});
}
});

View File

@@ -1,27 +1,36 @@
import { createFileRoute } from "@tanstack/react-router";
import { createFileRoute } from '@tanstack/react-router'
import { fetchOrganizationById, organizationKeys } from "@app/hooks/api/organization/queries";
import { fetchUserOrgPermissions, roleQueryKeys } from "@app/hooks/api/roles/queries";
import { fetchOrgSubscription, subscriptionQueryKeys } from "@app/hooks/api/subscriptions/queries";
import {
fetchOrganizationById,
organizationKeys,
} from '@app/hooks/api/organization/queries'
import {
fetchUserOrgPermissions,
roleQueryKeys,
} from '@app/hooks/api/roles/queries'
import {
fetchOrgSubscription,
subscriptionQueryKeys,
} from '@app/hooks/api/subscriptions/queries'
// Route context to fill in organization's data like details, subscription etc
export const Route = createFileRoute("/_authenticate/_ctx-org-details")({
export const Route = createFileRoute('/_authenticate/_inject-org-details')({
beforeLoad: async ({ context }) => {
const organizationId = context.organizationId!;
const organizationId = context.organizationId!
await context.queryClient.ensureQueryData({
queryKey: organizationKeys.getOrgById(organizationId),
queryFn: () => fetchOrganizationById(organizationId)
});
queryFn: () => fetchOrganizationById(organizationId),
})
await context.queryClient.ensureQueryData({
queryKey: subscriptionQueryKeys.getOrgSubsription(organizationId),
queryFn: () => fetchOrgSubscription(organizationId)
});
queryFn: () => fetchOrgSubscription(organizationId),
})
await context.queryClient.ensureQueryData({
queryKey: roleQueryKeys.getUserOrgPermissions({ orgId: organizationId }),
queryFn: () => fetchUserOrgPermissions({ orgId: organizationId })
});
return { organizationId };
}
});
queryFn: () => fetchUserOrgPermissions({ orgId: organizationId }),
})
return { organizationId }
},
})

View File

@@ -5,7 +5,7 @@ import { setAuthToken } from "@app/hooks/api/reactQuery";
import { ProjectType } from "@app/hooks/api/workspace/types";
export const Route = createFileRoute("/_restrict-login-signup")({
beforeLoad: async ({ context }) => {
beforeLoad: async ({ context, location }) => {
const data = await context.queryClient
.fetchQuery({
queryKey: authKeys.getAuthToken,
@@ -18,6 +18,7 @@ export const Route = createFileRoute("/_restrict-login-signup")({
setAuthToken(data.token);
if (!data.organizationId) {
if (location.pathname.endsWith("select-organization")) return;
throw redirect({ to: "/login/select-organization" });
}
throw redirect({

View File

@@ -1,19 +0,0 @@
import { createFileRoute } from "@tanstack/react-router";
import { zodValidator } from "@tanstack/zod-adapter";
import { z } from "zod";
import { OrgAccessControlTabSections } from "@app/types/org";
import { AccessControlPage } from "./AccessControlPage";
const AccessControlPageQuerySchema = z.object({
selectedTab: z.string().catch(OrgAccessControlTabSections.Member),
action: z.string().catch("")
});
export const Route = createFileRoute(
"/_authenticate/_ctx-org-details/organization/_layout-org/members/"
)({
component: AccessControlPage,
validateSearch: zodValidator(AccessControlPageQuerySchema)
});

View File

@@ -9,7 +9,7 @@ import { OrgAccessControlTabSections } from "@app/types/org";
import { OrgGroupsTab, OrgIdentityTab, OrgMembersTab, OrgRoleTabSection } from "./components";
export const AccessControlPage = () => {
export const AccessManagementPage = () => {
const { t } = useTranslation();
const { permission } = useOrgPermission();
const navigate = useNavigate({

View File

@@ -0,0 +1,19 @@
import { createFileRoute } from '@tanstack/react-router'
import { zodValidator } from '@tanstack/zod-adapter'
import { z } from 'zod'
import { OrgAccessControlTabSections } from '@app/types/org'
import { AccessManagementPage } from './AccessManagementPage'
const AccessControlPageQuerySchema = z.object({
selectedTab: z.string().catch(OrgAccessControlTabSections.Member),
action: z.string().catch(''),
})
export const Route = createFileRoute(
'/_authenticate/_inject-org-details/organization/_layout/access-management',
)({
component: AccessManagementPage,
validateSearch: zodValidator(AccessControlPageQuerySchema),
})

View File

@@ -1,9 +1,9 @@
import { createFileRoute } from "@tanstack/react-router";
import { createFileRoute } from '@tanstack/react-router'
import { AdminPage } from "./AdminPage";
import { AdminPage } from './AdminPage'
export const Route = createFileRoute(
"/_authenticate/_ctx-org-details/organization/_layout-org/admin/"
'/_authenticate/_inject-org-details/organization/_layout/admin',
)({
component: AdminPage
});
component: AdminPage,
})

View File

@@ -1,9 +1,9 @@
import { createFileRoute } from "@tanstack/react-router";
import { createFileRoute } from '@tanstack/react-router'
import { AuditLogsPage } from "./AuditLogsPage";
import { AuditLogsPage } from './AuditLogsPage'
export const Route = createFileRoute(
"/_authenticate/_ctx-org-details/organization/_layout-org/audit-logs/"
'/_authenticate/_inject-org-details/organization/_layout/audit-logs',
)({
component: AuditLogsPage
});
component: AuditLogsPage,
})

View File

@@ -1,9 +1,9 @@
import { createFileRoute } from "@tanstack/react-router";
import { createFileRoute } from '@tanstack/react-router'
import { BillingPage } from "./BillingPage";
import { BillingPage } from './BillingPage'
export const Route = createFileRoute(
"/_authenticate/_ctx-org-details/organization/_layout-org/billing/"
'/_authenticate/_inject-org-details/organization/_layout/billing',
)({
component: BillingPage
});
component: BillingPage,
})

View File

@@ -1,9 +1,9 @@
import { createFileRoute } from "@tanstack/react-router";
import { createFileRoute } from '@tanstack/react-router'
import { CertManagerOverviewPage } from "./CertManagerOverviewPage";
import { CertManagerOverviewPage } from './CertManagerOverviewPage'
export const Route = createFileRoute(
"/_authenticate/_ctx-org-details/organization/_layout-org/cert-manager/overview"
'/_authenticate/_inject-org-details/organization/_layout/cert-manager/overview',
)({
component: CertManagerOverviewPage
});
component: CertManagerOverviewPage,
})

View File

@@ -1,9 +1,9 @@
import { createFileRoute } from "@tanstack/react-router";
import { createFileRoute } from '@tanstack/react-router'
import { GroupDetailsByIDPage } from "./GroupDetailsByIDPage";
import { GroupDetailsByIDPage } from './GroupDetailsByIDPage'
export const Route = createFileRoute(
"/_authenticate/_ctx-org-details/organization/_layout-org/groups/$groupId/"
'/_authenticate/_inject-org-details/organization/_layout/groups/$groupId',
)({
component: GroupDetailsByIDPage
});
component: GroupDetailsByIDPage,
})

View File

@@ -1,9 +1,9 @@
import { createFileRoute } from "@tanstack/react-router";
import { createFileRoute } from '@tanstack/react-router'
import { IdentityDetailsByIDPage } from "./IdentityDetailsByIDPage";
import { IdentityDetailsByIDPage } from './IdentityDetailsByIDPage'
export const Route = createFileRoute(
"/_authenticate/_ctx-org-details/organization/_layout-org/identities/$identityId/"
'/_authenticate/_inject-org-details/organization/_layout/identities/$identityId',
)({
component: IdentityDetailsByIDPage
});
component: IdentityDetailsByIDPage,
})

View File

@@ -1,9 +1,9 @@
import { createFileRoute } from "@tanstack/react-router";
import { createFileRoute } from '@tanstack/react-router'
import { KmsOverviewPage } from "./KmsOverviewPage";
import { KmsOverviewPage } from './KmsOverviewPage'
export const Route = createFileRoute(
"/_authenticate/_ctx-org-details/organization/_layout-org/kms/overview"
'/_authenticate/_inject-org-details/organization/_layout/kms/overview',
)({
component: KmsOverviewPage
});
component: KmsOverviewPage,
})

View File

@@ -1,8 +1,8 @@
import { createFileRoute } from "@tanstack/react-router";
import { NoOrgPage } from "./NoOrgPage";
import { createFileRoute } from '@tanstack/react-router'
import { NoOrgPage } from './NoOrgPage'
export const Route = createFileRoute(
"/_authenticate/_ctx-org-details/organization/_layout-org/none/"
'/_authenticate/_inject-org-details/organization/_layout/none',
)({
component: NoOrgPage
});
component: NoOrgPage,
})

View File

@@ -1,9 +1,9 @@
import { createFileRoute } from "@tanstack/react-router";
import { createFileRoute } from '@tanstack/react-router'
import { RoleByIDPage } from "./RoleByIDPage";
import { RoleByIDPage } from './RoleByIDPage'
export const Route = createFileRoute(
"/_authenticate/_ctx-org-details/organization/_layout-org/roles/$roleId/"
'/_authenticate/_inject-org-details/organization/_layout/roles/$roleId',
)({
component: RoleByIDPage
});
component: RoleByIDPage,
})

View File

@@ -1,9 +1,9 @@
import { createFileRoute } from "@tanstack/react-router";
import { createFileRoute } from '@tanstack/react-router'
import { SecretManagerOverviewPage } from "./SecretManagerOverviewPage";
import { SecretManagerOverviewPage } from './SecretManagerOverviewPage'
export const Route = createFileRoute(
"/_authenticate/_ctx-org-details/organization/_layout-org/secret-manager/overview"
'/_authenticate/_inject-org-details/organization/_layout/secret-manager/overview',
)({
component: SecretManagerOverviewPage
});
component: SecretManagerOverviewPage,
})

View File

@@ -1,17 +1,17 @@
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 { SecretScanningPage } from "./SecretScanningPage";
import { SecretScanningPage } from './SecretScanningPage'
const SecretScanningQueryParams = z.object({
state: z.string().catch(""),
installation_id: z.string().catch("")
});
state: z.string().catch(''),
installation_id: z.string().catch(''),
})
export const Route = createFileRoute(
"/_authenticate/_ctx-org-details/organization/_layout-org/secret-scanning/"
'/_authenticate/_inject-org-details/organization/_layout/secret-scanning',
)({
component: SecretScanningPage,
validateSearch: zodValidator(SecretScanningQueryParams)
});
validateSearch: zodValidator(SecretScanningQueryParams),
})

View File

@@ -1,9 +1,9 @@
import { createFileRoute } from "@tanstack/react-router";
import { createFileRoute } from '@tanstack/react-router'
import { SecretSharingPage } from "./SecretSharingPage";
import { SecretSharingPage } from './SecretSharingPage'
export const Route = createFileRoute(
"/_authenticate/_ctx-org-details/organization/_layout-org/secret-sharing/"
'/_authenticate/_inject-org-details/organization/_layout/secret-sharing',
)({
component: SecretSharingPage
});
component: SecretSharingPage,
})

View File

@@ -1,16 +1,16 @@
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 { SettingsPage } from "./SettingsPage";
import { SettingsPage } from './SettingsPage'
const SettingsPageQueryParams = z.object({
selectedTab: z.string().catch("")
});
selectedTab: z.string().catch(''),
})
export const Route = createFileRoute(
"/_authenticate/_ctx-org-details/organization/_layout-org/settings/"
'/_authenticate/_inject-org-details/organization/_layout/settings',
)({
component: SettingsPage,
validateSearch: zodValidator(SettingsPageQueryParams)
});
validateSearch: zodValidator(SettingsPageQueryParams),
})

View File

@@ -1,9 +1,9 @@
import { createFileRoute } from "@tanstack/react-router";
import { createFileRoute } from '@tanstack/react-router'
import { UserDetailsByIDPage } from "./UserDetailsByIDPage";
import { UserDetailsByIDPage } from './UserDetailsByIDPage'
export const Route = createFileRoute(
"/_authenticate/_ctx-org-details/organization/_layout-org/memberships/$membershipId/"
'/_authenticate/_inject-org-details/organization/_layout/members/$membershipId',
)({
component: UserDetailsByIDPage
});
component: UserDetailsByIDPage,
})

View File

@@ -1,7 +1,9 @@
import { createFileRoute } from "@tanstack/react-router";
import { createFileRoute } from '@tanstack/react-router'
import { OrganizationLayout } from "@app/layouts/OrganizationLayout";
import { OrganizationLayout } from '@app/layouts/OrganizationLayout'
export const Route = createFileRoute("/_authenticate/_ctx-org-details/organization/_layout-org")({
component: OrganizationLayout
});
export const Route = createFileRoute(
'/_authenticate/_inject-org-details/organization/_layout',
)({
component: OrganizationLayout,
})

View File

@@ -1,9 +1,9 @@
import { createFileRoute } from "@tanstack/react-router";
import { createFileRoute } from '@tanstack/react-router'
import { PersonalSettingsPage } from "./PersonalSettingsPage";
import { PersonalSettingsPage } from './PersonalSettingsPage'
export const Route = createFileRoute("/_authenticate/personal-settings/_personal-settings-layout/")(
{
component: PersonalSettingsPage
}
);
export const Route = createFileRoute(
'/_authenticate/personal-settings/_layout/',
)({
component: PersonalSettingsPage,
})

View File

@@ -1,7 +1,9 @@
import { createFileRoute } from "@tanstack/react-router";
import { createFileRoute } from '@tanstack/react-router'
import { PersonalSettingsLayout } from "@app/layouts/PersonalSettingsLayout";
import { PersonalSettingsLayout } from '@app/layouts/PersonalSettingsLayout'
export const Route = createFileRoute("/_authenticate/personal-settings/_personal-settings-layout")({
component: PersonalSettingsLayout
});
export const Route = createFileRoute(
'/_authenticate/personal-settings/_layout',
)({
component: PersonalSettingsLayout,
})

File diff suppressed because it is too large Load Diff

View File

@@ -1,3 +1,92 @@
import { rootRoute } from "@tanstack/virtual-file-routes";
import { index, layout, rootRoute, route, VirtualRouteNode } from "@tanstack/virtual-file-routes";
export const routes = rootRoute("root.tsx", []);
const middleware = (fileName: string, virtualRoutes: VirtualRouteNode[]) =>
layout(`middlewares/${fileName}`, virtualRoutes);
export const routes = rootRoute("root.tsx", [
index("index.tsx"),
middleware("restrict-login-signup.tsx", [
route("/login", [
index("auth/LoginPage/route.tsx"),
route("/select-organization", "auth/SelectOrgPage/route.tsx"),
route("/sso", "auth/LoginSsoPage/route.tsx"),
route("/ldap", "auth/LoginLdapPage/route.tsx"),
route("/provider/success", "auth/ProviderSuccessPage/route.tsx"),
route("/provider/error", "auth/ProviderErrorPage/route.tsx")
]),
route("/signup", [
index("auth/SignUpPage/route.tsx"),
route("/sso", "auth/SignUpSsoPage/route.tsx")
]),
route("/email-not-verified", "auth/EmailNotVerifiedPage/route.tsx"),
route("/password-reset", "auth/PasswordResetPage/route.tsx"),
route("/requestnewinvite", "auth/RequestNewInvitePage/route.tsx"),
route("/signupinvite", "auth/SignUpInvitePage/route.tsx"),
route("/verify-email", "auth/VerifyEmailPage/route.tsx")
]),
middleware("authenticate.tsx", [
route("/personal-settings", [
layout("user/layout.tsx", [index("user/PersonalSettingsPage/route.tsx")])
]),
middleware("inject-org-details.tsx", [
route("/organization", [
layout("organization/layout.tsx", [
route("/secret-manager/overview", "organization/SecretManagerOverviewPage/route.tsx"),
route("/cert-manager/overview", "organization/CertManagerOverviewPage/route.tsx"),
route("/kms/overview", "organization/KmsOverviewPage/route.tsx"),
route("/access-management", "organization/AccessManagementPage/route.tsx"),
route("/admin", "organization/AdminPage/route.tsx"),
route("/audit-logs", "organization/AuditLogsPage/route.tsx"),
route("/billing", "organization/BillingPage/route.tsx"),
route("/none", "organization/NoOrgPage/route.tsx"),
route("/secret-sharing", "organization/SecretSharingPage/route.tsx"),
route("/settings", "organization/SettingsPage/route.tsx"),
route("/secret-scanning", "organization/SecretScanningPage/route.tsx"),
route("/groups/$groupId", "organization/GroupDetailsByIDPage/route.tsx"),
route("/members/$membershipId", "organization/UserDetailsByIDPage/route.tsx"),
route("/roles/$roleId", "organization/RoleByIDPage/route.tsx"),
route("/identities/$identityId", "organization/IdentityDetailsByIDPage/route.tsx")
])
])
])
])
]);
// '/_authenticate': typeof AuthenticateRouteWithChildren
// '/_authenticate/_ctx-org-details': typeof AuthenticateCtxOrgDetailsRouteWithChildren
// '/_authenticate/cli-redirect': typeof AuthenticateCliRedirectRoute
// '/_authenticate/personal-settings': typeof AuthenticatePersonalSettingsRouteWithChildren
// '/_authenticate/personal-settings/_personal-settings-layout': typeof authenticatePersonalSettingsLayoutRouteWithChildren
// '/_authenticate/_ctx-org-details/organization': typeof AuthenticateCtxOrgDetailsOrganizationRouteWithChildren
// '/_authenticate/_ctx-org-details/organization/_layout-org': typeof AuthenticateCtxOrgDetailsOrganizationLayoutOrgRouteWithChildren
// '/_authenticate/personal-settings/_personal-settings-layout/': typeof authenticatePersonalSettingsIndexRoute
// '/_authenticate/_ctx-org-details/secret-manager/$projectId': typeof AuthenticateCtxOrgDetailsSecretManagerProjectIdRouteWithChildren
// '/_authenticate/_ctx-org-details/secret-manager/$projectId/_layout-secret-manager': typeof AuthenticateCtxOrgDetailsSecretManagerProjectIdLayoutSecretManagerRouteWithChildren
// '/_authenticate/_ctx-org-details/organization/_layout-org/': typeof AuthenticateCtxOrgDetailsOrganizationLayoutOrgIndexRoute
// '/_authenticate/_ctx-org-details/organization/_layout-org/cert-manager/overview': typeof AuthenticateCtxOrgDetailsOrganizationLayoutOrgCertManagerOverviewRoute
// '/_authenticate/_ctx-org-details/organization/_layout-org/kms/overview': typeof AuthenticateCtxOrgDetailsOrganizationLayoutOrgKmsOverviewRoute
// '/_authenticate/_ctx-org-details/organization/_layout-org/secret-manager/overview': typeof AuthenticateCtxOrgDetailsOrganizationLayoutOrgSecretManagerOverviewRoute
// '/_authenticate/_ctx-org-details/organization/_layout-org/admin/': typeof AuthenticateCtxOrgDetailsOrganizationLayoutOrgAdminIndexRoute
// '/_authenticate/_ctx-org-details/organization/_layout-org/audit-logs/': typeof AuthenticateCtxOrgDetailsOrganizationLayoutOrgAuditLogsIndexRoute
// '/_authenticate/_ctx-org-details/organization/_layout-org/billing/': typeof AuthenticateCtxOrgDetailsOrganizationLayoutOrgBillingIndexRoute
// '/_authenticate/_ctx-org-details/organization/_layout-org/members/': typeof AuthenticateCtxOrgDetailsOrganizationLayoutOrgMembersIndexRoute
// '/_authenticate/_ctx-org-details/organization/_layout-org/none/': typeof AuthenticateCtxOrgDetailsOrganizationLayoutOrgNoneIndexRoute
// '/_authenticate/_ctx-org-details/organization/_layout-org/overview/': typeof AuthenticateCtxOrgDetailsOrganizationLayoutOrgOverviewIndexRoute
// '/_authenticate/_ctx-org-details/organization/_layout-org/secret-scanning/': typeof AuthenticateCtxOrgDetailsOrganizationLayoutOrgSecretScanningIndexRoute
// '/_authenticate/_ctx-org-details/organization/_layout-org/secret-sharing/': typeof AuthenticateCtxOrgDetailsOrganizationLayoutOrgSecretSharingIndexRoute
// '/_authenticate/_ctx-org-details/organization/_layout-org/settings/': typeof AuthenticateCtxOrgDetailsOrganizationLayoutOrgSettingsIndexRoute
// '/_authenticate/_ctx-org-details/organization/_layout-org/groups/$groupId/': typeof AuthenticateCtxOrgDetailsOrganizationLayoutOrgGroupsGroupIdIndexRoute
// '/_authenticate/_ctx-org-details/organization/_layout-org/identities/$identityId/': typeof AuthenticateCtxOrgDetailsOrganizationLayoutOrgIdentitiesIdentityIdIndexRoute
// '/_authenticate/_ctx-org-details/organization/_layout-org/memberships/$membershipId/': typeof AuthenticateCtxOrgDetailsOrganizationLayoutOrgMembershipsMembershipIdIndexRoute
// '/_authenticate/_ctx-org-details/organization/_layout-org/roles/$roleId/': typeof AuthenticateCtxOrgDetailsOrganizationLayoutOrgRolesRoleIdIndexRoute
// '/_authenticate/_ctx-org-details/secret-manager/$projectId/_layout-secret-manager/access/': typeof AuthenticateCtxOrgDetailsSecretManagerProjectIdLayoutSecretManagerAccessIndexRoute
// '/_authenticate/_ctx-org-details/secret-manager/$projectId/_layout-secret-manager/allowlist/': typeof AuthenticateCtxOrgDetailsSecretManagerProjectIdLayoutSecretManagerAllowlistIndexRoute
// '/_authenticate/_ctx-org-details/secret-manager/$projectId/_layout-secret-manager/approval/': typeof AuthenticateCtxOrgDetailsSecretManagerProjectIdLayoutSecretManagerApprovalIndexRoute
// '/_authenticate/_ctx-org-details/secret-manager/$projectId/_layout-secret-manager/overview/': typeof AuthenticateCtxOrgDetailsSecretManagerProjectIdLayoutSecretManagerOverviewIndexRoute
// '/_authenticate/_ctx-org-details/secret-manager/$projectId/_layout-secret-manager/secret-rotation/': typeof AuthenticateCtxOrgDetailsSecretManagerProjectIdLayoutSecretManagerSecretRotationIndexRoute
// '/_authenticate/_ctx-org-details/secret-manager/$projectId/_layout-secret-manager/settings/': typeof AuthenticateCtxOrgDetailsSecretManagerProjectIdLayoutSecretManagerSettingsIndexRoute
// '/_authenticate/_ctx-org-details/secret-manager/$projectId/_layout-secret-manager/identities/$identityId/': typeof AuthenticateCtxOrgDetailsSecretManagerProjectIdLayoutSecretManagerIdentitiesIdentityIdIndexRoute
// '/_authenticate/_ctx-org-details/secret-manager/$projectId/_layout-secret-manager/members/$membershipId/': typeof AuthenticateCtxOrgDetailsSecretManagerProjectIdLayoutSecretManagerMembersMembershipIdIndexRoute
// '/_authenticate/_ctx-org-details/secret-manager/$projectId/_layout-secret-manager/roles/$roleSlug/': typeof AuthenticateCtxOrgDetailsSecretManagerProjectIdLayoutSecretManagerRolesRoleSlugIndexRoute
// '/_authenticate/_ctx-org-details/secret-manager/$projectId/_layout-secret-manager/secrets/$envSlug/': typeof AuthenticateCtxOrgDetailsSecretManagerProjectIdLayoutSecretManagerSecretsEnvSlugIndexRoute
// }