diff --git a/public/app/features/apiserver/types.ts b/public/app/features/apiserver/types.ts index 9290ac779c2..5db483b3f28 100644 --- a/public/app/features/apiserver/types.ts +++ b/public/app/features/apiserver/types.ts @@ -90,7 +90,7 @@ type GrafanaClientAnnotations = { // Labels type GrafanaLabels = { - [DeprecatedInternalId]?: number; + [DeprecatedInternalId]?: string; }; export interface Resource extends TypeMeta { diff --git a/public/app/features/dashboard-scene/serialization/DashboardSceneSerializer.ts b/public/app/features/dashboard-scene/serialization/DashboardSceneSerializer.ts index f1fae45ce02..039f366de9a 100644 --- a/public/app/features/dashboard-scene/serialization/DashboardSceneSerializer.ts +++ b/public/app/features/dashboard-scene/serialization/DashboardSceneSerializer.ts @@ -64,7 +64,7 @@ export class V1DashboardSerializer implements DashboardSceneSerializerLike { [AnnoKeySlug]: 'dashboard-slug', }, labels: { - [DeprecatedInternalId]: 123, + [DeprecatedInternalId]: '123', }, }, }; @@ -444,7 +444,7 @@ describe('ResponseTransformers', () => { expect(transformed.metadata.annotations?.[AnnoKeyFolder]).toEqual('folder1'); expect(transformed.metadata.annotations?.[AnnoKeySlug]).toEqual('dashboard-slug'); expect(transformed.metadata.annotations?.[AnnoKeyDashboardGnetId]).toBe('something-like-a-uid'); - expect(transformed.metadata.labels?.[DeprecatedInternalId]).toBe(123); + expect(transformed.metadata.labels?.[DeprecatedInternalId]).toBe('123'); // Spec const spec = transformed.spec; diff --git a/public/app/features/dashboard/api/ResponseTransformers.ts b/public/app/features/dashboard/api/ResponseTransformers.ts index 38f882abbc1..af0b15ff2e5 100644 --- a/public/app/features/dashboard/api/ResponseTransformers.ts +++ b/public/app/features/dashboard/api/ResponseTransformers.ts @@ -134,7 +134,7 @@ export function ensureV2Response( }; creationTimestamp = dto.meta.created; labelsMeta = { - [DeprecatedInternalId]: dashboard.id ?? undefined, + [DeprecatedInternalId]: dashboard.id?.toString() ?? undefined, }; } diff --git a/public/app/features/dashboard/api/v0.ts b/public/app/features/dashboard/api/v0.ts index e9a72fa52be..f06e4e81000 100644 --- a/public/app/features/dashboard/api/v0.ts +++ b/public/app/features/dashboard/api/v0.ts @@ -10,6 +10,7 @@ import { AnnoKeyMessage, AnnoKeyFolder, Resource, + DeprecatedInternalId, } from 'app/features/apiserver/types'; import { getDashboardUrl } from 'app/features/dashboard-scene/utils/getDashboardUrl'; import { DeleteDashboardResponse } from 'app/features/manage-dashboards/types'; @@ -107,6 +108,10 @@ export class K8sDashboardAPI implements DashboardAPI { dashboard: dash.spec, }; + if (dash.metadata.labels?.[DeprecatedInternalId]) { + result.dashboard.id = parseInt(dash.metadata.labels[DeprecatedInternalId], 10); + } + if (dash.metadata.annotations?.[AnnoKeyFolder]) { try { const folder = await backendSrv.getFolderByUid(dash.metadata.annotations[AnnoKeyFolder]); diff --git a/public/app/features/dashboard/api/v2.test.ts b/public/app/features/dashboard/api/v2.test.ts index 0038293e756..7aa37af5366 100644 --- a/public/app/features/dashboard/api/v2.test.ts +++ b/public/app/features/dashboard/api/v2.test.ts @@ -113,7 +113,7 @@ describe('v2 dashboard API - Save', () => { k8s: { name: 'test-dash', labels: { - [DeprecatedInternalId]: 123, + [DeprecatedInternalId]: '123', }, annotations: { diff --git a/public/app/features/dashboard/api/v2.ts b/public/app/features/dashboard/api/v2.ts index f523d32cbf6..ca9bb75745e 100644 --- a/public/app/features/dashboard/api/v2.ts +++ b/public/app/features/dashboard/api/v2.ts @@ -143,10 +143,15 @@ export class K8sDashboardV2API }) ); + let dashId = 0; + if (v.metadata.labels?.[DeprecatedInternalId]) { + dashId = parseInt(v.metadata.labels[DeprecatedInternalId], 10); + } + return { uid: v.metadata.name, version: parseInt(v.metadata.resourceVersion, 10) ?? 0, - id: v.metadata.labels?.[DeprecatedInternalId] ?? 0, + id: dashId, status: 'success', url, slug: '',