mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-09-22 13:39:35 +00:00
fix: orgid in routing
This commit is contained in:
@@ -70,7 +70,8 @@ export default function NavHeader({
|
|||||||
{currentOrg?.name?.charAt(0)}
|
{currentOrg?.name?.charAt(0)}
|
||||||
</div>
|
</div>
|
||||||
<Link
|
<Link
|
||||||
to="/organization/projects"
|
to="/organizations/$orgId/projects"
|
||||||
|
params={{ orgId: currentOrg?.id || "" }}
|
||||||
className="truncate pl-0.5 text-sm font-medium text-primary/80 hover:text-primary"
|
className="truncate pl-0.5 text-sm font-medium text-primary/80 hover:text-primary"
|
||||||
>
|
>
|
||||||
{currentOrg?.name}
|
{currentOrg?.name}
|
||||||
@@ -90,8 +91,8 @@ export default function NavHeader({
|
|||||||
<FontAwesomeIcon icon={faAngleRight} className="mr-3 ml-3 text-sm text-gray-400" />
|
<FontAwesomeIcon icon={faAngleRight} className="mr-3 ml-3 text-sm text-gray-400" />
|
||||||
{pageName === "Secrets" ? (
|
{pageName === "Secrets" ? (
|
||||||
<Link
|
<Link
|
||||||
to="/projects/secret-management/$projectId/overview"
|
to="/organizations/$orgId/projects/secret-management/$projectId/overview"
|
||||||
params={{ projectId: currentProject.id }}
|
params={{ orgId: currentOrg?.id || "", projectId: currentProject.id }}
|
||||||
className="text-sm font-medium text-primary/80 hover:text-primary"
|
className="text-sm font-medium text-primary/80 hover:text-primary"
|
||||||
>
|
>
|
||||||
{pageName}
|
{pageName}
|
||||||
@@ -126,8 +127,8 @@ export default function NavHeader({
|
|||||||
<div className="flex items-center space-x-3">
|
<div className="flex items-center space-x-3">
|
||||||
<FontAwesomeIcon icon={faAngleRight} className="mr-1.5 ml-3 text-xs text-gray-400" />
|
<FontAwesomeIcon icon={faAngleRight} className="mr-1.5 ml-3 text-xs text-gray-400" />
|
||||||
<Link
|
<Link
|
||||||
to="/projects/secret-management/$projectId/secrets/$envSlug"
|
to="/organizations/$orgId/projects/secret-management/$projectId/secrets/$envSlug"
|
||||||
params={{ projectId: currentProject.id, envSlug: routerEnvSlug }}
|
params={{ orgId: currentOrg.id, projectId: currentProject.id, envSlug: routerEnvSlug }}
|
||||||
className="text-sm font-medium text-primary/80 hover:text-primary"
|
className="text-sm font-medium text-primary/80 hover:text-primary"
|
||||||
>
|
>
|
||||||
{userAvailableEnvs?.find(({ slug }) => slug === currentEnv)?.name}
|
{userAvailableEnvs?.find(({ slug }) => slug === currentEnv)?.name}
|
||||||
@@ -188,8 +189,9 @@ export default function NavHeader({
|
|||||||
</div>
|
</div>
|
||||||
) : (
|
) : (
|
||||||
<Link
|
<Link
|
||||||
to="/projects/secret-management/$projectId/secrets/$envSlug"
|
to="/organizations/$orgId/projects/secret-management/$projectId/secrets/$envSlug"
|
||||||
params={{
|
params={{
|
||||||
|
orgId: currentOrg?.id || "",
|
||||||
projectId: currentProject.id,
|
projectId: currentProject.id,
|
||||||
envSlug: routerEnvSlug || ""
|
envSlug: routerEnvSlug || ""
|
||||||
}}
|
}}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
|
|||||||
import { Link } from "@tanstack/react-router";
|
import { Link } from "@tanstack/react-router";
|
||||||
import { twMerge } from "tailwind-merge";
|
import { twMerge } from "tailwind-merge";
|
||||||
|
|
||||||
|
import { useOrganization } from "@app/context";
|
||||||
import { useTimedReset } from "@app/hooks";
|
import { useTimedReset } from "@app/hooks";
|
||||||
|
|
||||||
import { createNotification } from "../notifications";
|
import { createNotification } from "../notifications";
|
||||||
@@ -23,6 +24,7 @@ export const SecretDashboardPathBreadcrumb = ({
|
|||||||
projectId,
|
projectId,
|
||||||
disableCopy
|
disableCopy
|
||||||
}: Props) => {
|
}: Props) => {
|
||||||
|
const { currentOrg } = useOrganization();
|
||||||
const [, isCopying, setIsCopying] = useTimedReset({
|
const [, isCopying, setIsCopying] = useTimedReset({
|
||||||
initialState: false
|
initialState: false
|
||||||
});
|
});
|
||||||
@@ -69,8 +71,9 @@ export const SecretDashboardPathBreadcrumb = ({
|
|||||||
</div>
|
</div>
|
||||||
) : (
|
) : (
|
||||||
<Link
|
<Link
|
||||||
to="/projects/secret-management/$projectId/secrets/$envSlug"
|
to="/organizations/$orgId/projects/secret-management/$projectId/secrets/$envSlug"
|
||||||
params={{
|
params={{
|
||||||
|
orgId: currentOrg?.id || "",
|
||||||
projectId,
|
projectId,
|
||||||
envSlug: environmentSlug
|
envSlug: environmentSlug
|
||||||
}}
|
}}
|
||||||
|
|||||||
@@ -25,343 +25,343 @@ export const ROUTE_PATHS = Object.freeze({
|
|||||||
Organization: {
|
Organization: {
|
||||||
Settings: {
|
Settings: {
|
||||||
OauthCallbackPage: setRoute(
|
OauthCallbackPage: setRoute(
|
||||||
"/organization/settings/oauth/callback",
|
"/organizations/$orgId/settings/oauth/callback",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/organization/settings/oauth/callback"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/settings/oauth/callback"
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
SecretSharing: setRoute(
|
SecretSharing: setRoute(
|
||||||
"/organization/secret-sharing",
|
"/organizations/$orgId/secret-sharing",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/organization/secret-sharing/"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/secret-sharing/"
|
||||||
),
|
),
|
||||||
SettingsPage: setRoute(
|
SettingsPage: setRoute(
|
||||||
"/organization/settings",
|
"/organizations/$orgId/settings",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/organization/settings/"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/settings/"
|
||||||
),
|
),
|
||||||
GroupDetailsByIDPage: setRoute(
|
GroupDetailsByIDPage: setRoute(
|
||||||
"/organization/groups/$groupId",
|
"/organizations/$orgId/groups/$groupId",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/organization/groups/$groupId"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/groups/$groupId"
|
||||||
),
|
),
|
||||||
IdentityDetailsByIDPage: setRoute(
|
IdentityDetailsByIDPage: setRoute(
|
||||||
"/organization/identities/$identityId",
|
"/organizations/$orgId/identities/$identityId",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/organization/identities/$identityId"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/identities/$identityId"
|
||||||
),
|
),
|
||||||
UserDetailsByIDPage: setRoute(
|
UserDetailsByIDPage: setRoute(
|
||||||
"/organization/members/$membershipId",
|
"/organizations/$orgId/members/$membershipId",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/organization/members/$membershipId"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/members/$membershipId"
|
||||||
),
|
),
|
||||||
AccessControlPage: setRoute(
|
AccessControlPage: setRoute(
|
||||||
"/organization/access-management",
|
"/organizations/$orgId/access-management",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/organization/access-management"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/access-management"
|
||||||
),
|
),
|
||||||
RoleByIDPage: setRoute(
|
RoleByIDPage: setRoute(
|
||||||
"/organization/roles/$roleId",
|
"/organizations/$orgId/roles/$roleId",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/organization/roles/$roleId"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/roles/$roleId"
|
||||||
),
|
),
|
||||||
AppConnections: {
|
AppConnections: {
|
||||||
OauthCallbackPage: setRoute(
|
OauthCallbackPage: setRoute(
|
||||||
"/organization/app-connections/$appConnection/oauth/callback",
|
"/organizations/$orgId/app-connections/$appConnection/oauth/callback",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/organization/app-connections/$appConnection/oauth/callback"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/app-connections/$appConnection/oauth/callback"
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
NetworkingPage: setRoute(
|
NetworkingPage: setRoute(
|
||||||
"/organization/networking",
|
"/organizations/$orgId/networking",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/organization/networking"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/networking"
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
SecretManager: {
|
SecretManager: {
|
||||||
ApprovalPage: setRoute(
|
ApprovalPage: setRoute(
|
||||||
"/projects/secret-management/$projectId/approval",
|
"/organizations/$orgId/projects/secret-management/$projectId/approval",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/approval"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/approval"
|
||||||
),
|
),
|
||||||
SecretDashboardPage: setRoute(
|
SecretDashboardPage: setRoute(
|
||||||
"/projects/secret-management/$projectId/secrets/$envSlug",
|
"/organizations/$orgId/projects/secret-management/$projectId/secrets/$envSlug",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/secrets/$envSlug"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/secrets/$envSlug"
|
||||||
),
|
),
|
||||||
RollbackPreviewPage: setRoute(
|
RollbackPreviewPage: setRoute(
|
||||||
"/projects/secret-management/$projectId/commits/$environment/$folderId/$commitId/restore",
|
"/organizations/$orgId/projects/secret-management/$projectId/commits/$environment/$folderId/$commitId/restore",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/commits/$environment/$folderId/$commitId/restore"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/commits/$environment/$folderId/$commitId/restore"
|
||||||
),
|
),
|
||||||
CommitDetailsPage: setRoute(
|
CommitDetailsPage: setRoute(
|
||||||
"/projects/secret-management/$projectId/commits/$environment/$folderId/$commitId",
|
"/organizations/$orgId/projects/secret-management/$projectId/commits/$environment/$folderId/$commitId",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/commits/$environment/$folderId/$commitId"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/commits/$environment/$folderId/$commitId"
|
||||||
),
|
),
|
||||||
CommitsPage: setRoute(
|
CommitsPage: setRoute(
|
||||||
"/projects/secret-management/$projectId/commits/$environment/$folderId",
|
"/organizations/$orgId/projects/secret-management/$projectId/commits/$environment/$folderId",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/commits/$environment/$folderId"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/commits/$environment/$folderId"
|
||||||
),
|
),
|
||||||
OverviewPage: setRoute(
|
OverviewPage: setRoute(
|
||||||
"/projects/secret-management/$projectId/overview",
|
"/organizations/$orgId/projects/secret-management/$projectId/overview",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/overview"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/overview"
|
||||||
),
|
),
|
||||||
IntegrationsListPage: setRoute(
|
IntegrationsListPage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/"
|
||||||
),
|
),
|
||||||
IntegrationDetailsByIDPage: setRoute(
|
IntegrationDetailsByIDPage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/$integrationId",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/$integrationId",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/$integrationId"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/$integrationId"
|
||||||
),
|
),
|
||||||
SecretSyncDetailsByIDPage: setRoute(
|
SecretSyncDetailsByIDPage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/secret-syncs/$destination/$syncId",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/secret-syncs/$destination/$syncId",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/secret-syncs/$destination/$syncId"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/secret-syncs/$destination/$syncId"
|
||||||
),
|
),
|
||||||
Integratons: {
|
Integratons: {
|
||||||
SelectIntegrationAuth: setRoute(
|
SelectIntegrationAuth: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/select-integration-auth",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/select-integration-auth",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/select-integration-auth"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/select-integration-auth"
|
||||||
),
|
),
|
||||||
HerokuOauthCallbackPage: setRoute(
|
HerokuOauthCallbackPage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/heroku/oauth2/callback",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/heroku/oauth2/callback",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/heroku/oauth2/callback"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/heroku/oauth2/callback"
|
||||||
),
|
),
|
||||||
HerokuConfigurePage: setRoute(
|
HerokuConfigurePage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/heroku/create",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/heroku/create",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/heroku/create"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/heroku/create"
|
||||||
),
|
),
|
||||||
AwsParameterStoreConfigurePage: setRoute(
|
AwsParameterStoreConfigurePage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/aws-parameter-store/create",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/aws-parameter-store/create",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/aws-parameter-store/create"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/aws-parameter-store/create"
|
||||||
),
|
),
|
||||||
AwsSecretManagerConfigurePage: setRoute(
|
AwsSecretManagerConfigurePage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/aws-secret-manager/create",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/aws-secret-manager/create",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/aws-secret-manager/create"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/aws-secret-manager/create"
|
||||||
),
|
),
|
||||||
AzureAppConfigurationsOauthCallbackPage: setRoute(
|
AzureAppConfigurationsOauthCallbackPage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/azure-app-configuration/oauth2/callback",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/azure-app-configuration/oauth2/callback",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/azure-app-configuration/oauth2/callback"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/azure-app-configuration/oauth2/callback"
|
||||||
),
|
),
|
||||||
AzureAppConfigurationsConfigurePage: setRoute(
|
AzureAppConfigurationsConfigurePage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/azure-app-configuration/create",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/azure-app-configuration/create",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/azure-app-configuration/create"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/azure-app-configuration/create"
|
||||||
),
|
),
|
||||||
AzureDevopsConfigurePage: setRoute(
|
AzureDevopsConfigurePage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/azure-devops/create",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/azure-devops/create",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/azure-devops/create"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/azure-devops/create"
|
||||||
),
|
),
|
||||||
AzureKeyVaultAuthorizePage: setRoute(
|
AzureKeyVaultAuthorizePage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/azure-key-vault/authorize",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/azure-key-vault/authorize",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/azure-key-vault/authorize"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/azure-key-vault/authorize"
|
||||||
),
|
),
|
||||||
AzureKeyVaultOauthCallbackPage: setRoute(
|
AzureKeyVaultOauthCallbackPage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/azure-key-vault/oauth2/callback",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/azure-key-vault/oauth2/callback",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/azure-key-vault/oauth2/callback"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/azure-key-vault/oauth2/callback"
|
||||||
),
|
),
|
||||||
AzureKeyVaultConfigurePage: setRoute(
|
AzureKeyVaultConfigurePage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/azure-key-vault/create",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/azure-key-vault/create",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/azure-key-vault/create"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/azure-key-vault/create"
|
||||||
),
|
),
|
||||||
BitbucketOauthCallbackPage: setRoute(
|
BitbucketOauthCallbackPage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/bitbucket/oauth2/callback",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/bitbucket/oauth2/callback",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/bitbucket/oauth2/callback"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/bitbucket/oauth2/callback"
|
||||||
),
|
),
|
||||||
BitbucketConfigurePage: setRoute(
|
BitbucketConfigurePage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/bitbucket/create",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/bitbucket/create",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/bitbucket/create"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/bitbucket/create"
|
||||||
),
|
),
|
||||||
ChecklyConfigurePage: setRoute(
|
ChecklyConfigurePage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/checkly/create",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/checkly/create",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/checkly/create"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/checkly/create"
|
||||||
),
|
),
|
||||||
CircleConfigurePage: setRoute(
|
CircleConfigurePage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/circleci/create",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/circleci/create",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/circleci/create"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/circleci/create"
|
||||||
),
|
),
|
||||||
CloudflarePagesConfigurePage: setRoute(
|
CloudflarePagesConfigurePage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/cloudflare-pages/create",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/cloudflare-pages/create",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/cloudflare-pages/create"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/cloudflare-pages/create"
|
||||||
),
|
),
|
||||||
DigitalOceanAppPlatformConfigurePage: setRoute(
|
DigitalOceanAppPlatformConfigurePage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/digital-ocean-app-platform/create",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/digital-ocean-app-platform/create",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/digital-ocean-app-platform/create"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/digital-ocean-app-platform/create"
|
||||||
),
|
),
|
||||||
CloudflareWorkersConfigurePage: setRoute(
|
CloudflareWorkersConfigurePage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/cloudflare-workers/create",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/cloudflare-workers/create",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/cloudflare-workers/create"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/cloudflare-workers/create"
|
||||||
),
|
),
|
||||||
CodefreshConfigurePage: setRoute(
|
CodefreshConfigurePage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/codefresh/create",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/codefresh/create",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/codefresh/create"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/codefresh/create"
|
||||||
),
|
),
|
||||||
GcpSecretManagerConfigurePage: setRoute(
|
GcpSecretManagerConfigurePage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/gcp-secret-manager/create",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/gcp-secret-manager/create",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/gcp-secret-manager/create"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/gcp-secret-manager/create"
|
||||||
),
|
),
|
||||||
GcpSecretManagerOauthCallbackPage: setRoute(
|
GcpSecretManagerOauthCallbackPage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/gcp-secret-manager/oauth2/callback",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/gcp-secret-manager/oauth2/callback",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/gcp-secret-manager/oauth2/callback"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/gcp-secret-manager/oauth2/callback"
|
||||||
),
|
),
|
||||||
GithubConfigurePage: setRoute(
|
GithubConfigurePage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/github/create",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/github/create",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/github/create"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/github/create"
|
||||||
),
|
),
|
||||||
GithubOauthCallbackPage: setRoute(
|
GithubOauthCallbackPage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/github/oauth2/callback",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/github/oauth2/callback",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/github/oauth2/callback"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/github/oauth2/callback"
|
||||||
),
|
),
|
||||||
GitlabConfigurePage: setRoute(
|
GitlabConfigurePage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/gitlab/create",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/gitlab/create",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/gitlab/create"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/gitlab/create"
|
||||||
),
|
),
|
||||||
GitlabOauthCallbackPage: setRoute(
|
GitlabOauthCallbackPage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/gitlab/oauth2/callback",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/gitlab/oauth2/callback",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/gitlab/oauth2/callback"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/gitlab/oauth2/callback"
|
||||||
),
|
),
|
||||||
VercelOauthCallbackPage: setRoute(
|
VercelOauthCallbackPage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/vercel/oauth2/callback",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/vercel/oauth2/callback",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/vercel/oauth2/callback"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/vercel/oauth2/callback"
|
||||||
),
|
),
|
||||||
VercelConfigurePage: setRoute(
|
VercelConfigurePage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/vercel/create",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/vercel/create",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/vercel/create"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/vercel/create"
|
||||||
),
|
),
|
||||||
FlyioConfigurePage: setRoute(
|
FlyioConfigurePage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/flyio/create",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/flyio/create",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/flyio/create"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/flyio/create"
|
||||||
),
|
),
|
||||||
HashicorpVaultConfigurePage: setRoute(
|
HashicorpVaultConfigurePage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/hashicorp-vault/create",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/hashicorp-vault/create",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/hashicorp-vault/create"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/hashicorp-vault/create"
|
||||||
),
|
),
|
||||||
HasuraCloudConfigurePage: setRoute(
|
HasuraCloudConfigurePage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/hasura-cloud/create",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/hasura-cloud/create",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/hasura-cloud/create"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/hasura-cloud/create"
|
||||||
),
|
),
|
||||||
LaravelForgeConfigurePage: setRoute(
|
LaravelForgeConfigurePage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/laravel-forge/create",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/laravel-forge/create",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/laravel-forge/create"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/laravel-forge/create"
|
||||||
),
|
),
|
||||||
NorthflankConfigurePage: setRoute(
|
NorthflankConfigurePage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/northflank/create",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/northflank/create",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/northflank/create"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/northflank/create"
|
||||||
),
|
),
|
||||||
RailwayConfigurePage: setRoute(
|
RailwayConfigurePage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/railway/create",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/railway/create",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/railway/create"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/railway/create"
|
||||||
),
|
),
|
||||||
RenderConfigurePage: setRoute(
|
RenderConfigurePage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/render/create",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/render/create",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/render/create"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/render/create"
|
||||||
),
|
),
|
||||||
RundeckConfigurePage: setRoute(
|
RundeckConfigurePage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/rundeck/create",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/rundeck/create",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/rundeck/create"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/rundeck/create"
|
||||||
),
|
),
|
||||||
WindmillConfigurePage: setRoute(
|
WindmillConfigurePage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/windmill/create",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/windmill/create",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/windmill/create"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/windmill/create"
|
||||||
),
|
),
|
||||||
TravisCIConfigurePage: setRoute(
|
TravisCIConfigurePage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/travisci/create",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/travisci/create",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/travisci/create"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/travisci/create"
|
||||||
),
|
),
|
||||||
TerraformCloudConfigurePage: setRoute(
|
TerraformCloudConfigurePage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/terraform-cloud/create",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/terraform-cloud/create",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/terraform-cloud/create"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/terraform-cloud/create"
|
||||||
),
|
),
|
||||||
TeamcityConfigurePage: setRoute(
|
TeamcityConfigurePage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/teamcity/create",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/teamcity/create",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/teamcity/create"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/teamcity/create"
|
||||||
),
|
),
|
||||||
SupabaseConfigurePage: setRoute(
|
SupabaseConfigurePage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/supabase/create",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/supabase/create",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/supabase/create"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/supabase/create"
|
||||||
),
|
),
|
||||||
OctopusDeployCloudConfigurePage: setRoute(
|
OctopusDeployCloudConfigurePage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/octopus-deploy/create",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/octopus-deploy/create",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/octopus-deploy/create"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/octopus-deploy/create"
|
||||||
),
|
),
|
||||||
DatabricksConfigurePage: setRoute(
|
DatabricksConfigurePage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/databricks/create",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/databricks/create",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/databricks/create"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/databricks/create"
|
||||||
),
|
),
|
||||||
QoveryConfigurePage: setRoute(
|
QoveryConfigurePage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/qovery/create",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/qovery/create",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/qovery/create"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/qovery/create"
|
||||||
),
|
),
|
||||||
Cloud66ConfigurePage: setRoute(
|
Cloud66ConfigurePage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/cloud-66/create",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/cloud-66/create",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/cloud-66/create"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/cloud-66/create"
|
||||||
),
|
),
|
||||||
NetlifyConfigurePage: setRoute(
|
NetlifyConfigurePage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/netlify/create",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/netlify/create",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/netlify/create"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/netlify/create"
|
||||||
),
|
),
|
||||||
NetlifyOuathCallbackPage: setRoute(
|
NetlifyOuathCallbackPage: setRoute(
|
||||||
"/projects/secret-management/$projectId/integrations/netlify/oauth2/callback",
|
"/organizations/$orgId/projects/secret-management/$projectId/integrations/netlify/oauth2/callback",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/integrations/netlify/oauth2/callback"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/integrations/netlify/oauth2/callback"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
CertManager: {
|
CertManager: {
|
||||||
CertAuthDetailsByIDPage: setRoute(
|
CertAuthDetailsByIDPage: setRoute(
|
||||||
"/projects/cert-management/$projectId/ca/$caName",
|
"/organizations/$orgId/projects/cert-management/$projectId/ca/$caName",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/cert-management/$projectId/_cert-manager-layout/ca/$caName"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/cert-management/$projectId/_cert-manager-layout/ca/$caName"
|
||||||
),
|
),
|
||||||
SubscribersPage: setRoute(
|
SubscribersPage: setRoute(
|
||||||
"/projects/cert-management/$projectId/subscribers",
|
"/organizations/$orgId/projects/cert-management/$projectId/subscribers",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/cert-management/$projectId/_cert-manager-layout/subscribers"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/cert-management/$projectId/_cert-manager-layout/subscribers"
|
||||||
),
|
),
|
||||||
CertificateAuthoritiesPage: setRoute(
|
CertificateAuthoritiesPage: setRoute(
|
||||||
"/projects/cert-management/$projectId/certificate-authorities",
|
"/organizations/$orgId/projects/cert-management/$projectId/certificate-authorities",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/cert-management/$projectId/_cert-manager-layout/certificate-authorities"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/cert-management/$projectId/_cert-manager-layout/certificate-authorities"
|
||||||
),
|
),
|
||||||
AlertingPage: setRoute(
|
AlertingPage: setRoute(
|
||||||
"/projects/cert-management/$projectId/alerting",
|
"/organizations/$orgId/projects/cert-management/$projectId/alerting",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/cert-management/$projectId/_cert-manager-layout/alerting"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/cert-management/$projectId/_cert-manager-layout/alerting"
|
||||||
),
|
),
|
||||||
PkiCollectionDetailsByIDPage: setRoute(
|
PkiCollectionDetailsByIDPage: setRoute(
|
||||||
"/projects/cert-management/$projectId/pki-collections/$collectionId",
|
"/organizations/$orgId/projects/cert-management/$projectId/pki-collections/$collectionId",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/cert-management/$projectId/_cert-manager-layout/pki-collections/$collectionId"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/cert-management/$projectId/_cert-manager-layout/pki-collections/$collectionId"
|
||||||
),
|
),
|
||||||
PkiSubscriberDetailsByIDPage: setRoute(
|
PkiSubscriberDetailsByIDPage: setRoute(
|
||||||
"/projects/cert-management/$projectId/subscribers/$subscriberName",
|
"/organizations/$orgId/projects/cert-management/$projectId/subscribers/$subscriberName",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/cert-management/$projectId/_cert-manager-layout/subscribers/$subscriberName"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/cert-management/$projectId/_cert-manager-layout/subscribers/$subscriberName"
|
||||||
),
|
),
|
||||||
IntegrationsListPage: setRoute(
|
IntegrationsListPage: setRoute(
|
||||||
"/projects/cert-management/$projectId/integrations",
|
"/organizations/$orgId/projects/cert-management/$projectId/integrations",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/cert-management/$projectId/_cert-manager-layout/integrations/"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/cert-management/$projectId/_cert-manager-layout/integrations/"
|
||||||
),
|
),
|
||||||
PkiSyncDetailsByIDPage: setRoute(
|
PkiSyncDetailsByIDPage: setRoute(
|
||||||
"/projects/cert-management/$projectId/integrations/$syncId",
|
"/organizations/$orgId/projects/cert-management/$projectId/integrations/$syncId",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/cert-management/$projectId/_cert-manager-layout/integrations/$syncId"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/cert-management/$projectId/_cert-manager-layout/integrations/$syncId"
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
Ssh: {
|
Ssh: {
|
||||||
SshCaByIDPage: setRoute(
|
SshCaByIDPage: setRoute(
|
||||||
"/projects/ssh/$projectId/ca/$caId",
|
"/organizations/$orgId/projects/ssh/$projectId/ca/$caId",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/ssh/$projectId/_ssh-layout/ca/$caId"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/ssh/$projectId/_ssh-layout/ca/$caId"
|
||||||
),
|
),
|
||||||
SshHostGroupDetailsByIDPage: setRoute(
|
SshHostGroupDetailsByIDPage: setRoute(
|
||||||
"/projects/ssh/$projectId/ssh-host-groups/$sshHostGroupId",
|
"/organizations/$orgId/projects/ssh/$projectId/ssh-host-groups/$sshHostGroupId",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/ssh/$projectId/_ssh-layout/ssh-host-groups/$sshHostGroupId"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/ssh/$projectId/_ssh-layout/ssh-host-groups/$sshHostGroupId"
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
SecretScanning: {
|
SecretScanning: {
|
||||||
DataSourceByIdPage: setRoute(
|
DataSourceByIdPage: setRoute(
|
||||||
"/projects/secret-scanning/$projectId/data-sources/$type/$dataSourceId",
|
"/organizations/$orgId/projects/secret-scanning/$projectId/data-sources/$type/$dataSourceId",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-scanning/$projectId/_secret-scanning-layout/data-sources/$type/$dataSourceId"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-scanning/$projectId/_secret-scanning-layout/data-sources/$type/$dataSourceId"
|
||||||
),
|
),
|
||||||
FindingsPage: setRoute(
|
FindingsPage: setRoute(
|
||||||
"/projects/secret-scanning/$projectId/findings",
|
"/organizations/$orgId/projects/secret-scanning/$projectId/findings",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-scanning/$projectId/_secret-scanning-layout/findings"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-scanning/$projectId/_secret-scanning-layout/findings"
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
Pam: {
|
Pam: {
|
||||||
AccountsPage: setRoute(
|
AccountsPage: setRoute(
|
||||||
"/projects/pam/$projectId/accounts",
|
"/organizations/$orgId/projects/pam/$projectId/accounts",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/pam/$projectId/_pam-layout/accounts"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/pam/$projectId/_pam-layout/accounts"
|
||||||
),
|
),
|
||||||
ResourcesPage: setRoute(
|
ResourcesPage: setRoute(
|
||||||
"/projects/pam/$projectId/resources",
|
"/organizations/$orgId/projects/pam/$projectId/resources",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/pam/$projectId/_pam-layout/resources"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/pam/$projectId/_pam-layout/resources"
|
||||||
),
|
),
|
||||||
SessionsPage: setRoute(
|
SessionsPage: setRoute(
|
||||||
"/projects/pam/$projectId/sessions",
|
"/organizations/$orgId/projects/pam/$projectId/sessions",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/pam/$projectId/_pam-layout/sessions/"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/pam/$projectId/_pam-layout/sessions/"
|
||||||
),
|
),
|
||||||
PamSessionByIDPage: setRoute(
|
PamSessionByIDPage: setRoute(
|
||||||
"/projects/pam/$projectId/sessions/$sessionId",
|
"/organizations/$orgId/projects/pam/$projectId/sessions/$sessionId",
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/pam/$projectId/_pam-layout/sessions/$sessionId"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/pam/$projectId/_pam-layout/sessions/$sessionId"
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
Public: {
|
Public: {
|
||||||
|
|||||||
@@ -64,11 +64,11 @@ export const initProjectHelper = async ({ projectName }: { projectName: string }
|
|||||||
export const getProjectBaseURL = (type: ProjectType) => {
|
export const getProjectBaseURL = (type: ProjectType) => {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case ProjectType.SecretManager:
|
case ProjectType.SecretManager:
|
||||||
return "/projects/secret-management/$projectId";
|
return "/organizations/$orgId/projects/secret-management/$projectId";
|
||||||
case ProjectType.CertificateManager:
|
case ProjectType.CertificateManager:
|
||||||
return "/projects/cert-management/$projectId";
|
return "/organizations/$orgId/projects/cert-management/$projectId";
|
||||||
default:
|
default:
|
||||||
return `/projects/${type}/$projectId` as const;
|
return `/organizations/$orgId/projects/${type}/$projectId` as const;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -77,15 +77,15 @@ export const getProjectBaseURL = (type: ProjectType) => {
|
|||||||
export const getProjectHomePage = (type: ProjectType, environments: ProjectEnv[]) => {
|
export const getProjectHomePage = (type: ProjectType, environments: ProjectEnv[]) => {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case ProjectType.SecretManager:
|
case ProjectType.SecretManager:
|
||||||
return "/projects/secret-management/$projectId/overview" as const;
|
return "/organizations/$orgId/projects/secret-management/$projectId/overview" as const;
|
||||||
case ProjectType.CertificateManager:
|
case ProjectType.CertificateManager:
|
||||||
return "/projects/cert-management/$projectId/policies" as const;
|
return "/organizations/$orgId/projects/cert-management/$projectId/policies" as const;
|
||||||
case ProjectType.SecretScanning:
|
case ProjectType.SecretScanning:
|
||||||
return `/projects/${type}/$projectId/data-sources` as const;
|
return `/organizations/$orgId/projects/${type}/$projectId/data-sources` as const;
|
||||||
case ProjectType.PAM:
|
case ProjectType.PAM:
|
||||||
return `/projects/${type}/$projectId/accounts` as const;
|
return `/organizations/$orgId/projects/${type}/$projectId/accounts` as const;
|
||||||
default:
|
default:
|
||||||
return `/projects/${type}/$projectId/overview` as const;
|
return `/organizations/$orgId/projects/${type}/$projectId/overview` as const;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -2,12 +2,13 @@ import { Link, Outlet, useLocation } from "@tanstack/react-router";
|
|||||||
import { motion } from "framer-motion";
|
import { motion } from "framer-motion";
|
||||||
|
|
||||||
import { Tab, TabList, Tabs } from "@app/components/v2";
|
import { Tab, TabList, Tabs } from "@app/components/v2";
|
||||||
import { useProject, useProjectPermission } from "@app/context";
|
import { useOrganization, useProject, useProjectPermission } from "@app/context";
|
||||||
|
|
||||||
import { AssumePrivilegeModeBanner } from "../ProjectLayout/components/AssumePrivilegeModeBanner";
|
import { AssumePrivilegeModeBanner } from "../ProjectLayout/components/AssumePrivilegeModeBanner";
|
||||||
|
|
||||||
export const KmsLayout = () => {
|
export const KmsLayout = () => {
|
||||||
const { currentProject } = useProject();
|
const { currentProject } = useProject();
|
||||||
|
const { currentOrg } = useOrganization();
|
||||||
const { assumedPrivilegeDetails } = useProjectPermission();
|
const { assumedPrivilegeDetails } = useProjectPermission();
|
||||||
|
|
||||||
const location = useLocation();
|
const location = useLocation();
|
||||||
@@ -27,24 +28,27 @@ export const KmsLayout = () => {
|
|||||||
<Tabs value="selected">
|
<Tabs value="selected">
|
||||||
<TabList className="border-b-0">
|
<TabList className="border-b-0">
|
||||||
<Link
|
<Link
|
||||||
to="/projects/kms/$projectId/overview"
|
to="/organizations/$orgId/projects/kms/$projectId/overview"
|
||||||
params={{
|
params={{
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId: currentProject.id
|
projectId: currentProject.id
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{({ isActive }) => <Tab value={isActive ? "selected" : ""}>Overview</Tab>}
|
{({ isActive }) => <Tab value={isActive ? "selected" : ""}>Overview</Tab>}
|
||||||
</Link>
|
</Link>
|
||||||
<Link
|
<Link
|
||||||
to="/projects/kms/$projectId/kmip"
|
to="/organizations/$orgId/projects/kms/$projectId/kmip"
|
||||||
params={{
|
params={{
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId: currentProject.id
|
projectId: currentProject.id
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{({ isActive }) => <Tab value={isActive ? "selected" : ""}>KMIP</Tab>}
|
{({ isActive }) => <Tab value={isActive ? "selected" : ""}>KMIP</Tab>}
|
||||||
</Link>
|
</Link>
|
||||||
<Link
|
<Link
|
||||||
to="/projects/kms/$projectId/access-management"
|
to="/organizations/$orgId/projects/kms/$projectId/access-management"
|
||||||
params={{
|
params={{
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId: currentProject.id
|
projectId: currentProject.id
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
@@ -62,16 +66,18 @@ export const KmsLayout = () => {
|
|||||||
)}
|
)}
|
||||||
</Link>
|
</Link>
|
||||||
<Link
|
<Link
|
||||||
to="/projects/kms/$projectId/audit-logs"
|
to="/organizations/$orgId/projects/kms/$projectId/audit-logs"
|
||||||
params={{
|
params={{
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId: currentProject.id
|
projectId: currentProject.id
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{({ isActive }) => <Tab value={isActive ? "selected" : ""}>Audit Logs</Tab>}
|
{({ isActive }) => <Tab value={isActive ? "selected" : ""}>Audit Logs</Tab>}
|
||||||
</Link>
|
</Link>
|
||||||
<Link
|
<Link
|
||||||
to="/projects/kms/$projectId/settings"
|
to="/organizations/$orgId/projects/kms/$projectId/settings"
|
||||||
params={{
|
params={{
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId: currentProject.id
|
projectId: currentProject.id
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -282,7 +282,7 @@ export const Navbar = () => {
|
|||||||
<div className="z-10 flex min-h-12 items-center bg-mineshaft-900 px-4 pt-1">
|
<div className="z-10 flex min-h-12 items-center bg-mineshaft-900 px-4 pt-1">
|
||||||
<div className="mr-auto flex items-center overflow-hidden">
|
<div className="mr-auto flex items-center overflow-hidden">
|
||||||
<div className="shrink-0">
|
<div className="shrink-0">
|
||||||
<Link to="/organization/projects">
|
<Link to="/organizations/$orgId/projects" params={{ orgId: currentOrg.id }}>
|
||||||
<img alt="infisical logo" src="/images/logotransparent.png" className="h-4" />
|
<img alt="infisical logo" src="/images/logotransparent.png" className="h-4" />
|
||||||
</Link>
|
</Link>
|
||||||
</div>
|
</div>
|
||||||
@@ -322,7 +322,8 @@ export const Navbar = () => {
|
|||||||
type="button"
|
type="button"
|
||||||
onClick={async () => {
|
onClick={async () => {
|
||||||
navigate({
|
navigate({
|
||||||
to: "/organization/projects",
|
to: "/organizations/$orgId/projects",
|
||||||
|
params: { orgId: currentOrg.id },
|
||||||
search: (search) => ({ ...search, subOrganization: undefined })
|
search: (search) => ({ ...search, subOrganization: undefined })
|
||||||
});
|
});
|
||||||
if (isSubOrganization) {
|
if (isSubOrganization) {
|
||||||
@@ -407,7 +408,8 @@ export const Navbar = () => {
|
|||||||
<DropdownMenuItem
|
<DropdownMenuItem
|
||||||
onClick={async () => {
|
onClick={async () => {
|
||||||
navigate({
|
navigate({
|
||||||
to: "/organization/projects",
|
to: "/organizations/$orgId/projects",
|
||||||
|
params: { orgId: currentOrg.id },
|
||||||
search: (prev) => ({ ...prev, subOrganization: subOrg.name })
|
search: (prev) => ({ ...prev, subOrganization: subOrg.name })
|
||||||
});
|
});
|
||||||
await router.invalidate({ sync: true }).catch(() => null);
|
await router.invalidate({ sync: true }).catch(() => null);
|
||||||
@@ -481,7 +483,7 @@ export const Navbar = () => {
|
|||||||
"min-w-6 bg-transparent text-mineshaft-200 hover:!bg-transparent hover:underline [&>svg]:!text-sub-org"
|
"min-w-6 bg-transparent text-mineshaft-200 hover:!bg-transparent hover:underline [&>svg]:!text-sub-org"
|
||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
<Link to="/organization/projects">
|
<Link to="/organizations/$orgId/projects" params={{ orgId: currentOrg.id }}>
|
||||||
<SubOrgIcon className="size-[12px]" />
|
<SubOrgIcon className="size-[12px]" />
|
||||||
<span>{currentOrg.subOrganization.name}</span>
|
<span>{currentOrg.subOrganization.name}</span>
|
||||||
</Link>
|
</Link>
|
||||||
@@ -511,7 +513,8 @@ export const Navbar = () => {
|
|||||||
<DropdownMenuItem
|
<DropdownMenuItem
|
||||||
onClick={async () => {
|
onClick={async () => {
|
||||||
navigate({
|
navigate({
|
||||||
to: "/organization/projects",
|
to: "/organizations/$orgId/projects",
|
||||||
|
params: { orgId: currentOrg.id },
|
||||||
search: (prev) => ({ ...prev, subOrganization: subOrg.name })
|
search: (prev) => ({ ...prev, subOrganization: subOrg.name })
|
||||||
});
|
});
|
||||||
await router.invalidate({ sync: true }).catch(() => null);
|
await router.invalidate({ sync: true }).catch(() => null);
|
||||||
@@ -593,7 +596,8 @@ export const Navbar = () => {
|
|||||||
isAllowed ? (
|
isAllowed ? (
|
||||||
<Link
|
<Link
|
||||||
className="mr-2 flex h-[34px] items-center rounded-md border border-mineshaft-500 px-2.5 py-1.5 text-sm whitespace-nowrap text-mineshaft-200 hover:bg-mineshaft-600"
|
className="mr-2 flex h-[34px] items-center rounded-md border border-mineshaft-500 px-2.5 py-1.5 text-sm whitespace-nowrap text-mineshaft-200 hover:bg-mineshaft-600"
|
||||||
to="/organization/access-management"
|
to="/organizations/$orgId/access-management"
|
||||||
|
params={{ orgId: currentOrg.id }}
|
||||||
search={{
|
search={{
|
||||||
selectedTab: "members",
|
selectedTab: "members",
|
||||||
action: "invite-members"
|
action: "invite-members"
|
||||||
@@ -696,7 +700,8 @@ export const Navbar = () => {
|
|||||||
{(isAllowed) =>
|
{(isAllowed) =>
|
||||||
isAllowed ? (
|
isAllowed ? (
|
||||||
<Link
|
<Link
|
||||||
to="/organization/access-management"
|
to="/organizations/$orgId/access-management"
|
||||||
|
params={{ orgId: currentOrg.id }}
|
||||||
search={{
|
search={{
|
||||||
selectedTab: "members",
|
selectedTab: "members",
|
||||||
action: "invite-members"
|
action: "invite-members"
|
||||||
@@ -778,7 +783,11 @@ export const Navbar = () => {
|
|||||||
</div>
|
</div>
|
||||||
<div className="mt-4">
|
<div className="mt-4">
|
||||||
<div className="flex space-x-3">
|
<div className="flex space-x-3">
|
||||||
<Link to="/organization/billing" className="inline-flex">
|
<Link
|
||||||
|
to="/organizations/$orgId/billing"
|
||||||
|
params={{ orgId: currentOrg.id }}
|
||||||
|
className="inline-flex"
|
||||||
|
>
|
||||||
<Button
|
<Button
|
||||||
colorSchema="primary"
|
colorSchema="primary"
|
||||||
variant="solid"
|
variant="solid"
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ type Props = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const OrgNavBar = ({ isHidden }: Props) => {
|
export const OrgNavBar = ({ isHidden }: Props) => {
|
||||||
const { isRootOrganization } = useOrganization();
|
const { isRootOrganization, currentOrg } = useOrganization();
|
||||||
const { popUp, handlePopUpToggle } = usePopUp(["createOrg"] as const);
|
const { popUp, handlePopUpToggle } = usePopUp(["createOrg"] as const);
|
||||||
|
|
||||||
const { pathname } = useLocation();
|
const { pathname } = useLocation();
|
||||||
@@ -32,43 +32,47 @@ export const OrgNavBar = ({ isHidden }: Props) => {
|
|||||||
<nav className="w-full">
|
<nav className="w-full">
|
||||||
<Tabs value="selected">
|
<Tabs value="selected">
|
||||||
<TabList className="border-b-0">
|
<TabList className="border-b-0">
|
||||||
<Link to="/organization/projects">
|
<Link to="/organizations/$orgId/projects" params={{ orgId: currentOrg.id }}>
|
||||||
{({ isActive }) => (
|
{({ isActive }) => (
|
||||||
<Tab variant={variant} value={isActive ? "selected" : ""}>
|
<Tab variant={variant} value={isActive ? "selected" : ""}>
|
||||||
Overview
|
Overview
|
||||||
</Tab>
|
</Tab>
|
||||||
)}
|
)}
|
||||||
</Link>
|
</Link>
|
||||||
<Link to="/organization/app-connections">
|
<Link
|
||||||
|
to="/organizations/$orgId/app-connections"
|
||||||
|
params={{ orgId: currentOrg.id }}
|
||||||
|
>
|
||||||
{({ isActive }) => (
|
{({ isActive }) => (
|
||||||
<Tab variant={variant} value={isActive ? "selected" : ""}>
|
<Tab variant={variant} value={isActive ? "selected" : ""}>
|
||||||
App Connections
|
App Connections
|
||||||
</Tab>
|
</Tab>
|
||||||
)}
|
)}
|
||||||
</Link>
|
</Link>
|
||||||
<Link to="/organization/networking">
|
<Link to="/organizations/$orgId/networking" params={{ orgId: currentOrg.id }}>
|
||||||
{({ isActive }) => (
|
{({ isActive }) => (
|
||||||
<Tab variant={variant} value={isActive ? "selected" : ""}>
|
<Tab variant={variant} value={isActive ? "selected" : ""}>
|
||||||
Networking
|
Networking
|
||||||
</Tab>
|
</Tab>
|
||||||
)}
|
)}
|
||||||
</Link>
|
</Link>
|
||||||
<Link to="/organization/secret-sharing">
|
<Link to="/organizations/$orgId/secret-sharing" params={{ orgId: currentOrg.id }}>
|
||||||
{({ isActive }) => (
|
{({ isActive }) => (
|
||||||
<Tab value={isActive ? "selected" : ""} variant={variant}>
|
<Tab value={isActive ? "selected" : ""} variant={variant}>
|
||||||
Secret Sharing
|
Secret Sharing
|
||||||
</Tab>
|
</Tab>
|
||||||
)}
|
)}
|
||||||
</Link>
|
</Link>
|
||||||
<Link to="/organization/access-management">
|
<Link
|
||||||
|
to="/organizations/$orgId/access-management"
|
||||||
|
params={{ orgId: currentOrg.id }}
|
||||||
|
>
|
||||||
{({ isActive }) => (
|
{({ isActive }) => (
|
||||||
<Tab
|
<Tab
|
||||||
variant={variant}
|
variant={variant}
|
||||||
value={
|
value={
|
||||||
isActive ||
|
isActive ||
|
||||||
pathname.match(
|
pathname.match(/organizations\/[^/]+\/(members|identities|groups|roles)/)
|
||||||
/organization\/members|organization\/identities|organization\/groups|organization\/roles/
|
|
||||||
)
|
|
||||||
? "selected"
|
? "selected"
|
||||||
: ""
|
: ""
|
||||||
}
|
}
|
||||||
@@ -77,7 +81,7 @@ export const OrgNavBar = ({ isHidden }: Props) => {
|
|||||||
</Tab>
|
</Tab>
|
||||||
)}
|
)}
|
||||||
</Link>
|
</Link>
|
||||||
<Link to="/organization/audit-logs">
|
<Link to="/organizations/$orgId/audit-logs" params={{ orgId: currentOrg.id }}>
|
||||||
{({ isActive }) => (
|
{({ isActive }) => (
|
||||||
<Tab variant={variant} value={isActive ? "selected" : ""}>
|
<Tab variant={variant} value={isActive ? "selected" : ""}>
|
||||||
Audit Logs
|
Audit Logs
|
||||||
@@ -85,7 +89,7 @@ export const OrgNavBar = ({ isHidden }: Props) => {
|
|||||||
)}
|
)}
|
||||||
</Link>
|
</Link>
|
||||||
{isRootOrganization && (
|
{isRootOrganization && (
|
||||||
<Link to="/organization/billing">
|
<Link to="/organizations/$orgId/billing" params={{ orgId: currentOrg.id }}>
|
||||||
{({ isActive }) => (
|
{({ isActive }) => (
|
||||||
<Tab variant={variant} value={isActive ? "selected" : ""}>
|
<Tab variant={variant} value={isActive ? "selected" : ""}>
|
||||||
Usage & Billing
|
Usage & Billing
|
||||||
@@ -93,7 +97,7 @@ export const OrgNavBar = ({ isHidden }: Props) => {
|
|||||||
)}
|
)}
|
||||||
</Link>
|
</Link>
|
||||||
)}
|
)}
|
||||||
<Link to="/organization/settings">
|
<Link to="/organizations/$orgId/settings" params={{ orgId: currentOrg.id }}>
|
||||||
{({ isActive }) => (
|
{({ isActive }) => (
|
||||||
<Tab variant={variant} value={isActive ? "selected" : ""}>
|
<Tab variant={variant} value={isActive ? "selected" : ""}>
|
||||||
Settings
|
Settings
|
||||||
|
|||||||
@@ -4,13 +4,14 @@ import { motion } from "framer-motion";
|
|||||||
|
|
||||||
import { UpgradePlanModal } from "@app/components/license/UpgradePlanModal";
|
import { UpgradePlanModal } from "@app/components/license/UpgradePlanModal";
|
||||||
import { Tab, TabList, Tabs } from "@app/components/v2";
|
import { Tab, TabList, Tabs } from "@app/components/v2";
|
||||||
import { useProject, useProjectPermission, useSubscription } from "@app/context";
|
import { useOrganization, useProject, useProjectPermission, useSubscription } from "@app/context";
|
||||||
import { usePopUp } from "@app/hooks";
|
import { usePopUp } from "@app/hooks";
|
||||||
|
|
||||||
import { AssumePrivilegeModeBanner } from "../ProjectLayout/components/AssumePrivilegeModeBanner";
|
import { AssumePrivilegeModeBanner } from "../ProjectLayout/components/AssumePrivilegeModeBanner";
|
||||||
|
|
||||||
export const PamLayout = () => {
|
export const PamLayout = () => {
|
||||||
const { currentProject } = useProject();
|
const { currentProject } = useProject();
|
||||||
|
const { currentOrg } = useOrganization();
|
||||||
const { subscription } = useSubscription();
|
const { subscription } = useSubscription();
|
||||||
const { assumedPrivilegeDetails } = useProjectPermission();
|
const { assumedPrivilegeDetails } = useProjectPermission();
|
||||||
const location = useLocation();
|
const location = useLocation();
|
||||||
@@ -42,32 +43,36 @@ export const PamLayout = () => {
|
|||||||
<Tabs value="selected">
|
<Tabs value="selected">
|
||||||
<TabList className="border-b-0">
|
<TabList className="border-b-0">
|
||||||
<Link
|
<Link
|
||||||
to="/projects/pam/$projectId/accounts"
|
to="/organizations/$orgId/projects/pam/$projectId/accounts"
|
||||||
params={{
|
params={{
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId: currentProject.id
|
projectId: currentProject.id
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{({ isActive }) => <Tab value={isActive ? "selected" : ""}>Accounts</Tab>}
|
{({ isActive }) => <Tab value={isActive ? "selected" : ""}>Accounts</Tab>}
|
||||||
</Link>
|
</Link>
|
||||||
<Link
|
<Link
|
||||||
to="/projects/pam/$projectId/resources"
|
to="/organizations/$orgId/projects/pam/$projectId/resources"
|
||||||
params={{
|
params={{
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId: currentProject.id
|
projectId: currentProject.id
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{({ isActive }) => <Tab value={isActive ? "selected" : ""}>Resources</Tab>}
|
{({ isActive }) => <Tab value={isActive ? "selected" : ""}>Resources</Tab>}
|
||||||
</Link>
|
</Link>
|
||||||
<Link
|
<Link
|
||||||
to="/projects/pam/$projectId/sessions"
|
to="/organizations/$orgId/projects/pam/$projectId/sessions"
|
||||||
params={{
|
params={{
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId: currentProject.id
|
projectId: currentProject.id
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{({ isActive }) => <Tab value={isActive ? "selected" : ""}>Sessions</Tab>}
|
{({ isActive }) => <Tab value={isActive ? "selected" : ""}>Sessions</Tab>}
|
||||||
</Link>
|
</Link>
|
||||||
<Link
|
<Link
|
||||||
to="/projects/pam/$projectId/access-management"
|
to="/organizations/$orgId/projects/pam/$projectId/access-management"
|
||||||
params={{
|
params={{
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId: currentProject.id
|
projectId: currentProject.id
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
@@ -85,16 +90,18 @@ export const PamLayout = () => {
|
|||||||
)}
|
)}
|
||||||
</Link>
|
</Link>
|
||||||
<Link
|
<Link
|
||||||
to="/projects/pam/$projectId/audit-logs"
|
to="/organizations/$orgId/projects/pam/$projectId/audit-logs"
|
||||||
params={{
|
params={{
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId: currentProject.id
|
projectId: currentProject.id
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{({ isActive }) => <Tab value={isActive ? "selected" : ""}>Audit Logs</Tab>}
|
{({ isActive }) => <Tab value={isActive ? "selected" : ""}>Audit Logs</Tab>}
|
||||||
</Link>
|
</Link>
|
||||||
<Link
|
<Link
|
||||||
to="/projects/pam/$projectId/settings"
|
to="/organizations/$orgId/projects/pam/$projectId/settings"
|
||||||
params={{
|
params={{
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId: currentProject.id
|
projectId: currentProject.id
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import { Link, Outlet, useLocation } from "@tanstack/react-router";
|
|||||||
import { motion } from "framer-motion";
|
import { motion } from "framer-motion";
|
||||||
|
|
||||||
import { Tab, TabList, Tabs } from "@app/components/v2";
|
import { Tab, TabList, Tabs } from "@app/components/v2";
|
||||||
import { useProject, useProjectPermission, useSubscription } from "@app/context";
|
import { useOrganization, useProject, useProjectPermission, useSubscription } from "@app/context";
|
||||||
import {
|
import {
|
||||||
useListWorkspaceCertificateTemplates,
|
useListWorkspaceCertificateTemplates,
|
||||||
useListWorkspacePkiSubscribers
|
useListWorkspacePkiSubscribers
|
||||||
@@ -11,6 +11,7 @@ import {
|
|||||||
import { AssumePrivilegeModeBanner } from "../ProjectLayout/components/AssumePrivilegeModeBanner";
|
import { AssumePrivilegeModeBanner } from "../ProjectLayout/components/AssumePrivilegeModeBanner";
|
||||||
|
|
||||||
export const PkiManagerLayout = () => {
|
export const PkiManagerLayout = () => {
|
||||||
|
const { currentOrg } = useOrganization();
|
||||||
const { currentProject } = useProject();
|
const { currentProject } = useProject();
|
||||||
const { assumedPrivilegeDetails } = useProjectPermission();
|
const { assumedPrivilegeDetails } = useProjectPermission();
|
||||||
const { subscription } = useSubscription();
|
const { subscription } = useSubscription();
|
||||||
@@ -42,16 +43,18 @@ export const PkiManagerLayout = () => {
|
|||||||
<Tabs value="selected">
|
<Tabs value="selected">
|
||||||
<TabList className="border-b-0">
|
<TabList className="border-b-0">
|
||||||
<Link
|
<Link
|
||||||
to="/projects/cert-management/$projectId/policies"
|
to="/organizations/$orgId/projects/cert-management/$projectId/policies"
|
||||||
params={{
|
params={{
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId: currentProject.id
|
projectId: currentProject.id
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{({ isActive }) => <Tab value={isActive ? "selected" : ""}>Certificates</Tab>}
|
{({ isActive }) => <Tab value={isActive ? "selected" : ""}>Certificates</Tab>}
|
||||||
</Link>
|
</Link>
|
||||||
<Link
|
<Link
|
||||||
to="/projects/cert-management/$projectId/certificate-authorities"
|
to="/organizations/$orgId/projects/cert-management/$projectId/certificate-authorities"
|
||||||
params={{
|
params={{
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId: currentProject.id
|
projectId: currentProject.id
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
@@ -62,24 +65,27 @@ export const PkiManagerLayout = () => {
|
|||||||
)}
|
)}
|
||||||
</Link>
|
</Link>
|
||||||
<Link
|
<Link
|
||||||
to="/projects/cert-management/$projectId/alerting"
|
to="/organizations/$orgId/projects/cert-management/$projectId/alerting"
|
||||||
params={{
|
params={{
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId: currentProject.id
|
projectId: currentProject.id
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{({ isActive }) => <Tab value={isActive ? "selected" : ""}>Alerting</Tab>}
|
{({ isActive }) => <Tab value={isActive ? "selected" : ""}>Alerting</Tab>}
|
||||||
</Link>
|
</Link>
|
||||||
<Link
|
<Link
|
||||||
to="/projects/cert-management/$projectId/integrations"
|
to="/organizations/$orgId/projects/cert-management/$projectId/integrations"
|
||||||
params={{
|
params={{
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId: currentProject.id
|
projectId: currentProject.id
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{({ isActive }) => <Tab value={isActive ? "selected" : ""}>Integrations</Tab>}
|
{({ isActive }) => <Tab value={isActive ? "selected" : ""}>Integrations</Tab>}
|
||||||
</Link>
|
</Link>
|
||||||
<Link
|
<Link
|
||||||
to="/projects/cert-management/$projectId/app-connections"
|
to="/organizations/$orgId/projects/cert-management/$projectId/app-connections"
|
||||||
params={{
|
params={{
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId: currentProject.id
|
projectId: currentProject.id
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
@@ -89,8 +95,9 @@ export const PkiManagerLayout = () => {
|
|||||||
<>
|
<>
|
||||||
{(subscription.pkiLegacyTemplates || hasExistingSubscribers) && (
|
{(subscription.pkiLegacyTemplates || hasExistingSubscribers) && (
|
||||||
<Link
|
<Link
|
||||||
to="/projects/cert-management/$projectId/subscribers"
|
to="/organizations/$orgId/projects/cert-management/$projectId/subscribers"
|
||||||
params={{
|
params={{
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId: currentProject.id
|
projectId: currentProject.id
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
@@ -101,8 +108,9 @@ export const PkiManagerLayout = () => {
|
|||||||
)}
|
)}
|
||||||
{(subscription.pkiLegacyTemplates || hasExistingTemplates) && (
|
{(subscription.pkiLegacyTemplates || hasExistingTemplates) && (
|
||||||
<Link
|
<Link
|
||||||
to="/projects/cert-management/$projectId/certificate-templates"
|
to="/organizations/$orgId/projects/cert-management/$projectId/certificate-templates"
|
||||||
params={{
|
params={{
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId: currentProject.id
|
projectId: currentProject.id
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
@@ -116,8 +124,9 @@ export const PkiManagerLayout = () => {
|
|||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
<Link
|
<Link
|
||||||
to="/projects/cert-management/$projectId/access-management"
|
to="/organizations/$orgId/projects/cert-management/$projectId/access-management"
|
||||||
params={{
|
params={{
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId: currentProject.id
|
projectId: currentProject.id
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
@@ -135,16 +144,18 @@ export const PkiManagerLayout = () => {
|
|||||||
)}
|
)}
|
||||||
</Link>
|
</Link>
|
||||||
<Link
|
<Link
|
||||||
to="/projects/cert-management/$projectId/audit-logs"
|
to="/organizations/$orgId/projects/cert-management/$projectId/audit-logs"
|
||||||
params={{
|
params={{
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId: currentProject.id
|
projectId: currentProject.id
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{({ isActive }) => <Tab value={isActive ? "selected" : ""}>Audit Logs</Tab>}
|
{({ isActive }) => <Tab value={isActive ? "selected" : ""}>Audit Logs</Tab>}
|
||||||
</Link>
|
</Link>
|
||||||
<Link
|
<Link
|
||||||
to="/projects/cert-management/$projectId/settings"
|
to="/organizations/$orgId/projects/cert-management/$projectId/settings"
|
||||||
params={{
|
params={{
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId: currentProject.id
|
projectId: currentProject.id
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { motion } from "framer-motion";
|
|||||||
|
|
||||||
import { Tab, TabList, Tabs } from "@app/components/v2";
|
import { Tab, TabList, Tabs } from "@app/components/v2";
|
||||||
import { Badge } from "@app/components/v3";
|
import { Badge } from "@app/components/v3";
|
||||||
import { useProject, useProjectPermission } from "@app/context";
|
import { useOrganization, useProject, useProjectPermission } from "@app/context";
|
||||||
import {
|
import {
|
||||||
useGetAccessRequestsCount,
|
useGetAccessRequestsCount,
|
||||||
useGetSecretApprovalRequestCount,
|
useGetSecretApprovalRequestCount,
|
||||||
@@ -15,6 +15,7 @@ import { AssumePrivilegeModeBanner } from "../ProjectLayout/components/AssumePri
|
|||||||
export const SecretManagerLayout = () => {
|
export const SecretManagerLayout = () => {
|
||||||
const { currentProject, projectId } = useProject();
|
const { currentProject, projectId } = useProject();
|
||||||
const { assumedPrivilegeDetails } = useProjectPermission();
|
const { assumedPrivilegeDetails } = useProjectPermission();
|
||||||
|
const { currentOrg } = useOrganization();
|
||||||
const location = useLocation();
|
const location = useLocation();
|
||||||
|
|
||||||
const projectSlug = currentProject?.slug || "";
|
const projectSlug = currentProject?.slug || "";
|
||||||
@@ -52,8 +53,9 @@ export const SecretManagerLayout = () => {
|
|||||||
<Tabs value="selected">
|
<Tabs value="selected">
|
||||||
<TabList className="border-b-0">
|
<TabList className="border-b-0">
|
||||||
<Link
|
<Link
|
||||||
to="/projects/secret-management/$projectId/overview"
|
to="/organizations/$orgId/projects/secret-management/$projectId/overview"
|
||||||
params={{
|
params={{
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId: currentProject.id,
|
projectId: currentProject.id,
|
||||||
...(currentProject.environments.length
|
...(currentProject.environments.length
|
||||||
? { envSlug: currentProject.environments[0]?.slug }
|
? { envSlug: currentProject.environments[0]?.slug }
|
||||||
@@ -73,8 +75,9 @@ export const SecretManagerLayout = () => {
|
|||||||
)}
|
)}
|
||||||
</Link>
|
</Link>
|
||||||
<Link
|
<Link
|
||||||
to="/projects/secret-management/$projectId/approval"
|
to="/organizations/$orgId/projects/secret-management/$projectId/approval"
|
||||||
params={{
|
params={{
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId: currentProject.id
|
projectId: currentProject.id
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
@@ -92,8 +95,9 @@ export const SecretManagerLayout = () => {
|
|||||||
)}
|
)}
|
||||||
</Link>
|
</Link>
|
||||||
<Link
|
<Link
|
||||||
to="/projects/secret-management/$projectId/integrations"
|
to="/organizations/$orgId/projects/secret-management/$projectId/integrations"
|
||||||
params={{
|
params={{
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId: currentProject.id
|
projectId: currentProject.id
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
@@ -101,8 +105,9 @@ export const SecretManagerLayout = () => {
|
|||||||
</Link>
|
</Link>
|
||||||
{Boolean(secretRotations?.length) && (
|
{Boolean(secretRotations?.length) && (
|
||||||
<Link
|
<Link
|
||||||
to="/projects/secret-management/$projectId/secret-rotation"
|
to="/organizations/$orgId/projects/secret-management/$projectId/secret-rotation"
|
||||||
params={{
|
params={{
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId: currentProject.id
|
projectId: currentProject.id
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
@@ -112,16 +117,18 @@ export const SecretManagerLayout = () => {
|
|||||||
</Link>
|
</Link>
|
||||||
)}
|
)}
|
||||||
<Link
|
<Link
|
||||||
to="/projects/secret-management/$projectId/app-connections"
|
to="/organizations/$orgId/projects/secret-management/$projectId/app-connections"
|
||||||
params={{
|
params={{
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId: currentProject.id
|
projectId: currentProject.id
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{({ isActive }) => <Tab value={isActive ? "selected" : ""}>App Connections</Tab>}
|
{({ isActive }) => <Tab value={isActive ? "selected" : ""}>App Connections</Tab>}
|
||||||
</Link>
|
</Link>
|
||||||
<Link
|
<Link
|
||||||
to="/projects/secret-management/$projectId/access-management"
|
to="/organizations/$orgId/projects/secret-management/$projectId/access-management"
|
||||||
params={{
|
params={{
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId: currentProject.id
|
projectId: currentProject.id
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
@@ -139,16 +146,18 @@ export const SecretManagerLayout = () => {
|
|||||||
)}
|
)}
|
||||||
</Link>
|
</Link>
|
||||||
<Link
|
<Link
|
||||||
to="/projects/secret-management/$projectId/audit-logs"
|
to="/organizations/$orgId/projects/secret-management/$projectId/audit-logs"
|
||||||
params={{
|
params={{
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId: currentProject.id
|
projectId: currentProject.id
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{({ isActive }) => <Tab value={isActive ? "selected" : ""}>Audit Logs</Tab>}
|
{({ isActive }) => <Tab value={isActive ? "selected" : ""}>Audit Logs</Tab>}
|
||||||
</Link>
|
</Link>
|
||||||
<Link
|
<Link
|
||||||
to="/projects/secret-management/$projectId/settings"
|
to="/organizations/$orgId/projects/secret-management/$projectId/settings"
|
||||||
params={{
|
params={{
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId: currentProject.id
|
projectId: currentProject.id
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import { Tab, TabList, Tabs } from "@app/components/v2";
|
|||||||
import { Badge } from "@app/components/v3";
|
import { Badge } from "@app/components/v3";
|
||||||
import {
|
import {
|
||||||
ProjectPermissionSub,
|
ProjectPermissionSub,
|
||||||
|
useOrganization,
|
||||||
useProject,
|
useProject,
|
||||||
useProjectPermission,
|
useProjectPermission,
|
||||||
useSubscription
|
useSubscription
|
||||||
@@ -15,6 +16,7 @@ import { useGetSecretScanningUnresolvedFindingCount } from "@app/hooks/api/secre
|
|||||||
import { AssumePrivilegeModeBanner } from "../ProjectLayout/components/AssumePrivilegeModeBanner";
|
import { AssumePrivilegeModeBanner } from "../ProjectLayout/components/AssumePrivilegeModeBanner";
|
||||||
|
|
||||||
export const SecretScanningLayout = () => {
|
export const SecretScanningLayout = () => {
|
||||||
|
const { currentOrg } = useOrganization();
|
||||||
const { currentProject } = useProject();
|
const { currentProject } = useProject();
|
||||||
const { assumedPrivilegeDetails } = useProjectPermission();
|
const { assumedPrivilegeDetails } = useProjectPermission();
|
||||||
|
|
||||||
@@ -50,16 +52,18 @@ export const SecretScanningLayout = () => {
|
|||||||
<Tabs value="selected">
|
<Tabs value="selected">
|
||||||
<TabList className="border-b-0">
|
<TabList className="border-b-0">
|
||||||
<Link
|
<Link
|
||||||
to="/projects/secret-scanning/$projectId/data-sources"
|
to="/organizations/$orgId/projects/secret-scanning/$projectId/data-sources"
|
||||||
params={{
|
params={{
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId: currentProject.id
|
projectId: currentProject.id
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{({ isActive }) => <Tab value={isActive ? "selected" : ""}>Data Sources</Tab>}
|
{({ isActive }) => <Tab value={isActive ? "selected" : ""}>Data Sources</Tab>}
|
||||||
</Link>
|
</Link>
|
||||||
<Link
|
<Link
|
||||||
to="/projects/secret-scanning/$projectId/findings"
|
to="/organizations/$orgId/projects/secret-scanning/$projectId/findings"
|
||||||
params={{
|
params={{
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId: currentProject.id
|
projectId: currentProject.id
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
@@ -75,16 +79,18 @@ export const SecretScanningLayout = () => {
|
|||||||
)}
|
)}
|
||||||
</Link>
|
</Link>
|
||||||
<Link
|
<Link
|
||||||
to="/projects/secret-scanning/$projectId/app-connections"
|
to="/organizations/$orgId/projects/secret-scanning/$projectId/app-connections"
|
||||||
params={{
|
params={{
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId: currentProject.id
|
projectId: currentProject.id
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{({ isActive }) => <Tab value={isActive ? "selected" : ""}>App Connections</Tab>}
|
{({ isActive }) => <Tab value={isActive ? "selected" : ""}>App Connections</Tab>}
|
||||||
</Link>
|
</Link>
|
||||||
<Link
|
<Link
|
||||||
to="/projects/secret-scanning/$projectId/access-management"
|
to="/organizations/$orgId/projects/secret-scanning/$projectId/access-management"
|
||||||
params={{
|
params={{
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId: currentProject.id
|
projectId: currentProject.id
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
@@ -102,16 +108,18 @@ export const SecretScanningLayout = () => {
|
|||||||
)}
|
)}
|
||||||
</Link>
|
</Link>
|
||||||
<Link
|
<Link
|
||||||
to="/projects/secret-scanning/$projectId/audit-logs"
|
to="/organizations/$orgId/projects/secret-scanning/$projectId/audit-logs"
|
||||||
params={{
|
params={{
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId: currentProject.id
|
projectId: currentProject.id
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{({ isActive }) => <Tab value={isActive ? "selected" : ""}>Audit Logs</Tab>}
|
{({ isActive }) => <Tab value={isActive ? "selected" : ""}>Audit Logs</Tab>}
|
||||||
</Link>
|
</Link>
|
||||||
<Link
|
<Link
|
||||||
to="/projects/secret-scanning/$projectId/settings"
|
to="/organizations/$orgId/projects/secret-scanning/$projectId/settings"
|
||||||
params={{
|
params={{
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId: currentProject.id
|
projectId: currentProject.id
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import { Tab, TabList, Tabs } from "@app/components/v2";
|
|||||||
import {
|
import {
|
||||||
ProjectPermissionActions,
|
ProjectPermissionActions,
|
||||||
ProjectPermissionSub,
|
ProjectPermissionSub,
|
||||||
|
useOrganization,
|
||||||
useProject,
|
useProject,
|
||||||
useProjectPermission
|
useProjectPermission
|
||||||
} from "@app/context";
|
} from "@app/context";
|
||||||
@@ -13,6 +14,7 @@ import {
|
|||||||
import { AssumePrivilegeModeBanner } from "../ProjectLayout/components/AssumePrivilegeModeBanner";
|
import { AssumePrivilegeModeBanner } from "../ProjectLayout/components/AssumePrivilegeModeBanner";
|
||||||
|
|
||||||
export const SshLayout = () => {
|
export const SshLayout = () => {
|
||||||
|
const { currentOrg } = useOrganization();
|
||||||
const { currentProject } = useProject();
|
const { currentProject } = useProject();
|
||||||
const { assumedPrivilegeDetails } = useProjectPermission();
|
const { assumedPrivilegeDetails } = useProjectPermission();
|
||||||
const location = useLocation();
|
const location = useLocation();
|
||||||
@@ -32,8 +34,9 @@ export const SshLayout = () => {
|
|||||||
<Tabs value="selected">
|
<Tabs value="selected">
|
||||||
<TabList className="border-b-0">
|
<TabList className="border-b-0">
|
||||||
<Link
|
<Link
|
||||||
to="/projects/ssh/$projectId/overview"
|
to="/organizations/$orgId/projects/ssh/$projectId/overview"
|
||||||
params={{
|
params={{
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId: currentProject.id
|
projectId: currentProject.id
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
@@ -54,8 +57,9 @@ export const SshLayout = () => {
|
|||||||
{(isAllowed) =>
|
{(isAllowed) =>
|
||||||
isAllowed && (
|
isAllowed && (
|
||||||
<Link
|
<Link
|
||||||
to="/projects/ssh/$projectId/cas"
|
to="/organizations/$orgId/projects/ssh/$projectId/cas"
|
||||||
params={{
|
params={{
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId: currentProject.id
|
projectId: currentProject.id
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
@@ -71,8 +75,9 @@ export const SshLayout = () => {
|
|||||||
}
|
}
|
||||||
</ProjectPermissionCan>
|
</ProjectPermissionCan>
|
||||||
<Link
|
<Link
|
||||||
to="/projects/ssh/$projectId/access-management"
|
to="/organizations/$orgId/projects/ssh/$projectId/access-management"
|
||||||
params={{
|
params={{
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId: currentProject.id
|
projectId: currentProject.id
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
@@ -90,16 +95,18 @@ export const SshLayout = () => {
|
|||||||
)}
|
)}
|
||||||
</Link>
|
</Link>
|
||||||
<Link
|
<Link
|
||||||
to="/projects/ssh/$projectId/audit-logs"
|
to="/organizations/$orgId/projects/ssh/$projectId/audit-logs"
|
||||||
params={{
|
params={{
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId: currentProject.id
|
projectId: currentProject.id
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{({ isActive }) => <Tab value={isActive ? "selected" : ""}>Audit Logs</Tab>}
|
{({ isActive }) => <Tab value={isActive ? "selected" : ""}>Audit Logs</Tab>}
|
||||||
</Link>
|
</Link>
|
||||||
<Link
|
<Link
|
||||||
to="/projects/ssh/$projectId/settings"
|
to="/organizations/$orgId/projects/ssh/$projectId/settings"
|
||||||
params={{
|
params={{
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId: currentProject.id
|
projectId: currentProject.id
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -12,7 +12,10 @@ export const navigateUserToOrg = async (navigate: NavigateFn, organizationId?: s
|
|||||||
|
|
||||||
if (organizationId) {
|
if (organizationId) {
|
||||||
localStorage.setItem("orgData.id", organizationId);
|
localStorage.setItem("orgData.id", organizationId);
|
||||||
navigate({ to: "/organization/projects" });
|
navigate({
|
||||||
|
to: "/organizations/$orgId/projects",
|
||||||
|
params: { orgId: organizationId }
|
||||||
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -20,7 +23,10 @@ export const navigateUserToOrg = async (navigate: NavigateFn, organizationId?: s
|
|||||||
// user is part of at least 1 non-auth enforced org
|
// user is part of at least 1 non-auth enforced org
|
||||||
const userOrg = nonAuthEnforcedOrgs[0] && nonAuthEnforcedOrgs[0].id;
|
const userOrg = nonAuthEnforcedOrgs[0] && nonAuthEnforcedOrgs[0].id;
|
||||||
localStorage.setItem("orgData.id", userOrg);
|
localStorage.setItem("orgData.id", userOrg);
|
||||||
navigate({ to: "/organization/projects" });
|
navigate({
|
||||||
|
to: "/organizations/$orgId/projects",
|
||||||
|
params: { orgId: userOrg }
|
||||||
|
});
|
||||||
} else {
|
} else {
|
||||||
// user is not part of any non-auth enforced orgs
|
// user is not part of any non-auth enforced orgs
|
||||||
localStorage.removeItem("orgData.id");
|
localStorage.removeItem("orgData.id");
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import { z } from "zod";
|
|||||||
|
|
||||||
import { createNotification } from "@app/components/notifications";
|
import { createNotification } from "@app/components/notifications";
|
||||||
import { Button, FormControl, Input, Modal, ModalContent } from "@app/components/v2";
|
import { Button, FormControl, Input, Modal, ModalContent } from "@app/components/v2";
|
||||||
import { useProject } from "@app/context";
|
import { useOrganization, useProject } from "@app/context";
|
||||||
import {
|
import {
|
||||||
useCreatePkiCollection,
|
useCreatePkiCollection,
|
||||||
useGetPkiCollectionById,
|
useGetPkiCollectionById,
|
||||||
@@ -28,6 +28,7 @@ type Props = {
|
|||||||
|
|
||||||
export const PkiCollectionModal = ({ popUp, handlePopUpToggle }: Props) => {
|
export const PkiCollectionModal = ({ popUp, handlePopUpToggle }: Props) => {
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
|
const { currentOrg } = useOrganization();
|
||||||
const { currentProject } = useProject();
|
const { currentProject } = useProject();
|
||||||
const projectId = currentProject?.id || "";
|
const projectId = currentProject?.id || "";
|
||||||
|
|
||||||
@@ -81,8 +82,9 @@ export const PkiCollectionModal = ({ popUp, handlePopUpToggle }: Props) => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
navigate({
|
navigate({
|
||||||
to: "/projects/cert-management/$projectId/pki-collections/$collectionId",
|
to: "/organizations/$orgId/projects/cert-management/$projectId/pki-collections/$collectionId",
|
||||||
params: {
|
params: {
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId,
|
projectId,
|
||||||
collectionId
|
collectionId
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,7 +19,12 @@ import {
|
|||||||
THead,
|
THead,
|
||||||
Tr
|
Tr
|
||||||
} from "@app/components/v2";
|
} from "@app/components/v2";
|
||||||
import { ProjectPermissionActions, ProjectPermissionSub, useProject } from "@app/context";
|
import {
|
||||||
|
ProjectPermissionActions,
|
||||||
|
ProjectPermissionSub,
|
||||||
|
useOrganization,
|
||||||
|
useProject
|
||||||
|
} from "@app/context";
|
||||||
import { useListWorkspacePkiCollections } from "@app/hooks/api";
|
import { useListWorkspacePkiCollections } from "@app/hooks/api";
|
||||||
import { UsePopUpState } from "@app/hooks/usePopUp";
|
import { UsePopUpState } from "@app/hooks/usePopUp";
|
||||||
|
|
||||||
@@ -31,6 +36,7 @@ type Props = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const PkiCollectionTable = ({ handlePopUpOpen }: Props) => {
|
export const PkiCollectionTable = ({ handlePopUpOpen }: Props) => {
|
||||||
|
const { currentOrg } = useOrganization();
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
const { currentProject } = useProject();
|
const { currentProject } = useProject();
|
||||||
const projectId = currentProject?.id || "";
|
const projectId = currentProject?.id || "";
|
||||||
@@ -60,8 +66,9 @@ export const PkiCollectionTable = ({ handlePopUpOpen }: Props) => {
|
|||||||
key={`pki-collection-${pkiCollection.id}`}
|
key={`pki-collection-${pkiCollection.id}`}
|
||||||
onClick={() =>
|
onClick={() =>
|
||||||
navigate({
|
navigate({
|
||||||
to: "/projects/cert-management/$projectId/pki-collections/$collectionId",
|
to: "/organizations/$orgId/projects/cert-management/$projectId/pki-collections/$collectionId",
|
||||||
params: {
|
params: {
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId,
|
projectId,
|
||||||
collectionId: pkiCollection.id
|
collectionId: pkiCollection.id
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { createFileRoute } from "@tanstack/react-router";
|
|||||||
import { AlertingPage } from "./AlertingPage";
|
import { AlertingPage } from "./AlertingPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/cert-management/$projectId/_cert-manager-layout/alerting"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/cert-management/$projectId/_cert-manager-layout/alerting"
|
||||||
)({
|
)({
|
||||||
component: AlertingPage,
|
component: AlertingPage,
|
||||||
beforeLoad: ({ context }) => {
|
beforeLoad: ({ context }) => {
|
||||||
|
|||||||
@@ -17,7 +17,12 @@ import {
|
|||||||
Tooltip
|
Tooltip
|
||||||
} from "@app/components/v2";
|
} from "@app/components/v2";
|
||||||
import { ROUTE_PATHS } from "@app/const/routes";
|
import { ROUTE_PATHS } from "@app/const/routes";
|
||||||
import { ProjectPermissionActions, ProjectPermissionSub, useProject } from "@app/context";
|
import {
|
||||||
|
ProjectPermissionActions,
|
||||||
|
ProjectPermissionSub,
|
||||||
|
useOrganization,
|
||||||
|
useProject
|
||||||
|
} from "@app/context";
|
||||||
import { CaType, useDeleteCa, useGetCa } from "@app/hooks/api";
|
import { CaType, useDeleteCa, useGetCa } from "@app/hooks/api";
|
||||||
import { TInternalCertificateAuthority } from "@app/hooks/api/ca/types";
|
import { TInternalCertificateAuthority } from "@app/hooks/api/ca/types";
|
||||||
import { ProjectType } from "@app/hooks/api/projects/types";
|
import { ProjectType } from "@app/hooks/api/projects/types";
|
||||||
@@ -34,6 +39,7 @@ import {
|
|||||||
|
|
||||||
const Page = () => {
|
const Page = () => {
|
||||||
const { currentProject } = useProject();
|
const { currentProject } = useProject();
|
||||||
|
const { currentOrg } = useOrganization();
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
const params = useParams({
|
const params = useParams({
|
||||||
from: ROUTE_PATHS.CertManager.CertAuthDetailsByIDPage.id
|
from: ROUTE_PATHS.CertManager.CertAuthDetailsByIDPage.id
|
||||||
@@ -72,8 +78,9 @@ const Page = () => {
|
|||||||
|
|
||||||
handlePopUpClose("deleteCa");
|
handlePopUpClose("deleteCa");
|
||||||
navigate({
|
navigate({
|
||||||
to: "/projects/cert-management/$projectId/certificate-authorities",
|
to: "/organizations/$orgId/projects/cert-management/$projectId/certificate-authorities",
|
||||||
params: {
|
params: {
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId
|
projectId
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -84,8 +91,9 @@ const Page = () => {
|
|||||||
{data && (
|
{data && (
|
||||||
<div className="mx-auto mb-6 w-full max-w-8xl">
|
<div className="mx-auto mb-6 w-full max-w-8xl">
|
||||||
<Link
|
<Link
|
||||||
to="/projects/cert-management/$projectId/certificate-authorities"
|
to="/organizations/$orgId/projects/cert-management/$projectId/certificate-authorities"
|
||||||
params={{
|
params={{
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId
|
projectId
|
||||||
}}
|
}}
|
||||||
className="mb-4 flex items-center gap-x-2 text-sm text-mineshaft-400"
|
className="mb-4 flex items-center gap-x-2 text-sm text-mineshaft-400"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { createFileRoute, linkOptions } from "@tanstack/react-router";
|
|||||||
import { CertAuthDetailsByIDPage } from "./CertAuthDetailsByIDPage";
|
import { CertAuthDetailsByIDPage } from "./CertAuthDetailsByIDPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/cert-management/$projectId/_cert-manager-layout/ca/$caName"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/cert-management/$projectId/_cert-manager-layout/ca/$caName"
|
||||||
)({
|
)({
|
||||||
component: CertAuthDetailsByIDPage,
|
component: CertAuthDetailsByIDPage,
|
||||||
beforeLoad: ({ context, params }) => {
|
beforeLoad: ({ context, params }) => {
|
||||||
@@ -13,8 +13,9 @@ export const Route = createFileRoute(
|
|||||||
{
|
{
|
||||||
label: "Certificate Authorities",
|
label: "Certificate Authorities",
|
||||||
link: linkOptions({
|
link: linkOptions({
|
||||||
to: "/projects/cert-management/$projectId/certificate-authorities",
|
to: "/organizations/$orgId/projects/cert-management/$projectId/certificate-authorities",
|
||||||
params: {
|
params: {
|
||||||
|
orgId: params.orgId,
|
||||||
projectId: params.projectId
|
projectId: params.projectId
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -22,7 +22,12 @@ import {
|
|||||||
Tr
|
Tr
|
||||||
} from "@app/components/v2";
|
} from "@app/components/v2";
|
||||||
import { Badge } from "@app/components/v3";
|
import { Badge } from "@app/components/v3";
|
||||||
import { ProjectPermissionActions, ProjectPermissionSub, useProject } from "@app/context";
|
import {
|
||||||
|
ProjectPermissionActions,
|
||||||
|
ProjectPermissionSub,
|
||||||
|
useOrganization,
|
||||||
|
useProject
|
||||||
|
} from "@app/context";
|
||||||
import { CaStatus, CaType, useListCasByTypeAndProjectId } from "@app/hooks/api";
|
import { CaStatus, CaType, useListCasByTypeAndProjectId } from "@app/hooks/api";
|
||||||
import {
|
import {
|
||||||
caStatusToNameMap,
|
caStatusToNameMap,
|
||||||
@@ -46,6 +51,7 @@ type Props = {
|
|||||||
|
|
||||||
export const CaTable = ({ handlePopUpOpen }: Props) => {
|
export const CaTable = ({ handlePopUpOpen }: Props) => {
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
|
const { currentOrg } = useOrganization();
|
||||||
const { currentProject } = useProject();
|
const { currentProject } = useProject();
|
||||||
const { data, isPending } = useListCasByTypeAndProjectId(CaType.INTERNAL, currentProject.id);
|
const { data, isPending } = useListCasByTypeAndProjectId(CaType.INTERNAL, currentProject.id);
|
||||||
const cas = data as TInternalCertificateAuthority[];
|
const cas = data as TInternalCertificateAuthority[];
|
||||||
@@ -75,8 +81,9 @@ export const CaTable = ({ handlePopUpOpen }: Props) => {
|
|||||||
key={`ca-${ca.id}`}
|
key={`ca-${ca.id}`}
|
||||||
onClick={() =>
|
onClick={() =>
|
||||||
navigate({
|
navigate({
|
||||||
to: "/projects/cert-management/$projectId/ca/$caName",
|
to: "/organizations/$orgId/projects/cert-management/$projectId/ca/$caName",
|
||||||
params: {
|
params: {
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId: currentProject.id,
|
projectId: currentProject.id,
|
||||||
caName: ca.name
|
caName: ca.name
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { createFileRoute } from "@tanstack/react-router";
|
|||||||
import { CertificateAuthoritiesPage } from "./CertificateAuthoritiesPage";
|
import { CertificateAuthoritiesPage } from "./CertificateAuthoritiesPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/cert-management/$projectId/_cert-manager-layout/certificate-authorities"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/cert-management/$projectId/_cert-manager-layout/certificate-authorities"
|
||||||
)({
|
)({
|
||||||
component: CertificateAuthoritiesPage,
|
component: CertificateAuthoritiesPage,
|
||||||
beforeLoad: ({ context }) => {
|
beforeLoad: ({ context }) => {
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ const IntegrationsListPageQuerySchema = z.object({
|
|||||||
});
|
});
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/cert-management/$projectId/_cert-manager-layout/integrations/"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/cert-management/$projectId/_cert-manager-layout/integrations/"
|
||||||
)({
|
)({
|
||||||
component: IntegrationsListPage,
|
component: IntegrationsListPage,
|
||||||
validateSearch: zodValidator(IntegrationsListPageQuerySchema),
|
validateSearch: zodValidator(IntegrationsListPageQuerySchema),
|
||||||
|
|||||||
@@ -18,7 +18,12 @@ import {
|
|||||||
Tooltip
|
Tooltip
|
||||||
} from "@app/components/v2";
|
} from "@app/components/v2";
|
||||||
import { ROUTE_PATHS } from "@app/const/routes";
|
import { ROUTE_PATHS } from "@app/const/routes";
|
||||||
import { ProjectPermissionActions, ProjectPermissionSub, useProject } from "@app/context";
|
import {
|
||||||
|
ProjectPermissionActions,
|
||||||
|
ProjectPermissionSub,
|
||||||
|
useOrganization,
|
||||||
|
useProject
|
||||||
|
} from "@app/context";
|
||||||
import { useDeletePkiCollection, useGetPkiCollectionById } from "@app/hooks/api";
|
import { useDeletePkiCollection, useGetPkiCollectionById } from "@app/hooks/api";
|
||||||
import { PkiItemType } from "@app/hooks/api/pkiCollections/constants";
|
import { PkiItemType } from "@app/hooks/api/pkiCollections/constants";
|
||||||
import { ProjectType } from "@app/hooks/api/projects/types";
|
import { ProjectType } from "@app/hooks/api/projects/types";
|
||||||
@@ -34,6 +39,7 @@ export const PkiCollectionPage = () => {
|
|||||||
});
|
});
|
||||||
const collectionId = params.collectionId as string;
|
const collectionId = params.collectionId as string;
|
||||||
const { currentProject } = useProject();
|
const { currentProject } = useProject();
|
||||||
|
const { currentOrg } = useOrganization();
|
||||||
const projectId = currentProject?.id || "";
|
const projectId = currentProject?.id || "";
|
||||||
|
|
||||||
const { data } = useGetPkiCollectionById(collectionId);
|
const { data } = useGetPkiCollectionById(collectionId);
|
||||||
@@ -58,8 +64,9 @@ export const PkiCollectionPage = () => {
|
|||||||
});
|
});
|
||||||
handlePopUpClose("deletePkiCollection");
|
handlePopUpClose("deletePkiCollection");
|
||||||
navigate({
|
navigate({
|
||||||
to: "/projects/cert-management/$projectId/policies",
|
to: "/organizations/$orgId/projects/cert-management/$projectId/policies",
|
||||||
params: {
|
params: {
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId: params.projectId
|
projectId: params.projectId
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -70,8 +77,9 @@ export const PkiCollectionPage = () => {
|
|||||||
{data && (
|
{data && (
|
||||||
<div className="mx-auto mb-6 w-full max-w-8xl">
|
<div className="mx-auto mb-6 w-full max-w-8xl">
|
||||||
<Link
|
<Link
|
||||||
to="/projects/cert-management/$projectId/policies"
|
to="/organizations/$orgId/projects/cert-management/$projectId/policies"
|
||||||
params={{
|
params={{
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId: params.projectId
|
projectId: params.projectId
|
||||||
}}
|
}}
|
||||||
className="mb-4 flex items-center gap-x-2 text-sm text-mineshaft-400"
|
className="mb-4 flex items-center gap-x-2 text-sm text-mineshaft-400"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { createFileRoute, linkOptions } from "@tanstack/react-router";
|
|||||||
import { PkiCollectionDetailsByIDPage } from "./PkiCollectionDetailsByIDPage";
|
import { PkiCollectionDetailsByIDPage } from "./PkiCollectionDetailsByIDPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/cert-management/$projectId/_cert-manager-layout/pki-collections/$collectionId"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/cert-management/$projectId/_cert-manager-layout/pki-collections/$collectionId"
|
||||||
)({
|
)({
|
||||||
component: PkiCollectionDetailsByIDPage,
|
component: PkiCollectionDetailsByIDPage,
|
||||||
beforeLoad: ({ context, params }) => {
|
beforeLoad: ({ context, params }) => {
|
||||||
@@ -13,8 +13,9 @@ export const Route = createFileRoute(
|
|||||||
{
|
{
|
||||||
label: "Certificate Collections",
|
label: "Certificate Collections",
|
||||||
link: linkOptions({
|
link: linkOptions({
|
||||||
to: "/projects/cert-management/$projectId/policies",
|
to: "/organizations/$orgId/projects/cert-management/$projectId/policies",
|
||||||
params: {
|
params: {
|
||||||
|
orgId: params.orgId,
|
||||||
projectId: params.projectId
|
projectId: params.projectId
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ import { ROUTE_PATHS } from "@app/const/routes";
|
|||||||
import {
|
import {
|
||||||
ProjectPermissionPkiSubscriberActions,
|
ProjectPermissionPkiSubscriberActions,
|
||||||
ProjectPermissionSub,
|
ProjectPermissionSub,
|
||||||
|
useOrganization,
|
||||||
useProject
|
useProject
|
||||||
} from "@app/context";
|
} from "@app/context";
|
||||||
import { useDeletePkiSubscriber, useGetPkiSubscriber } from "@app/hooks/api";
|
import { useDeletePkiSubscriber, useGetPkiSubscriber } from "@app/hooks/api";
|
||||||
@@ -32,6 +33,7 @@ import { PkiSubscriberCertificatesSection, PkiSubscriberDetailsSection } from ".
|
|||||||
|
|
||||||
const Page = () => {
|
const Page = () => {
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
|
const { currentOrg } = useOrganization();
|
||||||
const { currentProject } = useProject();
|
const { currentProject } = useProject();
|
||||||
const projectId = currentProject.id;
|
const projectId = currentProject.id;
|
||||||
const subscriberName = useParams({
|
const subscriberName = useParams({
|
||||||
@@ -62,8 +64,9 @@ const Page = () => {
|
|||||||
|
|
||||||
handlePopUpClose("deletePkiSubscriber");
|
handlePopUpClose("deletePkiSubscriber");
|
||||||
navigate({
|
navigate({
|
||||||
to: "/projects/cert-management/$projectId/subscribers",
|
to: "/organizations/$orgId/projects/cert-management/$projectId/subscribers",
|
||||||
params: {
|
params: {
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId
|
projectId
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -74,8 +77,9 @@ const Page = () => {
|
|||||||
{data && (
|
{data && (
|
||||||
<div className="mx-auto mb-6 w-full max-w-8xl">
|
<div className="mx-auto mb-6 w-full max-w-8xl">
|
||||||
<Link
|
<Link
|
||||||
to="/projects/cert-management/$projectId/subscribers"
|
to="/organizations/$orgId/projects/cert-management/$projectId/subscribers"
|
||||||
params={{
|
params={{
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId
|
projectId
|
||||||
}}
|
}}
|
||||||
className="mb-4 flex items-center gap-x-2 text-sm text-mineshaft-400"
|
className="mb-4 flex items-center gap-x-2 text-sm text-mineshaft-400"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { createFileRoute, linkOptions } from "@tanstack/react-router";
|
|||||||
import { PkiSubscriberDetailsByIDPage } from "./PkiSubscriberDetailsByIDPage";
|
import { PkiSubscriberDetailsByIDPage } from "./PkiSubscriberDetailsByIDPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/cert-management/$projectId/_cert-manager-layout/subscribers/$subscriberName"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/cert-management/$projectId/_cert-manager-layout/subscribers/$subscriberName"
|
||||||
)({
|
)({
|
||||||
component: PkiSubscriberDetailsByIDPage,
|
component: PkiSubscriberDetailsByIDPage,
|
||||||
beforeLoad: ({ context, params }) => {
|
beforeLoad: ({ context, params }) => {
|
||||||
@@ -13,8 +13,9 @@ export const Route = createFileRoute(
|
|||||||
{
|
{
|
||||||
label: "Subscribers",
|
label: "Subscribers",
|
||||||
link: linkOptions({
|
link: linkOptions({
|
||||||
to: "/projects/cert-management/$projectId/subscribers",
|
to: "/organizations/$orgId/projects/cert-management/$projectId/subscribers",
|
||||||
params: {
|
params: {
|
||||||
|
orgId: params.orgId,
|
||||||
projectId: params.projectId
|
projectId: params.projectId
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ import { Badge } from "@app/components/v3";
|
|||||||
import {
|
import {
|
||||||
ProjectPermissionPkiSubscriberActions,
|
ProjectPermissionPkiSubscriberActions,
|
||||||
ProjectPermissionSub,
|
ProjectPermissionSub,
|
||||||
|
useOrganization,
|
||||||
useProject
|
useProject
|
||||||
} from "@app/context";
|
} from "@app/context";
|
||||||
import { useListWorkspacePkiSubscribers } from "@app/hooks/api";
|
import { useListWorkspacePkiSubscribers } from "@app/hooks/api";
|
||||||
@@ -49,6 +50,7 @@ type Props = {
|
|||||||
|
|
||||||
export const PkiSubscribersTable = ({ handlePopUpOpen }: Props) => {
|
export const PkiSubscribersTable = ({ handlePopUpOpen }: Props) => {
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
|
const { currentOrg } = useOrganization();
|
||||||
const { currentProject } = useProject();
|
const { currentProject } = useProject();
|
||||||
const { data, isPending } = useListWorkspacePkiSubscribers(currentProject?.id || "");
|
const { data, isPending } = useListWorkspacePkiSubscribers(currentProject?.id || "");
|
||||||
return (
|
return (
|
||||||
@@ -75,8 +77,9 @@ export const PkiSubscribersTable = ({ handlePopUpOpen }: Props) => {
|
|||||||
key={`pki-subscriber-${subscriber.id}`}
|
key={`pki-subscriber-${subscriber.id}`}
|
||||||
onClick={() =>
|
onClick={() =>
|
||||||
navigate({
|
navigate({
|
||||||
to: "/projects/cert-management/$projectId/subscribers/$subscriberName",
|
to: "/organizations/$orgId/projects/cert-management/$projectId/subscribers/$subscriberName",
|
||||||
params: {
|
params: {
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId: currentProject.id,
|
projectId: currentProject.id,
|
||||||
subscriberName: subscriber.name
|
subscriberName: subscriber.name
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { createFileRoute } from "@tanstack/react-router";
|
|||||||
import { PkiSubscribersPage } from "./PkiSubscribersPage";
|
import { PkiSubscribersPage } from "./PkiSubscribersPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/cert-management/$projectId/_cert-manager-layout/subscribers/"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/cert-management/$projectId/_cert-manager-layout/subscribers/"
|
||||||
)({
|
)({
|
||||||
component: PkiSubscribersPage,
|
component: PkiSubscribersPage,
|
||||||
beforeLoad: ({ context }) => {
|
beforeLoad: ({ context }) => {
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { IntegrationsListPageTabs } from "@app/types/integrations";
|
|||||||
import { PkiSyncDetailsByIDPage } from "./index";
|
import { PkiSyncDetailsByIDPage } from "./index";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/cert-management/$projectId/_cert-manager-layout/integrations/$syncId"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/cert-management/$projectId/_cert-manager-layout/integrations/$syncId"
|
||||||
)({
|
)({
|
||||||
component: PkiSyncDetailsByIDPage,
|
component: PkiSyncDetailsByIDPage,
|
||||||
beforeLoad: ({ context, params }) => {
|
beforeLoad: ({ context, params }) => {
|
||||||
@@ -15,7 +15,7 @@ export const Route = createFileRoute(
|
|||||||
{
|
{
|
||||||
label: "Integrations",
|
label: "Integrations",
|
||||||
link: linkOptions({
|
link: linkOptions({
|
||||||
to: "/projects/cert-management/$projectId/integrations",
|
to: "/organizations/$orgId/projects/cert-management/$projectId/integrations",
|
||||||
params,
|
params,
|
||||||
search: {
|
search: {
|
||||||
selectedTab: IntegrationsListPageTabs.PkiSyncs
|
selectedTab: IntegrationsListPageTabs.PkiSyncs
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { createFileRoute } from "@tanstack/react-router";
|
|||||||
import { PkiTemplateListPage } from "./PkiTemplateListPage";
|
import { PkiTemplateListPage } from "./PkiTemplateListPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/cert-management/$projectId/_cert-manager-layout/certificate-templates/"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/cert-management/$projectId/_cert-manager-layout/certificate-templates/"
|
||||||
)({
|
)({
|
||||||
component: PkiTemplateListPage,
|
component: PkiTemplateListPage,
|
||||||
beforeLoad: ({ context }) => {
|
beforeLoad: ({ context }) => {
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { createFileRoute } from "@tanstack/react-router";
|
|||||||
import { PoliciesPage } from "./PoliciesPage";
|
import { PoliciesPage } from "./PoliciesPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/cert-management/$projectId/_cert-manager-layout/policies"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/cert-management/$projectId/_cert-manager-layout/policies"
|
||||||
)({
|
)({
|
||||||
component: PoliciesPage,
|
component: PoliciesPage,
|
||||||
beforeLoad: ({ context }) => {
|
beforeLoad: ({ context }) => {
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { createFileRoute } from "@tanstack/react-router";
|
|||||||
import { SettingsPage } from "./SettingsPage";
|
import { SettingsPage } from "./SettingsPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/cert-management/$projectId/_cert-manager-layout/settings"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/cert-management/$projectId/_cert-manager-layout/settings"
|
||||||
)({
|
)({
|
||||||
component: SettingsPage,
|
component: SettingsPage,
|
||||||
beforeLoad: ({ context }) => {
|
beforeLoad: ({ context }) => {
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import { PkiManagerLayout } from "@app/layouts/PkiManagerLayout";
|
|||||||
import { ProjectSelect } from "@app/layouts/ProjectLayout/components/ProjectSelect";
|
import { ProjectSelect } from "@app/layouts/ProjectLayout/components/ProjectSelect";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/cert-management/$projectId/_cert-manager-layout"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/cert-management/$projectId/_cert-manager-layout"
|
||||||
)({
|
)({
|
||||||
component: PkiManagerLayout,
|
component: PkiManagerLayout,
|
||||||
beforeLoad: async ({ params, context }) => {
|
beforeLoad: async ({ params, context }) => {
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { createFileRoute } from "@tanstack/react-router";
|
|||||||
import { KmipPage } from "./KmipPage";
|
import { KmipPage } from "./KmipPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/kms/$projectId/_kms-layout/kmip"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/kms/$projectId/_kms-layout/kmip"
|
||||||
)({
|
)({
|
||||||
component: KmipPage,
|
component: KmipPage,
|
||||||
beforeLoad: ({ context }) => {
|
beforeLoad: ({ context }) => {
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { createFileRoute } from "@tanstack/react-router";
|
|||||||
import { OverviewPage } from "./OverviewPage";
|
import { OverviewPage } from "./OverviewPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/kms/$projectId/_kms-layout/overview"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/kms/$projectId/_kms-layout/overview"
|
||||||
)({
|
)({
|
||||||
component: OverviewPage,
|
component: OverviewPage,
|
||||||
beforeLoad: ({ context }) => {
|
beforeLoad: ({ context }) => {
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { createFileRoute } from "@tanstack/react-router";
|
|||||||
import { SettingsPage } from "./SettingsPage";
|
import { SettingsPage } from "./SettingsPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/kms/$projectId/_kms-layout/settings"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/kms/$projectId/_kms-layout/settings"
|
||||||
)({
|
)({
|
||||||
component: SettingsPage,
|
component: SettingsPage,
|
||||||
beforeLoad: ({ context }) => {
|
beforeLoad: ({ context }) => {
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import { KmsLayout } from "@app/layouts/KmsLayout";
|
|||||||
import { ProjectSelect } from "@app/layouts/ProjectLayout/components/ProjectSelect";
|
import { ProjectSelect } from "@app/layouts/ProjectLayout/components/ProjectSelect";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/kms/$projectId/_kms-layout"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/kms/$projectId/_kms-layout"
|
||||||
)({
|
)({
|
||||||
component: KmsLayout,
|
component: KmsLayout,
|
||||||
beforeLoad: async ({ params, context }) => {
|
beforeLoad: async ({ params, context }) => {
|
||||||
|
|||||||
@@ -6,8 +6,15 @@ import { fetchOrgSubscription, subscriptionQueryKeys } from "@app/hooks/api/subs
|
|||||||
|
|
||||||
// Route context to fill in organization's data like details, subscription etc
|
// Route context to fill in organization's data like details, subscription etc
|
||||||
export const Route = createFileRoute("/_authenticate/_inject-org-details")({
|
export const Route = createFileRoute("/_authenticate/_inject-org-details")({
|
||||||
beforeLoad: async ({ context }) => {
|
beforeLoad: async ({ context, params }) => {
|
||||||
const organizationId = context.organizationId!;
|
let organizationId: string;
|
||||||
|
|
||||||
|
if ((params as { orgId?: string })?.orgId) {
|
||||||
|
organizationId = (params as { orgId: string }).orgId;
|
||||||
|
} else {
|
||||||
|
organizationId = context.organizationId!;
|
||||||
|
}
|
||||||
|
|
||||||
await context.queryClient.ensureQueryData({
|
await context.queryClient.ensureQueryData({
|
||||||
queryKey: organizationKeys.getOrgById(organizationId),
|
queryKey: organizationKeys.getOrgById(organizationId),
|
||||||
queryFn: () => fetchOrganizationById(organizationId)
|
queryFn: () => fetchOrganizationById(organizationId)
|
||||||
|
|||||||
@@ -118,7 +118,8 @@ export const Route = createFileRoute("/_restrict-login-signup")({
|
|||||||
throw redirect({ to: "/login/select-organization" });
|
throw redirect({ to: "/login/select-organization" });
|
||||||
}
|
}
|
||||||
throw redirect({
|
throw redirect({
|
||||||
to: "/organization/projects"
|
to: "/organizations/$orgId/projects",
|
||||||
|
params: { orgId: data.organizationId }
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
component: AuthConsentWrapper
|
component: AuthConsentWrapper
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ const AccessControlPageQuerySchema = z.object({
|
|||||||
});
|
});
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/organization/access-management"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/access-management"
|
||||||
)({
|
)({
|
||||||
component: AccessManagementPage,
|
component: AccessManagementPage,
|
||||||
validateSearch: zodValidator(AccessControlPageQuerySchema),
|
validateSearch: zodValidator(AccessControlPageQuerySchema),
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ import {
|
|||||||
Tr
|
Tr
|
||||||
} from "@app/components/v2";
|
} from "@app/components/v2";
|
||||||
import { Badge } from "@app/components/v3";
|
import { Badge } from "@app/components/v3";
|
||||||
import { OrgPermissionSubjects, ProjectPermissionSub } from "@app/context";
|
import { OrgPermissionSubjects, ProjectPermissionSub, useOrganization } from "@app/context";
|
||||||
import { OrgPermissionAppConnectionActions } from "@app/context/OrgPermissionContext/types";
|
import { OrgPermissionAppConnectionActions } from "@app/context/OrgPermissionContext/types";
|
||||||
import { ProjectPermissionAppConnectionActions } from "@app/context/ProjectPermissionContext/types";
|
import { ProjectPermissionAppConnectionActions } from "@app/context/ProjectPermissionContext/types";
|
||||||
import { APP_CONNECTION_MAP, getAppConnectionMethodDetails } from "@app/helpers/appConnections";
|
import { APP_CONNECTION_MAP, getAppConnectionMethodDetails } from "@app/helpers/appConnections";
|
||||||
@@ -52,6 +52,7 @@ export const AppConnectionRow = ({
|
|||||||
onEditDetails,
|
onEditDetails,
|
||||||
isProjectView
|
isProjectView
|
||||||
}: Props) => {
|
}: Props) => {
|
||||||
|
const { currentOrg } = useOrganization();
|
||||||
const { id, name, method, app, description, isPlatformManagedCredentials, project } =
|
const { id, name, method, app, description, isPlatformManagedCredentials, project } =
|
||||||
appConnection;
|
appConnection;
|
||||||
|
|
||||||
@@ -127,6 +128,7 @@ export const AppConnectionRow = ({
|
|||||||
// @ts-expect-error app-connections aren't in kms/ssh
|
// @ts-expect-error app-connections aren't in kms/ssh
|
||||||
to={`${getProjectBaseURL(project.type)}/app-connections`}
|
to={`${getProjectBaseURL(project.type)}/app-connections`}
|
||||||
params={{
|
params={{
|
||||||
|
orgId: currentOrg?.id || "",
|
||||||
projectId: project.id
|
projectId: project.id
|
||||||
}}
|
}}
|
||||||
className="underline"
|
className="underline"
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import { z } from "zod";
|
|||||||
import { AppConnectionsPage } from "./AppConnectionsPage";
|
import { AppConnectionsPage } from "./AppConnectionsPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/organization/app-connections/"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/app-connections/"
|
||||||
)({
|
)({
|
||||||
component: AppConnectionsPage,
|
component: AppConnectionsPage,
|
||||||
validateSearch: z.object({
|
validateSearch: z.object({
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ const GitHubOAuthCallbackPageQueryParamsSchema = z.object({
|
|||||||
});
|
});
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/organization/app-connections/$appConnection/oauth/callback"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/app-connections/$appConnection/oauth/callback"
|
||||||
)({
|
)({
|
||||||
component: OAuthCallbackPage,
|
component: OAuthCallbackPage,
|
||||||
validateSearch: zodValidator(GitHubOAuthCallbackPageQueryParamsSchema),
|
validateSearch: zodValidator(GitHubOAuthCallbackPageQueryParamsSchema),
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { createFileRoute } from "@tanstack/react-router";
|
|||||||
import { AuditLogsPage } from "./AuditLogsPage";
|
import { AuditLogsPage } from "./AuditLogsPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/organization/audit-logs"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/audit-logs"
|
||||||
)({
|
)({
|
||||||
component: AuditLogsPage,
|
component: AuditLogsPage,
|
||||||
context: () => ({
|
context: () => ({
|
||||||
|
|||||||
@@ -3,13 +3,14 @@ import { createFileRoute, redirect } from "@tanstack/react-router";
|
|||||||
import { BillingPage } from "./BillingPage";
|
import { BillingPage } from "./BillingPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/organization/billing"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/billing"
|
||||||
)({
|
)({
|
||||||
component: BillingPage,
|
component: BillingPage,
|
||||||
beforeLoad: ({ search }) => {
|
beforeLoad: ({ search, params }) => {
|
||||||
if (search.subOrganization) {
|
if (search.subOrganization) {
|
||||||
throw redirect({
|
throw redirect({
|
||||||
to: "/organization/projects",
|
to: "/organizations/$orgId/projects",
|
||||||
|
params: { orgId: params.orgId },
|
||||||
search
|
search
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { createFileRoute, linkOptions } from "@tanstack/react-router";
|
|||||||
import { GroupDetailsByIDPage } from "./GroupDetailsByIDPage";
|
import { GroupDetailsByIDPage } from "./GroupDetailsByIDPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/organization/groups/$groupId"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/groups/$groupId"
|
||||||
)({
|
)({
|
||||||
component: GroupDetailsByIDPage,
|
component: GroupDetailsByIDPage,
|
||||||
context: () => ({
|
context: () => ({
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import { format } from "date-fns";
|
|||||||
|
|
||||||
import { createNotification } from "@app/components/notifications";
|
import { createNotification } from "@app/components/notifications";
|
||||||
import { IconButton, Td, Tooltip, Tr } from "@app/components/v2";
|
import { IconButton, Td, Tooltip, Tr } from "@app/components/v2";
|
||||||
|
import { useOrganization } from "@app/context";
|
||||||
import { getProjectBaseURL } from "@app/helpers/project";
|
import { getProjectBaseURL } from "@app/helpers/project";
|
||||||
import { formatProjectRoleName } from "@app/helpers/roles";
|
import { formatProjectRoleName } from "@app/helpers/roles";
|
||||||
import { useGetUserProjects } from "@app/hooks/api";
|
import { useGetUserProjects } from "@app/hooks/api";
|
||||||
@@ -33,6 +34,7 @@ export const IdentityProjectRow = ({
|
|||||||
}: Props) => {
|
}: Props) => {
|
||||||
const { data: workspaces } = useGetUserProjects();
|
const { data: workspaces } = useGetUserProjects();
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
|
const { currentOrg } = useOrganization();
|
||||||
|
|
||||||
const isAccessible = useMemo(() => {
|
const isAccessible = useMemo(() => {
|
||||||
const workspaceIds = new Map();
|
const workspaceIds = new Map();
|
||||||
@@ -53,6 +55,7 @@ export const IdentityProjectRow = ({
|
|||||||
navigate({
|
navigate({
|
||||||
to: `${getProjectBaseURL(project.type)}/access-management` as const,
|
to: `${getProjectBaseURL(project.type)}/access-management` as const,
|
||||||
params: {
|
params: {
|
||||||
|
orgId: currentOrg?.id || "",
|
||||||
projectId: project.id
|
projectId: project.id
|
||||||
},
|
},
|
||||||
search: {
|
search: {
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { createFileRoute, linkOptions } from "@tanstack/react-router";
|
|||||||
import { IdentityDetailsByIDPage } from "./IdentityDetailsByIDPage";
|
import { IdentityDetailsByIDPage } from "./IdentityDetailsByIDPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/organization/identities/$identityId"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/identities/$identityId"
|
||||||
)({
|
)({
|
||||||
component: IdentityDetailsByIDPage,
|
component: IdentityDetailsByIDPage,
|
||||||
context: () => ({
|
context: () => ({
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ const NetworkingPageQueryParams = z.object({
|
|||||||
});
|
});
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/organization/networking"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/networking"
|
||||||
)({
|
)({
|
||||||
component: NetworkingPage,
|
component: NetworkingPage,
|
||||||
validateSearch: zodValidator(NetworkingPageQueryParams),
|
validateSearch: zodValidator(NetworkingPageQueryParams),
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
import { useState } from "react";
|
import { useState } from "react";
|
||||||
import { Helmet } from "react-helmet";
|
import { Helmet } from "react-helmet";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
|
import { Outlet, useMatches } from "@tanstack/react-router";
|
||||||
|
|
||||||
import { UpgradePlanModal } from "@app/components/license/UpgradePlanModal";
|
import { UpgradePlanModal } from "@app/components/license/UpgradePlanModal";
|
||||||
import { NewProjectModal } from "@app/components/projects";
|
import { NewProjectModal } from "@app/components/projects";
|
||||||
@@ -27,6 +28,17 @@ import { ProjectListView } from "./components/ProjectListToggle";
|
|||||||
|
|
||||||
export const ProjectsPage = () => {
|
export const ProjectsPage = () => {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
|
const matches = useMatches();
|
||||||
|
|
||||||
|
const hasChildRoute = matches.some(
|
||||||
|
(match) =>
|
||||||
|
match.pathname.includes("/secret-management/") ||
|
||||||
|
match.pathname.includes("/cert-management/") ||
|
||||||
|
match.pathname.includes("/kms/") ||
|
||||||
|
match.pathname.includes("/pam/") ||
|
||||||
|
match.pathname.includes("/ssh/") ||
|
||||||
|
match.pathname.includes("/secret-scanning/")
|
||||||
|
);
|
||||||
|
|
||||||
const [projectListView, setProjectListView] = useState<ProjectListView>(() => {
|
const [projectListView, setProjectListView] = useState<ProjectListView>(() => {
|
||||||
const storedView = localStorage.getItem("projectListView");
|
const storedView = localStorage.getItem("projectListView");
|
||||||
@@ -57,6 +69,10 @@ export const ProjectsPage = () => {
|
|||||||
? subscription.workspacesUsed < subscription.workspaceLimit
|
? subscription.workspacesUsed < subscription.workspaceLimit
|
||||||
: true;
|
: true;
|
||||||
|
|
||||||
|
if (hasChildRoute) {
|
||||||
|
return <Outlet />;
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="mx-auto flex max-w-8xl flex-col justify-start bg-bunker-800">
|
<div className="mx-auto flex max-w-8xl flex-col justify-start bg-bunker-800">
|
||||||
<Helmet>
|
<Helmet>
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ import {
|
|||||||
Tooltip
|
Tooltip
|
||||||
} from "@app/components/v2";
|
} from "@app/components/v2";
|
||||||
import { Badge } from "@app/components/v3";
|
import { Badge } from "@app/components/v3";
|
||||||
import { OrgPermissionActions, OrgPermissionSubjects } from "@app/context";
|
import { OrgPermissionActions, OrgPermissionSubjects, useOrganization } from "@app/context";
|
||||||
import { OrgPermissionAdminConsoleAction } from "@app/context/OrgPermissionContext/types";
|
import { OrgPermissionAdminConsoleAction } from "@app/context/OrgPermissionContext/types";
|
||||||
import { getProjectHomePage, getProjectLottieIcon, getProjectTitle } from "@app/helpers/project";
|
import { getProjectHomePage, getProjectLottieIcon, getProjectTitle } from "@app/helpers/project";
|
||||||
import {
|
import {
|
||||||
@@ -62,6 +62,7 @@ export const AllProjectView = ({
|
|||||||
onProjectListViewChange
|
onProjectListViewChange
|
||||||
}: Props) => {
|
}: Props) => {
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
|
const { currentOrg } = useOrganization();
|
||||||
const [searchFilter, setSearchFilter] = useState("");
|
const [searchFilter, setSearchFilter] = useState("");
|
||||||
const [debouncedSearch] = useDebounce(searchFilter);
|
const [debouncedSearch] = useDebounce(searchFilter);
|
||||||
const [projectTypeFilter, setProjectTypeFilter] = useState<ProjectType>();
|
const [projectTypeFilter, setProjectTypeFilter] = useState<ProjectType>();
|
||||||
@@ -263,6 +264,7 @@ export const AllProjectView = ({
|
|||||||
navigate({
|
navigate({
|
||||||
to: getProjectHomePage(workspace.type, workspace.environments),
|
to: getProjectHomePage(workspace.type, workspace.environments),
|
||||||
params: {
|
params: {
|
||||||
|
orgId: currentOrg?.id || "",
|
||||||
projectId: workspace.id
|
projectId: workspace.id
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -273,6 +275,7 @@ export const AllProjectView = ({
|
|||||||
navigate({
|
navigate({
|
||||||
to: getProjectHomePage(workspace.type, workspace.environments),
|
to: getProjectHomePage(workspace.type, workspace.environments),
|
||||||
params: {
|
params: {
|
||||||
|
orgId: currentOrg?.id || "",
|
||||||
projectId: workspace.id
|
projectId: workspace.id
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -180,6 +180,7 @@ export const MyProjectView = ({
|
|||||||
navigate({
|
navigate({
|
||||||
to: getProjectHomePage(workspace.type, workspace.environments),
|
to: getProjectHomePage(workspace.type, workspace.environments),
|
||||||
params: {
|
params: {
|
||||||
|
orgId: currentOrg?.id || "",
|
||||||
projectId: workspace.id
|
projectId: workspace.id
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -231,6 +232,7 @@ export const MyProjectView = ({
|
|||||||
navigate({
|
navigate({
|
||||||
to: getProjectHomePage(workspace.type, workspace.environments),
|
to: getProjectHomePage(workspace.type, workspace.environments),
|
||||||
params: {
|
params: {
|
||||||
|
orgId: currentOrg?.id || "",
|
||||||
projectId: workspace.id
|
projectId: workspace.id
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { createFileRoute } from "@tanstack/react-router";
|
|||||||
import { ProjectsPage } from "./ProjectsPage";
|
import { ProjectsPage } from "./ProjectsPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/organization/projects"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects"
|
||||||
)({
|
)({
|
||||||
component: ProjectsPage,
|
component: ProjectsPage,
|
||||||
context: () => ({
|
context: () => ({
|
||||||
|
|||||||
@@ -3,14 +3,17 @@ import { createFileRoute, linkOptions } from "@tanstack/react-router";
|
|||||||
import { RoleByIDPage } from "./RoleByIDPage";
|
import { RoleByIDPage } from "./RoleByIDPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/organization/roles/$roleId"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/roles/$roleId"
|
||||||
)({
|
)({
|
||||||
component: RoleByIDPage,
|
component: RoleByIDPage,
|
||||||
context: () => ({
|
context: ({ params }) => ({
|
||||||
breadcrumbs: [
|
breadcrumbs: [
|
||||||
{
|
{
|
||||||
label: "Access Control",
|
label: "Access Control",
|
||||||
link: linkOptions({ to: "/organization/access-management" })
|
link: linkOptions({
|
||||||
|
to: "/organizations/$orgId/access-management",
|
||||||
|
params: { orgId: params.orgId }
|
||||||
|
})
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "Roles"
|
label: "Roles"
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ const SecretSharingQueryParams = z.object({
|
|||||||
});
|
});
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/organization/secret-sharing/"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/secret-sharing/"
|
||||||
)({
|
)({
|
||||||
component: SecretSharingPage,
|
component: SecretSharingPage,
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ const SettingsOAuthCallbackPageQueryParamsSchema = z.object({
|
|||||||
});
|
});
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/organization/settings/oauth/callback"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/settings/oauth/callback"
|
||||||
)({
|
)({
|
||||||
component: OAuthCallbackPage,
|
component: OAuthCallbackPage,
|
||||||
validateSearch: zodValidator(SettingsOAuthCallbackPageQueryParamsSchema)
|
validateSearch: zodValidator(SettingsOAuthCallbackPageQueryParamsSchema)
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ const SettingsPageQueryParams = z.object({
|
|||||||
});
|
});
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/organization/settings/"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/settings/"
|
||||||
)({
|
)({
|
||||||
component: SettingsPage,
|
component: SettingsPage,
|
||||||
validateSearch: zodValidator(SettingsPageQueryParams),
|
validateSearch: zodValidator(SettingsPageQueryParams),
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import { useNavigate } from "@tanstack/react-router";
|
|||||||
|
|
||||||
import { createNotification } from "@app/components/notifications";
|
import { createNotification } from "@app/components/notifications";
|
||||||
import { IconButton, Td, Tooltip, Tr } from "@app/components/v2";
|
import { IconButton, Td, Tooltip, Tr } from "@app/components/v2";
|
||||||
|
import { useOrganization } from "@app/context";
|
||||||
import { getProjectBaseURL } from "@app/helpers/project";
|
import { getProjectBaseURL } from "@app/helpers/project";
|
||||||
import { formatProjectRoleName } from "@app/helpers/roles";
|
import { formatProjectRoleName } from "@app/helpers/roles";
|
||||||
import { useGetUserProjects } from "@app/hooks/api";
|
import { useGetUserProjects } from "@app/hooks/api";
|
||||||
@@ -26,6 +27,7 @@ export const UserProjectRow = ({
|
|||||||
}: Props) => {
|
}: Props) => {
|
||||||
const { data: workspaces = [] } = useGetUserProjects();
|
const { data: workspaces = [] } = useGetUserProjects();
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
|
const { currentOrg } = useOrganization();
|
||||||
|
|
||||||
const isAccessible = useMemo(() => {
|
const isAccessible = useMemo(() => {
|
||||||
const workspaceIds = new Map();
|
const workspaceIds = new Map();
|
||||||
@@ -46,6 +48,7 @@ export const UserProjectRow = ({
|
|||||||
navigate({
|
navigate({
|
||||||
to: `${getProjectBaseURL(project.type)}/access-management` as const,
|
to: `${getProjectBaseURL(project.type)}/access-management` as const,
|
||||||
params: {
|
params: {
|
||||||
|
orgId: currentOrg?.id || "",
|
||||||
projectId: project.id
|
projectId: project.id
|
||||||
},
|
},
|
||||||
search: {
|
search: {
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { createFileRoute, linkOptions } from "@tanstack/react-router";
|
|||||||
import { UserDetailsByIDPage } from "./UserDetailsByIDPage";
|
import { UserDetailsByIDPage } from "./UserDetailsByIDPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/organization/members/$membershipId"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/members/$membershipId"
|
||||||
)({
|
)({
|
||||||
component: UserDetailsByIDPage,
|
component: UserDetailsByIDPage,
|
||||||
context: () => ({
|
context: () => ({
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ type Props = {
|
|||||||
|
|
||||||
export const FolderBreadCrumbs = ({ path = "/" }: Props) => {
|
export const FolderBreadCrumbs = ({ path = "/" }: Props) => {
|
||||||
const navigate = useNavigate({
|
const navigate = useNavigate({
|
||||||
from: "/projects/pam/$projectId/accounts"
|
from: "/organizations/$orgId/projects/pam/$projectId/accounts"
|
||||||
});
|
});
|
||||||
|
|
||||||
const onFolderCrumbClick = (index: number) => {
|
const onFolderCrumbClick = (index: number) => {
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ const PamAccountsPageQueryParamsSchema = z.object({
|
|||||||
});
|
});
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/pam/$projectId/_pam-layout/accounts"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/pam/$projectId/_pam-layout/accounts"
|
||||||
)({
|
)({
|
||||||
validateSearch: zodValidator(PamAccountsPageQueryParamsSchema),
|
validateSearch: zodValidator(PamAccountsPageQueryParamsSchema),
|
||||||
search: {
|
search: {
|
||||||
@@ -26,7 +26,7 @@ export const Route = createFileRoute(
|
|||||||
{
|
{
|
||||||
label: "Accounts",
|
label: "Accounts",
|
||||||
link: linkOptions({
|
link: linkOptions({
|
||||||
to: "/projects/pam/$projectId/accounts",
|
to: "/organizations/$orgId/projects/pam/$projectId/accounts",
|
||||||
params: () => params as never,
|
params: () => params as never,
|
||||||
search: (prev) => ({ ...prev, accountPath: "/" })
|
search: (prev) => ({ ...prev, accountPath: "/" })
|
||||||
})
|
})
|
||||||
@@ -36,7 +36,7 @@ export const Route = createFileRoute(
|
|||||||
return {
|
return {
|
||||||
label: segment,
|
label: segment,
|
||||||
link: linkOptions({
|
link: linkOptions({
|
||||||
to: "/projects/pam/$projectId/accounts",
|
to: "/organizations/$orgId/projects/pam/$projectId/accounts",
|
||||||
params: () => params as never,
|
params: () => params as never,
|
||||||
search: (prev) => ({ ...prev, accountPath: newPath })
|
search: (prev) => ({ ...prev, accountPath: newPath })
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { z } from "zod";
|
|||||||
import { PamResourcesPage } from "./PamResourcesPage";
|
import { PamResourcesPage } from "./PamResourcesPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/pam/$projectId/_pam-layout/resources"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/pam/$projectId/_pam-layout/resources"
|
||||||
)({
|
)({
|
||||||
validateSearch: zodValidator(
|
validateSearch: zodValidator(
|
||||||
z.object({
|
z.object({
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import { Link, useParams } from "@tanstack/react-router";
|
|||||||
import { ProjectPermissionCan } from "@app/components/permissions";
|
import { ProjectPermissionCan } from "@app/components/permissions";
|
||||||
import { PageHeader } from "@app/components/v2";
|
import { PageHeader } from "@app/components/v2";
|
||||||
import { ROUTE_PATHS } from "@app/const/routes";
|
import { ROUTE_PATHS } from "@app/const/routes";
|
||||||
import { ProjectPermissionSub, useProject } from "@app/context";
|
import { ProjectPermissionSub, useOrganization, useProject } from "@app/context";
|
||||||
import { ProjectPermissionPamSessionActions } from "@app/context/ProjectPermissionContext/types";
|
import { ProjectPermissionPamSessionActions } from "@app/context/ProjectPermissionContext/types";
|
||||||
import { useGetPamSessionById } from "@app/hooks/api/pam";
|
import { useGetPamSessionById } from "@app/hooks/api/pam";
|
||||||
import { ProjectType } from "@app/hooks/api/projects/types";
|
import { ProjectType } from "@app/hooks/api/projects/types";
|
||||||
@@ -20,14 +20,16 @@ const Page = () => {
|
|||||||
select: (el) => el.sessionId
|
select: (el) => el.sessionId
|
||||||
});
|
});
|
||||||
const { data: session } = useGetPamSessionById(sessionId);
|
const { data: session } = useGetPamSessionById(sessionId);
|
||||||
|
const { currentOrg } = useOrganization();
|
||||||
const { currentProject } = useProject();
|
const { currentProject } = useProject();
|
||||||
return (
|
return (
|
||||||
<div className="mx-auto flex flex-col justify-between bg-bunker-800 text-white">
|
<div className="mx-auto flex flex-col justify-between bg-bunker-800 text-white">
|
||||||
{session && (
|
{session && (
|
||||||
<div className="mx-auto mb-6 flex w-full max-w-8xl flex-col">
|
<div className="mx-auto mb-6 flex w-full max-w-8xl flex-col">
|
||||||
<Link
|
<Link
|
||||||
to="/projects/pam/$projectId/sessions"
|
to="/organizations/$orgId/projects/pam/$projectId/sessions"
|
||||||
params={{
|
params={{
|
||||||
|
orgId: currentOrg.id,
|
||||||
projectId: currentProject.id
|
projectId: currentProject.id
|
||||||
}}
|
}}
|
||||||
className="mb-4 flex items-center gap-x-2 text-sm text-mineshaft-400"
|
className="mb-4 flex items-center gap-x-2 text-sm text-mineshaft-400"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { createFileRoute, linkOptions } from "@tanstack/react-router";
|
|||||||
import { PamSessionByIDPage } from "./PamSessionByIDPage";
|
import { PamSessionByIDPage } from "./PamSessionByIDPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/pam/$projectId/_pam-layout/sessions/$sessionId"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/pam/$projectId/_pam-layout/sessions/$sessionId"
|
||||||
)({
|
)({
|
||||||
component: PamSessionByIDPage,
|
component: PamSessionByIDPage,
|
||||||
beforeLoad: ({ context, params }) => {
|
beforeLoad: ({ context, params }) => {
|
||||||
@@ -13,7 +13,7 @@ export const Route = createFileRoute(
|
|||||||
{
|
{
|
||||||
label: "Sessions",
|
label: "Sessions",
|
||||||
link: linkOptions({
|
link: linkOptions({
|
||||||
to: "/projects/pam/$projectId/sessions",
|
to: "/organizations/$orgId/projects/pam/$projectId/sessions",
|
||||||
params
|
params
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { z } from "zod";
|
|||||||
import { PamSessionPage } from "./PamSessionsPage";
|
import { PamSessionPage } from "./PamSessionsPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/pam/$projectId/_pam-layout/sessions/"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/pam/$projectId/_pam-layout/sessions/"
|
||||||
)({
|
)({
|
||||||
validateSearch: zodValidator(
|
validateSearch: zodValidator(
|
||||||
z.object({
|
z.object({
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { createFileRoute } from "@tanstack/react-router";
|
|||||||
import { SettingsPage } from "./SettingsPage";
|
import { SettingsPage } from "./SettingsPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/pam/$projectId/_pam-layout/settings"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/pam/$projectId/_pam-layout/settings"
|
||||||
)({
|
)({
|
||||||
component: SettingsPage,
|
component: SettingsPage,
|
||||||
beforeLoad: ({ context }) => {
|
beforeLoad: ({ context }) => {
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import { PamLayout } from "@app/layouts/PamLayout";
|
|||||||
import { ProjectSelect } from "@app/layouts/ProjectLayout/components/ProjectSelect";
|
import { ProjectSelect } from "@app/layouts/ProjectLayout/components/ProjectSelect";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/pam/$projectId/_pam-layout"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/pam/$projectId/_pam-layout"
|
||||||
)({
|
)({
|
||||||
component: PamLayout,
|
component: PamLayout,
|
||||||
beforeLoad: async ({ params, context }) => {
|
beforeLoad: async ({ params, context }) => {
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ const AccessControlPageQuerySchema = z.object({
|
|||||||
});
|
});
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/cert-management/$projectId/_cert-manager-layout/access-management"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/cert-management/$projectId/_cert-manager-layout/access-management"
|
||||||
)({
|
)({
|
||||||
component: AccessControlPage,
|
component: AccessControlPage,
|
||||||
validateSearch: zodValidator(AccessControlPageQuerySchema),
|
validateSearch: zodValidator(AccessControlPageQuerySchema),
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ const AccessControlPageQuerySchema = z.object({
|
|||||||
});
|
});
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/kms/$projectId/_kms-layout/access-management"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/kms/$projectId/_kms-layout/access-management"
|
||||||
)({
|
)({
|
||||||
component: AccessControlPage,
|
component: AccessControlPage,
|
||||||
validateSearch: zodValidator(AccessControlPageQuerySchema),
|
validateSearch: zodValidator(AccessControlPageQuerySchema),
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ const AccessControlPageQuerySchema = z.object({
|
|||||||
});
|
});
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/pam/$projectId/_pam-layout/access-management"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/pam/$projectId/_pam-layout/access-management"
|
||||||
)({
|
)({
|
||||||
component: AccessControlPage,
|
component: AccessControlPage,
|
||||||
validateSearch: zodValidator(AccessControlPageQuerySchema),
|
validateSearch: zodValidator(AccessControlPageQuerySchema),
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ const AccessControlPageQuerySchema = z.object({
|
|||||||
});
|
});
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/access-management"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/access-management"
|
||||||
)({
|
)({
|
||||||
component: AccessControlPage,
|
component: AccessControlPage,
|
||||||
validateSearch: zodValidator(AccessControlPageQuerySchema),
|
validateSearch: zodValidator(AccessControlPageQuerySchema),
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ const AccessControlPageQuerySchema = z.object({
|
|||||||
});
|
});
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-scanning/$projectId/_secret-scanning-layout/access-management"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-scanning/$projectId/_secret-scanning-layout/access-management"
|
||||||
)({
|
)({
|
||||||
component: AccessControlPage,
|
component: AccessControlPage,
|
||||||
validateSearch: zodValidator(AccessControlPageQuerySchema),
|
validateSearch: zodValidator(AccessControlPageQuerySchema),
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ const AccessControlPageQuerySchema = z.object({
|
|||||||
});
|
});
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/ssh/$projectId/_ssh-layout/access-management"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/ssh/$projectId/_ssh-layout/access-management"
|
||||||
)({
|
)({
|
||||||
component: AccessControlPage,
|
component: AccessControlPage,
|
||||||
validateSearch: zodValidator(AccessControlPageQuerySchema),
|
validateSearch: zodValidator(AccessControlPageQuerySchema),
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { createFileRoute } from "@tanstack/react-router";
|
|||||||
import { AppConnectionsPage } from "./AppConnectionsPage";
|
import { AppConnectionsPage } from "./AppConnectionsPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/cert-management/$projectId/_cert-manager-layout/app-connections"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/cert-management/$projectId/_cert-manager-layout/app-connections"
|
||||||
)({
|
)({
|
||||||
component: AppConnectionsPage,
|
component: AppConnectionsPage,
|
||||||
beforeLoad: ({ context }) => {
|
beforeLoad: ({ context }) => {
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { createFileRoute } from "@tanstack/react-router";
|
|||||||
import { AppConnectionsPage } from "./AppConnectionsPage";
|
import { AppConnectionsPage } from "./AppConnectionsPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/app-connections"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/app-connections"
|
||||||
)({
|
)({
|
||||||
component: AppConnectionsPage,
|
component: AppConnectionsPage,
|
||||||
beforeLoad: ({ context }) => {
|
beforeLoad: ({ context }) => {
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { createFileRoute } from "@tanstack/react-router";
|
|||||||
import { AppConnectionsPage } from "./AppConnectionsPage";
|
import { AppConnectionsPage } from "./AppConnectionsPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-scanning/$projectId/_secret-scanning-layout/app-connections"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-scanning/$projectId/_secret-scanning-layout/app-connections"
|
||||||
)({
|
)({
|
||||||
component: AppConnectionsPage,
|
component: AppConnectionsPage,
|
||||||
beforeLoad: ({ context }) => {
|
beforeLoad: ({ context }) => {
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { createFileRoute } from "@tanstack/react-router";
|
|||||||
import { AuditLogsPage } from "./AuditLogsPage";
|
import { AuditLogsPage } from "./AuditLogsPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/cert-management/$projectId/_cert-manager-layout/audit-logs"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/cert-management/$projectId/_cert-manager-layout/audit-logs"
|
||||||
)({
|
)({
|
||||||
component: AuditLogsPage,
|
component: AuditLogsPage,
|
||||||
beforeLoad: ({ context }) => {
|
beforeLoad: ({ context }) => {
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { createFileRoute } from "@tanstack/react-router";
|
|||||||
import { AuditLogsPage } from "./AuditLogsPage";
|
import { AuditLogsPage } from "./AuditLogsPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/kms/$projectId/_kms-layout/audit-logs"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/kms/$projectId/_kms-layout/audit-logs"
|
||||||
)({
|
)({
|
||||||
component: AuditLogsPage,
|
component: AuditLogsPage,
|
||||||
beforeLoad: ({ context }) => {
|
beforeLoad: ({ context }) => {
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { createFileRoute } from "@tanstack/react-router";
|
|||||||
import { AuditLogsPage } from "./AuditLogsPage";
|
import { AuditLogsPage } from "./AuditLogsPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/pam/$projectId/_pam-layout/audit-logs"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/pam/$projectId/_pam-layout/audit-logs"
|
||||||
)({
|
)({
|
||||||
component: AuditLogsPage,
|
component: AuditLogsPage,
|
||||||
beforeLoad: ({ context }) => {
|
beforeLoad: ({ context }) => {
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { createFileRoute } from "@tanstack/react-router";
|
|||||||
import { AuditLogsPage } from "./AuditLogsPage";
|
import { AuditLogsPage } from "./AuditLogsPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/audit-logs"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/audit-logs"
|
||||||
)({
|
)({
|
||||||
component: AuditLogsPage,
|
component: AuditLogsPage,
|
||||||
beforeLoad: ({ context }) => {
|
beforeLoad: ({ context }) => {
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { createFileRoute } from "@tanstack/react-router";
|
|||||||
import { AuditLogsPage } from "./AuditLogsPage";
|
import { AuditLogsPage } from "./AuditLogsPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-scanning/$projectId/_secret-scanning-layout/audit-logs"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-scanning/$projectId/_secret-scanning-layout/audit-logs"
|
||||||
)({
|
)({
|
||||||
component: AuditLogsPage,
|
component: AuditLogsPage,
|
||||||
beforeLoad: ({ context }) => {
|
beforeLoad: ({ context }) => {
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { createFileRoute } from "@tanstack/react-router";
|
|||||||
import { AuditLogsPage } from "./AuditLogsPage";
|
import { AuditLogsPage } from "./AuditLogsPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/ssh/$projectId/_ssh-layout/audit-logs"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/ssh/$projectId/_ssh-layout/audit-logs"
|
||||||
)({
|
)({
|
||||||
component: AuditLogsPage,
|
component: AuditLogsPage,
|
||||||
beforeLoad: ({ context }) => {
|
beforeLoad: ({ context }) => {
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { ProjectAccessControlTabs } from "@app/types/project";
|
|||||||
import { GroupDetailsByIDPage } from "./GroupDetailsByIDPage";
|
import { GroupDetailsByIDPage } from "./GroupDetailsByIDPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/cert-management/$projectId/_cert-manager-layout/groups/$groupId"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/cert-management/$projectId/_cert-manager-layout/groups/$groupId"
|
||||||
)({
|
)({
|
||||||
component: GroupDetailsByIDPage,
|
component: GroupDetailsByIDPage,
|
||||||
beforeLoad: ({ context, params }) => {
|
beforeLoad: ({ context, params }) => {
|
||||||
@@ -15,8 +15,9 @@ export const Route = createFileRoute(
|
|||||||
{
|
{
|
||||||
label: "Access Control",
|
label: "Access Control",
|
||||||
link: linkOptions({
|
link: linkOptions({
|
||||||
to: "/projects/cert-management/$projectId/access-management",
|
to: "/organizations/$orgId/projects/cert-management/$projectId/access-management",
|
||||||
params: {
|
params: {
|
||||||
|
orgId: params.orgId,
|
||||||
projectId: params.projectId
|
projectId: params.projectId
|
||||||
},
|
},
|
||||||
search: {
|
search: {
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { ProjectAccessControlTabs } from "@app/types/project";
|
|||||||
import { GroupDetailsByIDPage } from "./GroupDetailsByIDPage";
|
import { GroupDetailsByIDPage } from "./GroupDetailsByIDPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/kms/$projectId/_kms-layout/groups/$groupId"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/kms/$projectId/_kms-layout/groups/$groupId"
|
||||||
)({
|
)({
|
||||||
component: GroupDetailsByIDPage,
|
component: GroupDetailsByIDPage,
|
||||||
beforeLoad: ({ context, params }) => {
|
beforeLoad: ({ context, params }) => {
|
||||||
@@ -15,8 +15,9 @@ export const Route = createFileRoute(
|
|||||||
{
|
{
|
||||||
label: "Access Control",
|
label: "Access Control",
|
||||||
link: linkOptions({
|
link: linkOptions({
|
||||||
to: "/projects/kms/$projectId/access-management",
|
to: "/organizations/$orgId/projects/kms/$projectId/access-management",
|
||||||
params: {
|
params: {
|
||||||
|
orgId: params.orgId,
|
||||||
projectId: params.projectId
|
projectId: params.projectId
|
||||||
},
|
},
|
||||||
search: {
|
search: {
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { ProjectAccessControlTabs } from "@app/types/project";
|
|||||||
import { GroupDetailsByIDPage } from "./GroupDetailsByIDPage";
|
import { GroupDetailsByIDPage } from "./GroupDetailsByIDPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/pam/$projectId/_pam-layout/groups/$groupId"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/pam/$projectId/_pam-layout/groups/$groupId"
|
||||||
)({
|
)({
|
||||||
component: GroupDetailsByIDPage,
|
component: GroupDetailsByIDPage,
|
||||||
beforeLoad: ({ context, params }) => {
|
beforeLoad: ({ context, params }) => {
|
||||||
@@ -15,8 +15,9 @@ export const Route = createFileRoute(
|
|||||||
{
|
{
|
||||||
label: "Access Control",
|
label: "Access Control",
|
||||||
link: linkOptions({
|
link: linkOptions({
|
||||||
to: "/projects/pam/$projectId/access-management",
|
to: "/organizations/$orgId/projects/pam/$projectId/access-management",
|
||||||
params: {
|
params: {
|
||||||
|
orgId: params.orgId,
|
||||||
projectId: params.projectId
|
projectId: params.projectId
|
||||||
},
|
},
|
||||||
search: {
|
search: {
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import { ProjectAccessControlTabs } from "@app/types/project";
|
|||||||
import { GroupDetailsByIDPage } from "./GroupDetailsByIDPage";
|
import { GroupDetailsByIDPage } from "./GroupDetailsByIDPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/groups/$groupId"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/groups/$groupId"
|
||||||
)({
|
)({
|
||||||
component: GroupDetailsByIDPage,
|
component: GroupDetailsByIDPage,
|
||||||
validateSearch: zodValidator(
|
validateSearch: zodValidator(
|
||||||
@@ -22,8 +22,9 @@ export const Route = createFileRoute(
|
|||||||
{
|
{
|
||||||
label: "Access Control",
|
label: "Access Control",
|
||||||
link: linkOptions({
|
link: linkOptions({
|
||||||
to: "/projects/secret-management/$projectId/access-management",
|
to: "/organizations/$orgId/projects/secret-management/$projectId/access-management",
|
||||||
params: {
|
params: {
|
||||||
|
orgId: params.orgId,
|
||||||
projectId: params.projectId
|
projectId: params.projectId
|
||||||
},
|
},
|
||||||
search: {
|
search: {
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { ProjectAccessControlTabs } from "@app/types/project";
|
|||||||
import { GroupDetailsByIDPage } from "./GroupDetailsByIDPage";
|
import { GroupDetailsByIDPage } from "./GroupDetailsByIDPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-scanning/$projectId/_secret-scanning-layout/groups/$groupId"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-scanning/$projectId/_secret-scanning-layout/groups/$groupId"
|
||||||
)({
|
)({
|
||||||
component: GroupDetailsByIDPage,
|
component: GroupDetailsByIDPage,
|
||||||
beforeLoad: ({ context, params }) => {
|
beforeLoad: ({ context, params }) => {
|
||||||
@@ -15,8 +15,9 @@ export const Route = createFileRoute(
|
|||||||
{
|
{
|
||||||
label: "Access Control",
|
label: "Access Control",
|
||||||
link: linkOptions({
|
link: linkOptions({
|
||||||
to: "/projects/secret-scanning/$projectId/access-management",
|
to: "/organizations/$orgId/projects/secret-scanning/$projectId/access-management",
|
||||||
params: {
|
params: {
|
||||||
|
orgId: params.orgId,
|
||||||
projectId: params.projectId
|
projectId: params.projectId
|
||||||
},
|
},
|
||||||
search: {
|
search: {
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { ProjectAccessControlTabs } from "@app/types/project";
|
|||||||
import { GroupDetailsByIDPage } from "./GroupDetailsByIDPage";
|
import { GroupDetailsByIDPage } from "./GroupDetailsByIDPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/ssh/$projectId/_ssh-layout/groups/$groupId"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/ssh/$projectId/_ssh-layout/groups/$groupId"
|
||||||
)({
|
)({
|
||||||
component: GroupDetailsByIDPage,
|
component: GroupDetailsByIDPage,
|
||||||
beforeLoad: ({ context, params }) => {
|
beforeLoad: ({ context, params }) => {
|
||||||
@@ -15,8 +15,9 @@ export const Route = createFileRoute(
|
|||||||
{
|
{
|
||||||
label: "Access Control",
|
label: "Access Control",
|
||||||
link: linkOptions({
|
link: linkOptions({
|
||||||
to: "/projects/ssh/$projectId/access-management",
|
to: "/organizations/$orgId/projects/ssh/$projectId/access-management",
|
||||||
params: {
|
params: {
|
||||||
|
orgId: params.orgId,
|
||||||
projectId: params.projectId
|
projectId: params.projectId
|
||||||
},
|
},
|
||||||
search: {
|
search: {
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { ProjectAccessControlTabs } from "@app/types/project";
|
|||||||
import { IdentityDetailsByIDPage } from "./IdentityDetailsByIDPage";
|
import { IdentityDetailsByIDPage } from "./IdentityDetailsByIDPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/cert-management/$projectId/_cert-manager-layout/identities/$identityId"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/cert-management/$projectId/_cert-manager-layout/identities/$identityId"
|
||||||
)({
|
)({
|
||||||
component: IdentityDetailsByIDPage,
|
component: IdentityDetailsByIDPage,
|
||||||
beforeLoad: ({ context, params }) => {
|
beforeLoad: ({ context, params }) => {
|
||||||
@@ -15,8 +15,9 @@ export const Route = createFileRoute(
|
|||||||
{
|
{
|
||||||
label: "Access Control",
|
label: "Access Control",
|
||||||
link: linkOptions({
|
link: linkOptions({
|
||||||
to: "/projects/cert-management/$projectId/access-management",
|
to: "/organizations/$orgId/projects/cert-management/$projectId/access-management",
|
||||||
params: {
|
params: {
|
||||||
|
orgId: params.orgId,
|
||||||
projectId: params.projectId
|
projectId: params.projectId
|
||||||
},
|
},
|
||||||
search: {
|
search: {
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { ProjectAccessControlTabs } from "@app/types/project";
|
|||||||
import { IdentityDetailsByIDPage } from "./IdentityDetailsByIDPage";
|
import { IdentityDetailsByIDPage } from "./IdentityDetailsByIDPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/kms/$projectId/_kms-layout/identities/$identityId"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/kms/$projectId/_kms-layout/identities/$identityId"
|
||||||
)({
|
)({
|
||||||
component: IdentityDetailsByIDPage,
|
component: IdentityDetailsByIDPage,
|
||||||
beforeLoad: ({ context, params }) => {
|
beforeLoad: ({ context, params }) => {
|
||||||
@@ -15,8 +15,9 @@ export const Route = createFileRoute(
|
|||||||
{
|
{
|
||||||
label: "Access Control",
|
label: "Access Control",
|
||||||
link: linkOptions({
|
link: linkOptions({
|
||||||
to: "/projects/kms/$projectId/access-management",
|
to: "/organizations/$orgId/projects/kms/$projectId/access-management",
|
||||||
params: {
|
params: {
|
||||||
|
orgId: params.orgId,
|
||||||
projectId: params.projectId
|
projectId: params.projectId
|
||||||
},
|
},
|
||||||
search: {
|
search: {
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { ProjectAccessControlTabs } from "@app/types/project";
|
|||||||
import { IdentityDetailsByIDPage } from "./IdentityDetailsByIDPage";
|
import { IdentityDetailsByIDPage } from "./IdentityDetailsByIDPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/pam/$projectId/_pam-layout/identities/$identityId"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/pam/$projectId/_pam-layout/identities/$identityId"
|
||||||
)({
|
)({
|
||||||
component: IdentityDetailsByIDPage,
|
component: IdentityDetailsByIDPage,
|
||||||
beforeLoad: ({ context, params }) => {
|
beforeLoad: ({ context, params }) => {
|
||||||
@@ -15,8 +15,9 @@ export const Route = createFileRoute(
|
|||||||
{
|
{
|
||||||
label: "Access Control",
|
label: "Access Control",
|
||||||
link: linkOptions({
|
link: linkOptions({
|
||||||
to: "/projects/pam/$projectId/access-management",
|
to: "/organizations/$orgId/projects/pam/$projectId/access-management",
|
||||||
params: {
|
params: {
|
||||||
|
orgId: params.orgId,
|
||||||
projectId: params.projectId
|
projectId: params.projectId
|
||||||
},
|
},
|
||||||
search: {
|
search: {
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { ProjectAccessControlTabs } from "@app/types/project";
|
|||||||
import { IdentityDetailsByIDPage } from "./IdentityDetailsByIDPage";
|
import { IdentityDetailsByIDPage } from "./IdentityDetailsByIDPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/identities/$identityId"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/identities/$identityId"
|
||||||
)({
|
)({
|
||||||
component: IdentityDetailsByIDPage,
|
component: IdentityDetailsByIDPage,
|
||||||
beforeLoad: ({ context, params }) => {
|
beforeLoad: ({ context, params }) => {
|
||||||
@@ -15,8 +15,9 @@ export const Route = createFileRoute(
|
|||||||
{
|
{
|
||||||
label: "Access Control",
|
label: "Access Control",
|
||||||
link: linkOptions({
|
link: linkOptions({
|
||||||
to: "/projects/secret-management/$projectId/access-management",
|
to: "/organizations/$orgId/projects/secret-management/$projectId/access-management",
|
||||||
params: {
|
params: {
|
||||||
|
orgId: params.orgId,
|
||||||
projectId: params.projectId
|
projectId: params.projectId
|
||||||
},
|
},
|
||||||
search: {
|
search: {
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { ProjectAccessControlTabs } from "@app/types/project";
|
|||||||
import { IdentityDetailsByIDPage } from "./IdentityDetailsByIDPage";
|
import { IdentityDetailsByIDPage } from "./IdentityDetailsByIDPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-scanning/$projectId/_secret-scanning-layout/identities/$identityId"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-scanning/$projectId/_secret-scanning-layout/identities/$identityId"
|
||||||
)({
|
)({
|
||||||
component: IdentityDetailsByIDPage,
|
component: IdentityDetailsByIDPage,
|
||||||
beforeLoad: ({ context, params }) => {
|
beforeLoad: ({ context, params }) => {
|
||||||
@@ -15,8 +15,9 @@ export const Route = createFileRoute(
|
|||||||
{
|
{
|
||||||
label: "Access Control",
|
label: "Access Control",
|
||||||
link: linkOptions({
|
link: linkOptions({
|
||||||
to: "/projects/secret-scanning/$projectId/access-management",
|
to: "/organizations/$orgId/projects/secret-scanning/$projectId/access-management",
|
||||||
params: {
|
params: {
|
||||||
|
orgId: params.orgId,
|
||||||
projectId: params.projectId
|
projectId: params.projectId
|
||||||
},
|
},
|
||||||
search: {
|
search: {
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { ProjectAccessControlTabs } from "@app/types/project";
|
|||||||
import { IdentityDetailsByIDPage } from "./IdentityDetailsByIDPage";
|
import { IdentityDetailsByIDPage } from "./IdentityDetailsByIDPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/ssh/$projectId/_ssh-layout/identities/$identityId"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/ssh/$projectId/_ssh-layout/identities/$identityId"
|
||||||
)({
|
)({
|
||||||
component: IdentityDetailsByIDPage,
|
component: IdentityDetailsByIDPage,
|
||||||
beforeLoad: ({ context, params }) => {
|
beforeLoad: ({ context, params }) => {
|
||||||
@@ -15,8 +15,9 @@ export const Route = createFileRoute(
|
|||||||
{
|
{
|
||||||
label: "Access Control",
|
label: "Access Control",
|
||||||
link: linkOptions({
|
link: linkOptions({
|
||||||
to: "/projects/ssh/$projectId/access-management",
|
to: "/organizations/$orgId/projects/ssh/$projectId/access-management",
|
||||||
params: {
|
params: {
|
||||||
|
orgId: params.orgId,
|
||||||
projectId: params.projectId
|
projectId: params.projectId
|
||||||
},
|
},
|
||||||
search: {
|
search: {
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { ProjectAccessControlTabs } from "@app/types/project";
|
|||||||
import { MemberDetailsByIDPage } from "./MemberDetailsByIDPage";
|
import { MemberDetailsByIDPage } from "./MemberDetailsByIDPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/cert-management/$projectId/_cert-manager-layout/members/$membershipId"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/cert-management/$projectId/_cert-manager-layout/members/$membershipId"
|
||||||
)({
|
)({
|
||||||
component: MemberDetailsByIDPage,
|
component: MemberDetailsByIDPage,
|
||||||
beforeLoad: ({ context, params }) => {
|
beforeLoad: ({ context, params }) => {
|
||||||
@@ -15,8 +15,9 @@ export const Route = createFileRoute(
|
|||||||
{
|
{
|
||||||
label: "Access Control",
|
label: "Access Control",
|
||||||
link: linkOptions({
|
link: linkOptions({
|
||||||
to: "/projects/cert-management/$projectId/access-management",
|
to: "/organizations/$orgId/projects/cert-management/$projectId/access-management",
|
||||||
params: {
|
params: {
|
||||||
|
orgId: params.orgId,
|
||||||
projectId: params.projectId
|
projectId: params.projectId
|
||||||
},
|
},
|
||||||
search: {
|
search: {
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { ProjectAccessControlTabs } from "@app/types/project";
|
|||||||
import { MemberDetailsByIDPage } from "./MemberDetailsByIDPage";
|
import { MemberDetailsByIDPage } from "./MemberDetailsByIDPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/kms/$projectId/_kms-layout/members/$membershipId"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/kms/$projectId/_kms-layout/members/$membershipId"
|
||||||
)({
|
)({
|
||||||
component: MemberDetailsByIDPage,
|
component: MemberDetailsByIDPage,
|
||||||
beforeLoad: ({ context, params }) => {
|
beforeLoad: ({ context, params }) => {
|
||||||
@@ -15,8 +15,9 @@ export const Route = createFileRoute(
|
|||||||
{
|
{
|
||||||
label: "Access Control",
|
label: "Access Control",
|
||||||
link: linkOptions({
|
link: linkOptions({
|
||||||
to: "/projects/kms/$projectId/access-management",
|
to: "/organizations/$orgId/projects/kms/$projectId/access-management",
|
||||||
params: {
|
params: {
|
||||||
|
orgId: params.orgId,
|
||||||
projectId: params.projectId
|
projectId: params.projectId
|
||||||
},
|
},
|
||||||
search: {
|
search: {
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { ProjectAccessControlTabs } from "@app/types/project";
|
|||||||
import { MemberDetailsByIDPage } from "./MemberDetailsByIDPage";
|
import { MemberDetailsByIDPage } from "./MemberDetailsByIDPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/pam/$projectId/_pam-layout/members/$membershipId"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/pam/$projectId/_pam-layout/members/$membershipId"
|
||||||
)({
|
)({
|
||||||
component: MemberDetailsByIDPage,
|
component: MemberDetailsByIDPage,
|
||||||
beforeLoad: ({ context, params }) => {
|
beforeLoad: ({ context, params }) => {
|
||||||
@@ -15,8 +15,9 @@ export const Route = createFileRoute(
|
|||||||
{
|
{
|
||||||
label: "Access Control",
|
label: "Access Control",
|
||||||
link: linkOptions({
|
link: linkOptions({
|
||||||
to: "/projects/pam/$projectId/access-management",
|
to: "/organizations/$orgId/projects/pam/$projectId/access-management",
|
||||||
params: {
|
params: {
|
||||||
|
orgId: params.orgId,
|
||||||
projectId: params.projectId
|
projectId: params.projectId
|
||||||
},
|
},
|
||||||
search: {
|
search: {
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { ProjectAccessControlTabs } from "@app/types/project";
|
|||||||
import { MemberDetailsByIDPage } from "./MemberDetailsByIDPage";
|
import { MemberDetailsByIDPage } from "./MemberDetailsByIDPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/members/$membershipId"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-management/$projectId/_secret-manager-layout/members/$membershipId"
|
||||||
)({
|
)({
|
||||||
component: MemberDetailsByIDPage,
|
component: MemberDetailsByIDPage,
|
||||||
beforeLoad: ({ context, params }) => {
|
beforeLoad: ({ context, params }) => {
|
||||||
@@ -15,8 +15,9 @@ export const Route = createFileRoute(
|
|||||||
{
|
{
|
||||||
label: "Access Control",
|
label: "Access Control",
|
||||||
link: linkOptions({
|
link: linkOptions({
|
||||||
to: "/projects/secret-management/$projectId/access-management",
|
to: "/organizations/$orgId/projects/secret-management/$projectId/access-management",
|
||||||
params: {
|
params: {
|
||||||
|
orgId: params.orgId,
|
||||||
projectId: params.projectId
|
projectId: params.projectId
|
||||||
},
|
},
|
||||||
search: {
|
search: {
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { ProjectAccessControlTabs } from "@app/types/project";
|
|||||||
import { MemberDetailsByIDPage } from "./MemberDetailsByIDPage";
|
import { MemberDetailsByIDPage } from "./MemberDetailsByIDPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/secret-scanning/$projectId/_secret-scanning-layout/members/$membershipId"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/secret-scanning/$projectId/_secret-scanning-layout/members/$membershipId"
|
||||||
)({
|
)({
|
||||||
component: MemberDetailsByIDPage,
|
component: MemberDetailsByIDPage,
|
||||||
beforeLoad: ({ context, params }) => {
|
beforeLoad: ({ context, params }) => {
|
||||||
@@ -15,8 +15,9 @@ export const Route = createFileRoute(
|
|||||||
{
|
{
|
||||||
label: "Access Control",
|
label: "Access Control",
|
||||||
link: linkOptions({
|
link: linkOptions({
|
||||||
to: "/projects/secret-scanning/$projectId/access-management",
|
to: "/organizations/$orgId/projects/secret-scanning/$projectId/access-management",
|
||||||
params: {
|
params: {
|
||||||
|
orgId: params.orgId,
|
||||||
projectId: params.projectId
|
projectId: params.projectId
|
||||||
},
|
},
|
||||||
search: {
|
search: {
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { ProjectAccessControlTabs } from "@app/types/project";
|
|||||||
import { MemberDetailsByIDPage } from "./MemberDetailsByIDPage";
|
import { MemberDetailsByIDPage } from "./MemberDetailsByIDPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/ssh/$projectId/_ssh-layout/members/$membershipId"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/ssh/$projectId/_ssh-layout/members/$membershipId"
|
||||||
)({
|
)({
|
||||||
component: MemberDetailsByIDPage,
|
component: MemberDetailsByIDPage,
|
||||||
beforeLoad: ({ context, params }) => {
|
beforeLoad: ({ context, params }) => {
|
||||||
@@ -15,8 +15,9 @@ export const Route = createFileRoute(
|
|||||||
{
|
{
|
||||||
label: "Access Control",
|
label: "Access Control",
|
||||||
link: linkOptions({
|
link: linkOptions({
|
||||||
to: "/projects/ssh/$projectId/access-management",
|
to: "/organizations/$orgId/projects/ssh/$projectId/access-management",
|
||||||
params: {
|
params: {
|
||||||
|
orgId: params.orgId,
|
||||||
projectId: params.projectId
|
projectId: params.projectId
|
||||||
},
|
},
|
||||||
search: {
|
search: {
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { ProjectAccessControlTabs } from "@app/types/project";
|
|||||||
import { RoleDetailsBySlugPage } from "./RoleDetailsBySlugPage";
|
import { RoleDetailsBySlugPage } from "./RoleDetailsBySlugPage";
|
||||||
|
|
||||||
export const Route = createFileRoute(
|
export const Route = createFileRoute(
|
||||||
"/_authenticate/_inject-org-details/_org-layout/projects/cert-management/$projectId/_cert-manager-layout/roles/$roleSlug"
|
"/_authenticate/_inject-org-details/_org-layout/organizations/$orgId/projects/cert-management/$projectId/_cert-manager-layout/roles/$roleSlug"
|
||||||
)({
|
)({
|
||||||
component: RoleDetailsBySlugPage,
|
component: RoleDetailsBySlugPage,
|
||||||
beforeLoad: ({ context, params }) => {
|
beforeLoad: ({ context, params }) => {
|
||||||
@@ -15,8 +15,9 @@ export const Route = createFileRoute(
|
|||||||
{
|
{
|
||||||
label: "Access Control",
|
label: "Access Control",
|
||||||
link: linkOptions({
|
link: linkOptions({
|
||||||
to: "/projects/cert-management/$projectId/access-management",
|
to: "/organizations/$orgId/projects/cert-management/$projectId/access-management",
|
||||||
params: {
|
params: {
|
||||||
|
orgId: params.orgId,
|
||||||
projectId: params.projectId
|
projectId: params.projectId
|
||||||
},
|
},
|
||||||
search: {
|
search: {
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user