7eaff4dab0
F1: ContainerImageStatus now reads the 24h statusCache (keyed by imageID) before the remote registry digest lookup, so the cache is effective on the input side for all callers instead of being write-only. This avoids the rate-limited registry HEAD on repeat loads. F2: add nodeName to the imageStatus query key so cached results cannot be reused across nodes. F3: correct the swagger annotations to reflect that engine-level issues degrade to a 200 skipped/error status rather than 400/404. F4: return a generic error message to the client instead of the raw registry/engine error; the raw error is still logged server-side. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
32 lines
1.0 KiB
TypeScript
32 lines
1.0 KiB
TypeScript
import { EnvironmentId } from '@/react/portainer/environments/types';
|
|
|
|
import { queryKeys as dockerQueryKeys } from '../../queries/utils';
|
|
|
|
import { Filters } from './types';
|
|
|
|
export const queryKeys = {
|
|
list: (environmentId: EnvironmentId) =>
|
|
[...dockerQueryKeys.root(environmentId), 'containers'] as const,
|
|
|
|
filters: (
|
|
environmentId: EnvironmentId,
|
|
params: { all?: boolean; filters?: Filters; nodeName?: string } = {}
|
|
) => [...queryKeys.list(environmentId), params] as const,
|
|
|
|
container: (environmentId: EnvironmentId, id: string) =>
|
|
[...queryKeys.list(environmentId), id] as const,
|
|
|
|
gpus: (environmentId: EnvironmentId, id: string) =>
|
|
[...queryKeys.container(environmentId, id), 'gpus'] as const,
|
|
|
|
imageStatus: (environmentId: EnvironmentId, id: string, nodeName?: string) =>
|
|
[
|
|
...queryKeys.container(environmentId, id),
|
|
'imageStatus',
|
|
nodeName,
|
|
] as const,
|
|
|
|
top: (environmentId: EnvironmentId, id: string) =>
|
|
[...queryKeys.container(environmentId, id), 'top'] as const,
|
|
};
|