From 39b424b8a726817d9af96a0cc7b0fcd0def1a55f Mon Sep 17 00:00:00 2001 From: Marcus Andersson Date: Mon, 17 Feb 2025 15:20:35 +0100 Subject: [PATCH] PluginExtensions: Making it possible to set secureJsonData on datasource config page. (#100726) * Added setSecureJsonData to the configure context. * Exposing which fields are set in secureJsonData. * removed omit. --- packages/grafana-data/src/types/pluginExtensions.ts | 6 +++++- .../datasources/components/EditDataSource.test.tsx | 1 + .../features/datasources/components/EditDataSource.tsx | 8 ++++++-- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/packages/grafana-data/src/types/pluginExtensions.ts b/packages/grafana-data/src/types/pluginExtensions.ts index ceff4e2cea5..331f6db43da 100644 --- a/packages/grafana-data/src/types/pluginExtensions.ts +++ b/packages/grafana-data/src/types/pluginExtensions.ts @@ -195,7 +195,10 @@ export type PluginExtensionPanelContext = { data?: PanelData; }; -export type PluginExtensionDataSourceConfigContext = { +export type PluginExtensionDataSourceConfigContext< + JsonData extends DataSourceJsonData = DataSourceJsonData, + SecureJsonData = {}, +> = { // The current datasource settings dataSource: DataSourceSettings; @@ -211,6 +214,7 @@ export type PluginExtensionDataSourceConfigContext void; + setSecureJsonData: (secureJsonData: SecureJsonData) => void; }; export type PluginExtensionCommandPaletteContext = {}; diff --git a/public/app/features/datasources/components/EditDataSource.test.tsx b/public/app/features/datasources/components/EditDataSource.test.tsx index f858ec485d4..378695c0506 100644 --- a/public/app/features/datasources/components/EditDataSource.test.tsx +++ b/public/app/features/datasources/components/EditDataSource.test.tsx @@ -358,6 +358,7 @@ describe('', () => { expect(props.context.dataSource).toBeDefined(); expect(props.context.dataSourceMeta).toBeDefined(); expect(props.context.setJsonData).toBeDefined(); + expect(props.context.setSecureJsonData).toBeDefined(); expect(props.context.testingStatus).toBeDefined(); }); }); diff --git a/public/app/features/datasources/components/EditDataSource.tsx b/public/app/features/datasources/components/EditDataSource.tsx index afd594ef0ed..64cbc49ddfd 100644 --- a/public/app/features/datasources/components/EditDataSource.tsx +++ b/public/app/features/datasources/components/EditDataSource.tsx @@ -1,5 +1,4 @@ import { AnyAction } from '@reduxjs/toolkit'; -import { omit } from 'lodash'; import { useMemo } from 'react'; import * as React from 'react'; @@ -211,7 +210,7 @@ export function EditDataSourceView({
@@ -219,6 +218,11 @@ export function EditDataSourceView({ ...dataSource, jsonData: { ...dataSource.jsonData, ...jsonData }, }), + setSecureJsonData: (secureJsonData) => + onOptionsChange({ + ...dataSource, + secureJsonData: { ...dataSource.secureJsonData, ...secureJsonData }, + }), }} />