This commit is contained in:
Stephen Zhou 2026-05-07 17:23:00 +08:00
parent b1773ed11f
commit f5a262817d
No known key found for this signature in database
14 changed files with 227 additions and 221 deletions

View File

@ -3,12 +3,12 @@
import type { FC } from 'react'
import { Dialog, DialogCloseButton, DialogContent } from '@langgenius/dify-ui/dialog'
import { toast } from '@langgenius/dify-ui/toast'
import { useQuery } from '@tanstack/react-query'
import { skipToken, useQuery } from '@tanstack/react-query'
import { useMemo } from 'react'
import { useTranslation } from 'react-i18next'
import { consoleQuery } from '@/service/client'
import { DEPLOYMENT_PAGE_SIZE } from '../data'
import { useStartDeployment } from '../hooks/use-deployment-mutations'
import { deploymentReleaseHistoryQueryOptions } from '../queries'
import { useDeploymentsStore } from '../store'
import { environmentOptionsFromOptionsReply } from '../utils'
import { DeployForm } from './deploy-drawer/form'
@ -20,14 +20,21 @@ const DeployDrawer: FC = () => {
const closeDeployDrawer = useDeploymentsStore(state => state.closeDeployDrawer)
const startDeploy = useStartDeployment()
const open = drawer.open
const { data: releaseHistory } = useQuery({
...deploymentReleaseHistoryQueryOptions(drawerAppInstanceId),
const { data: releaseHistory } = useQuery(consoleQuery.enterprise.appDeploy.listReleases.queryOptions({
input: drawerAppInstanceId
? {
params: { appInstanceId: drawerAppInstanceId },
query: {
pageNumber: 1,
resultsPerPage: DEPLOYMENT_PAGE_SIZE,
},
}
: skipToken,
enabled: open && Boolean(drawerAppInstanceId),
})
const { data: environmentOptionsReply } = useQuery({
...consoleQuery.enterprise.appDeploy.listDeploymentEnvironmentOptions.queryOptions(),
}))
const { data: environmentOptionsReply } = useQuery(consoleQuery.enterprise.appDeploy.listDeploymentEnvironmentOptions.queryOptions({
enabled: open,
})
}))
const environmentOptions = useMemo(
() => environmentOptionsFromOptionsReply(environmentOptionsReply),

View File

@ -9,16 +9,12 @@ import {
AlertDialogDescription,
AlertDialogTitle,
} from '@langgenius/dify-ui/alert-dialog'
import { useQuery } from '@tanstack/react-query'
import { skipToken, useQuery } from '@tanstack/react-query'
import { useMemo } from 'react'
import { useTranslation } from 'react-i18next'
import { consoleQuery } from '@/service/client'
import { DEPLOYMENT_PAGE_SIZE } from '../data'
import { useStartDeployment } from '../hooks/use-deployment-mutations'
import {
deploymentEnvironmentDeploymentsQueryOptions,
deploymentOverviewQueryOptions,
deploymentReleaseHistoryQueryOptions,
} from '../queries'
import { useDeploymentsStore } from '../store'
import {
activeRelease,
@ -45,22 +41,32 @@ const RollbackModal: FC = () => {
const modal = useDeploymentsStore(state => state.rollbackModal)
const closeRollbackModal = useDeploymentsStore(state => state.closeRollbackModal)
const rollbackDeployment = useStartDeployment()
const { data: overview } = useQuery({
...deploymentOverviewQueryOptions(modal.appInstanceId),
const appInput = modal.appInstanceId
? { params: { appInstanceId: modal.appInstanceId } }
: skipToken
const { data: overview } = useQuery(consoleQuery.enterprise.appDeploy.getAppInstanceOverview.queryOptions({
input: appInput,
enabled: modal.open && Boolean(modal.appInstanceId),
})
const { data: environmentDeployments } = useQuery({
...deploymentEnvironmentDeploymentsQueryOptions(modal.appInstanceId),
}))
const { data: environmentDeployments } = useQuery(consoleQuery.enterprise.appDeploy.listRuntimeInstances.queryOptions({
input: appInput,
enabled: modal.open && Boolean(modal.appInstanceId),
})
const { data: environmentOptionsReply } = useQuery({
...consoleQuery.enterprise.appDeploy.listDeploymentEnvironmentOptions.queryOptions(),
}))
const { data: environmentOptionsReply } = useQuery(consoleQuery.enterprise.appDeploy.listDeploymentEnvironmentOptions.queryOptions({
enabled: modal.open,
})
const { data: releaseHistory } = useQuery({
...deploymentReleaseHistoryQueryOptions(modal.appInstanceId),
}))
const { data: releaseHistory } = useQuery(consoleQuery.enterprise.appDeploy.listReleases.queryOptions({
input: modal.appInstanceId
? {
params: { appInstanceId: modal.appInstanceId },
query: {
pageNumber: 1,
resultsPerPage: DEPLOYMENT_PAGE_SIZE,
},
}
: skipToken,
enabled: modal.open && Boolean(modal.appInstanceId),
})
}))
const environmentOptions = useMemo(
() => environmentOptionsFromOptionsReply(environmentOptionsReply),
[environmentOptionsReply],

View File

@ -16,7 +16,6 @@ import {
useToggleDeploymentAccessChannel,
useToggleDeploymentDeveloperAPI,
} from '../hooks/use-deployment-mutations'
import { deploymentEnvironmentDeploymentsQueryOptions } from '../queries'
import {
deployedRows,
} from '../utils'
@ -44,7 +43,9 @@ const AccessTab: FC<AccessTabProps> = ({ instanceId: appId }) => {
const { data: accessConfig } = useQuery(consoleQuery.enterprise.appDeploy.getAppInstanceAccess.queryOptions({
input: appInput,
}))
const { data: environmentDeployments } = useQuery(deploymentEnvironmentDeploymentsQueryOptions(appId))
const { data: environmentDeployments } = useQuery(consoleQuery.enterprise.appDeploy.listRuntimeInstances.queryOptions({
input: appInput,
}))
const [createdApiToken, setCreatedApiToken] = useState<{
appId: string
token: string

View File

@ -13,7 +13,6 @@ import { useMemo, useState } from 'react'
import { useTranslation } from 'react-i18next'
import { consoleQuery } from '@/service/client'
import { useUndeployDeployment } from '../hooks/use-deployment-mutations'
import { deploymentEnvironmentDeploymentsQueryOptions } from '../queries'
import { useDeploymentsStore } from '../store'
import {
activeRelease,
@ -40,7 +39,11 @@ type DeployTabProps = {
const DeployTab: FC<DeployTabProps> = ({ instanceId: appInstanceId }) => {
const { t } = useTranslation('deployments')
const { data: environmentDeployments } = useQuery(deploymentEnvironmentDeploymentsQueryOptions(appInstanceId))
const { data: environmentDeployments } = useQuery(consoleQuery.enterprise.appDeploy.listRuntimeInstances.queryOptions({
input: {
params: { appInstanceId },
},
}))
const { data: environmentOptionsReply } = useQuery(consoleQuery.enterprise.appDeploy.listDeploymentEnvironmentOptions.queryOptions())
const openDeployDrawer = useDeploymentsStore(state => state.openDeployDrawer)
const undeployDeployment = useUndeployDeployment()

View File

@ -9,11 +9,9 @@ import { useTranslation } from 'react-i18next'
import { getAppModeLabel } from '@/app/components/app-sidebar/app-info/app-mode-labels'
import useDocumentTitle from '@/hooks/use-document-title'
import { useRouter, useSelectedLayoutSegment } from '@/next/navigation'
import { consoleQuery } from '@/service/client'
import DeployDrawer from '../components/deploy-drawer'
import RollbackModal from '../components/rollback-modal'
import {
deploymentOverviewQueryOptions,
} from '../queries'
import { toAppInfoFromOverview } from '../utils'
import { DeploymentSidebar } from './deployment-sidebar'
import { isInstanceDetailTabKey } from './tabs'
@ -30,7 +28,11 @@ const InstanceDetail: FC<InstanceDetailProps> = ({ instanceId, children }) => {
const selectedSegment = useSelectedLayoutSegment()
const selectedTab = selectedSegment ?? undefined
const activeTab: InstanceDetailTabKey = isInstanceDetailTabKey(selectedTab) ? selectedTab : 'overview'
const overviewQuery = useQuery(deploymentOverviewQueryOptions(instanceId))
const overviewQuery = useQuery(consoleQuery.enterprise.appDeploy.getAppInstanceOverview.queryOptions({
input: {
params: { appInstanceId: instanceId },
},
}))
useDocumentTitle(t('documentTitle.detail'))

View File

@ -9,10 +9,7 @@ import { getAppModeLabel } from '@/app/components/app-sidebar/app-info/app-mode-
import { useRouter } from '@/next/navigation'
import { consoleQuery } from '@/service/client'
import { StatusBadge } from '../components/status-badge'
import {
deploymentOverviewQueryOptions,
deploymentReleaseHistoryQueryOptions,
} from '../queries'
import { DEPLOYMENT_PAGE_SIZE } from '../data'
import { useDeploymentsStore } from '../store'
import {
releaseLabel,
@ -102,8 +99,18 @@ const OverviewTab: FC<OverviewTabProps> = ({ instanceId }) => {
const { t: tCommon } = useTranslation()
const router = useRouter()
const input = { params: { appInstanceId: instanceId } }
const { data: overview } = useQuery(deploymentOverviewQueryOptions(instanceId))
const { data: releaseHistory } = useQuery(deploymentReleaseHistoryQueryOptions(instanceId))
const { data: overview } = useQuery(consoleQuery.enterprise.appDeploy.getAppInstanceOverview.queryOptions({
input,
}))
const { data: releaseHistory } = useQuery(consoleQuery.enterprise.appDeploy.listReleases.queryOptions({
input: {
...input,
query: {
pageNumber: 1,
resultsPerPage: DEPLOYMENT_PAGE_SIZE,
},
},
}))
const { data: accessConfig } = useQuery(consoleQuery.enterprise.appDeploy.getAppInstanceAccess.queryOptions({
input,
}))

View File

@ -22,10 +22,6 @@ import {
useDeleteDeploymentInstance,
useUpdateDeploymentInstance,
} from '../hooks/use-deployment-mutations'
import {
deploymentEnvironmentDeploymentsQueryOptions,
deploymentOverviewQueryOptions,
} from '../queries'
import {
deployedRows,
toAppInfoFromOverview,
@ -188,8 +184,12 @@ const SettingsTab: FC<SettingsTabProps> = ({ instanceId }) => {
const updateInstance = useUpdateDeploymentInstance()
const deleteInstance = useDeleteDeploymentInstance()
const appInput = { params: { appInstanceId: instanceId } }
const { data: overview } = useQuery(deploymentOverviewQueryOptions(instanceId))
const { data: environmentDeployments } = useQuery(deploymentEnvironmentDeploymentsQueryOptions(instanceId))
const { data: overview } = useQuery(consoleQuery.enterprise.appDeploy.getAppInstanceOverview.queryOptions({
input: appInput,
}))
const { data: environmentDeployments } = useQuery(consoleQuery.enterprise.appDeploy.listRuntimeInstances.queryOptions({
input: appInput,
}))
const app = useMemo(
() => toAppInfoFromOverview(overview?.instance),
[overview?.instance],

View File

@ -10,12 +10,9 @@ import { useMemo, useState } from 'react'
import { useTranslation } from 'react-i18next'
import Input from '@/app/components/base/input'
import Textarea from '@/app/components/base/textarea'
import { consoleQuery } from '@/service/client'
import { DEPLOYMENT_PAGE_SIZE } from '../data'
import { useCreateDeploymentRelease } from '../hooks/use-deployment-mutations'
import {
deploymentEnvironmentDeploymentsQueryOptions,
deploymentOverviewQueryOptions,
deploymentReleaseHistoryQueryOptions,
} from '../queries'
import {
deployedRows,
formatDate,
@ -34,9 +31,22 @@ type VersionsTabProps = {
const VersionsTab: FC<VersionsTabProps> = ({ instanceId: appId }) => {
const { t } = useTranslation('deployments')
const { data: overview } = useQuery(deploymentOverviewQueryOptions(appId))
const { data: releaseHistory } = useQuery(deploymentReleaseHistoryQueryOptions(appId))
const { data: environmentDeployments } = useQuery(deploymentEnvironmentDeploymentsQueryOptions(appId))
const input = { params: { appInstanceId: appId } }
const { data: overview } = useQuery(consoleQuery.enterprise.appDeploy.getAppInstanceOverview.queryOptions({
input,
}))
const { data: releaseHistory } = useQuery(consoleQuery.enterprise.appDeploy.listReleases.queryOptions({
input: {
...input,
query: {
pageNumber: 1,
resultsPerPage: DEPLOYMENT_PAGE_SIZE,
},
},
}))
const { data: environmentDeployments } = useQuery(consoleQuery.enterprise.appDeploy.listRuntimeInstances.queryOptions({
input,
}))
const createRelease = useCreateDeploymentRelease()
const [isCreating, setIsCreating] = useState(false)
const [releaseName, setReleaseName] = useState('')

View File

@ -12,7 +12,6 @@ import { useQuery } from '@tanstack/react-query'
import { useMemo, useState } from 'react'
import { useTranslation } from 'react-i18next'
import { consoleQuery } from '@/service/client'
import { deploymentEnvironmentDeploymentsQueryOptions } from '../../queries'
import { useDeploymentsStore } from '../../store'
import {
activeRelease,
@ -32,14 +31,15 @@ export const DeployReleaseMenu: FC<DeployReleaseMenuProps> = ({ appInstanceId, r
const { t } = useTranslation('deployments')
const openDeployDrawer = useDeploymentsStore(state => state.openDeployDrawer)
const [open, setOpen] = useState(false)
const { data: environmentDeployments } = useQuery({
...deploymentEnvironmentDeploymentsQueryOptions(appInstanceId),
const { data: environmentDeployments } = useQuery(consoleQuery.enterprise.appDeploy.listRuntimeInstances.queryOptions({
input: {
params: { appInstanceId },
},
enabled: open,
})
const { data: environmentOptionsReply } = useQuery({
...consoleQuery.enterprise.appDeploy.listDeploymentEnvironmentOptions.queryOptions(),
}))
const { data: environmentOptionsReply } = useQuery(consoleQuery.enterprise.appDeploy.listDeploymentEnvironmentOptions.queryOptions({
enabled: open,
})
}))
const environmentOptions = useMemo(
() => environmentOptionsFromOptionsReply(environmentOptionsReply),

View File

@ -4,18 +4,7 @@ import type { DeploymentRuntimeBinding } from '@dify/contracts/enterprise/types.
import type { QueryClient, QueryKey } from '@tanstack/react-query'
import { useMutation, useQueryClient } from '@tanstack/react-query'
import { consoleClient, consoleQuery } from '@/service/client'
import {
deploymentAccessConfigQueryKey,
deploymentAccessStateQueryKeys,
deploymentEnvironmentAccessPolicyQueryKeyForEnvironment,
deploymentInstanceDetailQueryKeys,
deploymentInstanceIdentityQueryKeys,
deploymentInstanceStateQueryKeys,
deploymentOverviewQueryKey,
deploymentReleaseHistoryQueryKey,
deploymentsListQueryKey,
deploymentsListQueryOptions,
} from '../queries'
import { SOURCE_APPS_PAGE_SIZE } from '../data'
export type CreateDeploymentInstanceResult = {
appInstanceId: string
@ -60,20 +49,57 @@ const removeQueries = (queryClient: QueryClient, queryKeys: readonly QueryKey[])
const invalidateInstanceList = (queryClient: QueryClient): Promise<void> => {
return queryClient.invalidateQueries({
queryKey: deploymentsListQueryKey(),
queryKey: consoleQuery.enterprise.appDeploy.listAppInstances.key({ type: 'query' }),
})
}
const invalidateInstanceIdentity = (queryClient: QueryClient, appInstanceId: string): Promise<void> => {
return invalidateQueries(queryClient, deploymentInstanceIdentityQueryKeys(appInstanceId))
return invalidateQueries(queryClient, [
consoleQuery.enterprise.appDeploy.listAppInstances.key({ type: 'query' }),
consoleQuery.enterprise.appDeploy.getAppInstanceOverview.key({
type: 'query',
input: { params: { appInstanceId } },
}),
consoleQuery.enterprise.appDeploy.getAppInstanceSettings.key({
type: 'query',
input: { params: { appInstanceId } },
}),
])
}
const invalidateDeploymentState = (queryClient: QueryClient, appInstanceId: string): Promise<void> => {
return invalidateQueries(queryClient, deploymentInstanceStateQueryKeys(appInstanceId))
return invalidateQueries(queryClient, [
consoleQuery.enterprise.appDeploy.listAppInstances.key({ type: 'query' }),
consoleQuery.enterprise.appDeploy.getAppInstanceOverview.key({
type: 'query',
input: { params: { appInstanceId } },
}),
consoleQuery.enterprise.appDeploy.listRuntimeInstances.key({
type: 'query',
input: { params: { appInstanceId } },
}),
consoleQuery.enterprise.appDeploy.listReleases.key({
type: 'query',
input: { params: { appInstanceId } },
}),
consoleQuery.enterprise.appDeploy.getAppInstanceAccess.key({
type: 'query',
input: { params: { appInstanceId } },
}),
])
}
const invalidateAccessState = (queryClient: QueryClient, appInstanceId: string): Promise<void> => {
return invalidateQueries(queryClient, deploymentAccessStateQueryKeys(appInstanceId))
return invalidateQueries(queryClient, [
consoleQuery.enterprise.appDeploy.getAppInstanceOverview.key({
type: 'query',
input: { params: { appInstanceId } },
}),
consoleQuery.enterprise.appDeploy.getAppInstanceAccess.key({
type: 'query',
input: { params: { appInstanceId } },
}),
])
}
const invalidateEnvironmentAccessPolicy = (
@ -82,13 +108,49 @@ const invalidateEnvironmentAccessPolicy = (
environmentId: string,
): Promise<void> => {
return invalidateQueries(queryClient, [
deploymentAccessConfigQueryKey(appInstanceId),
deploymentEnvironmentAccessPolicyQueryKeyForEnvironment(appInstanceId, environmentId),
consoleQuery.enterprise.appDeploy.getAppInstanceAccess.key({
type: 'query',
input: { params: { appInstanceId } },
}),
consoleQuery.enterprise.appDeploy.getEnvironmentAccessPolicy.key({
type: 'query',
input: {
params: {
appInstanceId,
environmentId,
},
},
}),
])
}
const removeDeletedInstanceState = (queryClient: QueryClient, appInstanceId: string): Promise<void> => {
removeQueries(queryClient, deploymentInstanceDetailQueryKeys(appInstanceId))
removeQueries(queryClient, [
consoleQuery.enterprise.appDeploy.getAppInstanceOverview.key({
type: 'query',
input: { params: { appInstanceId } },
}),
consoleQuery.enterprise.appDeploy.getAppInstanceSettings.key({
type: 'query',
input: { params: { appInstanceId } },
}),
consoleQuery.enterprise.appDeploy.listRuntimeInstances.key({
type: 'query',
input: { params: { appInstanceId } },
}),
consoleQuery.enterprise.appDeploy.listReleases.key({
type: 'query',
input: { params: { appInstanceId } },
}),
consoleQuery.enterprise.appDeploy.getAppInstanceAccess.key({
type: 'query',
input: { params: { appInstanceId } },
}),
consoleQuery.enterprise.appDeploy.getEnvironmentAccessPolicy.key({
type: 'query',
input: { params: { appInstanceId } },
}),
])
return invalidateInstanceList(queryClient)
}
@ -112,7 +174,16 @@ export const useCreateDeploymentInstance = () => {
if (delay > 0)
await wait(delay)
const listResponse = await queryClient.fetchQuery(deploymentsListQueryOptions()).catch(() => undefined)
const listResponse = await queryClient
.fetchQuery(consoleQuery.enterprise.appDeploy.listAppInstances.queryOptions({
input: {
query: {
pageNumber: 1,
resultsPerPage: SOURCE_APPS_PAGE_SIZE,
},
},
}))
.catch(() => undefined)
if (listResponse?.data?.some(app => app.id === response.appInstanceId))
break
}
@ -149,8 +220,14 @@ export const useCreateDeploymentRelease = () => {
},
onSuccess: (_data, variables) => {
return invalidateQueries(queryClient, [
deploymentReleaseHistoryQueryKey(variables.appInstanceId),
deploymentOverviewQueryKey(variables.appInstanceId),
consoleQuery.enterprise.appDeploy.listReleases.key({
type: 'query',
input: { params: { appInstanceId: variables.appInstanceId } },
}),
consoleQuery.enterprise.appDeploy.getAppInstanceOverview.key({
type: 'query',
input: { params: { appInstanceId: variables.appInstanceId } },
}),
])
},
})

View File

@ -11,7 +11,7 @@ import { consoleQuery } from '@/service/client'
import CreateInstanceModal from '../components/create-instance-modal'
import DeployDrawer from '../components/deploy-drawer'
import RollbackModal from '../components/rollback-modal'
import { deploymentsListQueryOptions } from '../queries'
import { SOURCE_APPS_PAGE_SIZE } from '../data'
import { useDeploymentsStore } from '../store'
import {
deploymentSummariesFromList,
@ -45,10 +45,16 @@ const DeploymentsMain: FC = () => {
const requestedEnvironmentId = envFilter !== 'all' && envFilter !== 'not-deployed'
? envFilter
: undefined
const listQuery = useQuery(deploymentsListQueryOptions({
...(requestedEnvironmentId ? { environmentId: requestedEnvironmentId } : {}),
...(envFilter === 'not-deployed' ? { notDeployed: true } : {}),
...(queryKeywords.trim() ? { query: queryKeywords.trim() } : {}),
const listQuery = useQuery(consoleQuery.enterprise.appDeploy.listAppInstances.queryOptions({
input: {
query: {
pageNumber: 1,
resultsPerPage: SOURCE_APPS_PAGE_SIZE,
...(requestedEnvironmentId ? { environmentId: requestedEnvironmentId } : {}),
...(envFilter === 'not-deployed' ? { notDeployed: true } : {}),
...(queryKeywords.trim() ? { query: queryKeywords.trim() } : {}),
},
},
}))
const { data: environmentOptionsReply } = useQuery(consoleQuery.enterprise.appDeploy.listDeploymentEnvironmentOptions.queryOptions())
const apps = useMemo(() => sourceAppsFromList(listQuery.data), [listQuery.data])

View File

@ -2,15 +2,13 @@
import type { NavItem } from '@/app/components/header/nav/nav-selector'
import type { AppIconType, AppModeEnum } from '@/types/app'
import { useQuery } from '@tanstack/react-query'
import { skipToken, useQuery } from '@tanstack/react-query'
import { useCallback, useMemo } from 'react'
import { useTranslation } from 'react-i18next'
import Nav from '@/app/components/header/nav'
import { useParams, useRouter, useSelectedLayoutSegment } from '@/next/navigation'
import {
deploymentOverviewQueryOptions,
deploymentsListQueryOptions,
} from '../queries'
import { consoleQuery } from '@/service/client'
import { SOURCE_APPS_PAGE_SIZE } from '../data'
import { useDeploymentsStore } from '../store'
import {
sourceAppsFromList,
@ -26,16 +24,23 @@ const DeploymentsNav = () => {
const instanceId = params?.instanceId
const openCreateInstanceModal = useDeploymentsStore(state => state.openCreateInstanceModal)
const { data: currentInstance } = useQuery({
...deploymentOverviewQueryOptions(instanceId),
const { data: currentInstance } = useQuery(consoleQuery.enterprise.appDeploy.getAppInstanceOverview.queryOptions({
input: instanceId
? { params: { appInstanceId: instanceId } }
: skipToken,
enabled: isActive && Boolean(instanceId),
select: data => toAppInfoFromOverview(data.instance),
})
}))
const listQuery = useQuery({
...deploymentsListQueryOptions(),
const listQuery = useQuery(consoleQuery.enterprise.appDeploy.listAppInstances.queryOptions({
input: {
query: {
pageNumber: 1,
resultsPerPage: SOURCE_APPS_PAGE_SIZE,
},
},
enabled: isActive,
})
}))
const apps = useMemo(() => sourceAppsFromList(listQuery.data), [listQuery.data])
const navigationItems = useMemo<NavItem[]>(() => {

View File

@ -1,121 +0,0 @@
import type { ListAppDeploymentsQuery } from '@/features/deployments/types'
import { skipToken } from '@tanstack/react-query'
import { consoleQuery } from '@/service/client'
import { DEPLOYMENT_PAGE_SIZE, SOURCE_APPS_PAGE_SIZE } from './data'
export const deploymentsListQueryOptions = (query: ListAppDeploymentsQuery = {}) =>
consoleQuery.enterprise.appDeploy.listAppInstances.queryOptions({
input: {
query: {
pageNumber: 1,
resultsPerPage: SOURCE_APPS_PAGE_SIZE,
...query,
},
},
})
export const deploymentsListQueryKey = () =>
consoleQuery.enterprise.appDeploy.listAppInstances.key({ type: 'query' })
export const deploymentAppInstanceInput = (appInstanceId: string) => ({
params: { appInstanceId },
})
export const deploymentAppInstanceQueryKey = (appInstanceId: string) => ({
type: 'query' as const,
input: deploymentAppInstanceInput(appInstanceId),
})
export const deploymentEnvironmentAccessPolicyQueryKey = (
appInstanceId: string,
environmentId: string,
) => ({
type: 'query' as const,
input: {
params: {
appInstanceId,
environmentId,
},
},
})
export const deploymentOverviewQueryKey = (appInstanceId: string) =>
consoleQuery.enterprise.appDeploy.getAppInstanceOverview.key(deploymentAppInstanceQueryKey(appInstanceId))
export const deploymentSettingsQueryKey = (appInstanceId: string) =>
consoleQuery.enterprise.appDeploy.getAppInstanceSettings.key(deploymentAppInstanceQueryKey(appInstanceId))
export const deploymentEnvironmentDeploymentsQueryKey = (appInstanceId: string) =>
consoleQuery.enterprise.appDeploy.listRuntimeInstances.key(deploymentAppInstanceQueryKey(appInstanceId))
export const deploymentReleaseHistoryQueryKey = (appInstanceId: string) =>
consoleQuery.enterprise.appDeploy.listReleases.key(deploymentAppInstanceQueryKey(appInstanceId))
export const deploymentAccessConfigQueryKey = (appInstanceId: string) =>
consoleQuery.enterprise.appDeploy.getAppInstanceAccess.key(deploymentAppInstanceQueryKey(appInstanceId))
export const deploymentEnvironmentAccessPolicyQueryKeyForEnvironment = (
appInstanceId: string,
environmentId: string,
) =>
consoleQuery.enterprise.appDeploy.getEnvironmentAccessPolicy.key(
deploymentEnvironmentAccessPolicyQueryKey(appInstanceId, environmentId),
)
export const deploymentEnvironmentAccessPoliciesQueryKey = (appInstanceId: string) =>
consoleQuery.enterprise.appDeploy.getEnvironmentAccessPolicy.key(deploymentAppInstanceQueryKey(appInstanceId))
export const deploymentInstanceIdentityQueryKeys = (appInstanceId: string) => [
deploymentsListQueryKey(),
deploymentOverviewQueryKey(appInstanceId),
deploymentSettingsQueryKey(appInstanceId),
]
export const deploymentInstanceStateQueryKeys = (appInstanceId: string) => [
deploymentsListQueryKey(),
deploymentOverviewQueryKey(appInstanceId),
deploymentEnvironmentDeploymentsQueryKey(appInstanceId),
deploymentReleaseHistoryQueryKey(appInstanceId),
deploymentAccessConfigQueryKey(appInstanceId),
]
export const deploymentInstanceDetailQueryKeys = (appInstanceId: string) => [
deploymentOverviewQueryKey(appInstanceId),
deploymentSettingsQueryKey(appInstanceId),
deploymentEnvironmentDeploymentsQueryKey(appInstanceId),
deploymentReleaseHistoryQueryKey(appInstanceId),
deploymentAccessConfigQueryKey(appInstanceId),
deploymentEnvironmentAccessPoliciesQueryKey(appInstanceId),
]
export const deploymentAccessStateQueryKeys = (appInstanceId: string) => [
deploymentOverviewQueryKey(appInstanceId),
deploymentAccessConfigQueryKey(appInstanceId),
]
export const deploymentOverviewQueryOptions = (appInstanceId?: string) =>
consoleQuery.enterprise.appDeploy.getAppInstanceOverview.queryOptions({
input: appInstanceId
? { params: { appInstanceId } }
: skipToken,
})
export const deploymentEnvironmentDeploymentsQueryOptions = (appInstanceId?: string) =>
consoleQuery.enterprise.appDeploy.listRuntimeInstances.queryOptions({
input: appInstanceId
? { params: { appInstanceId } }
: skipToken,
})
export const deploymentReleaseHistoryQueryOptions = (appInstanceId?: string) =>
consoleQuery.enterprise.appDeploy.listReleases.queryOptions({
input: appInstanceId
? {
params: { appInstanceId },
query: {
pageNumber: 1,
resultsPerPage: DEPLOYMENT_PAGE_SIZE,
},
}
: skipToken,
})

View File

@ -84,4 +84,7 @@ const consoleLink = new OpenAPILink(consoleRouterContract, {
})
export const consoleClient: JsonifiedClient<ContractRouterClient<typeof consoleRouterContract>> = createORPCClient(consoleLink)
export const consoleQuery = createTanstackQueryUtils(consoleClient, { path: ['console'] })
export const consoleQuery = createTanstackQueryUtils(consoleClient, {
path: ['console'],
experimental_defaults: { },
})