', () => {
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 },
+ }),
}}
/>
diff --git a/public/app/features/explore/ExploreToolbar.tsx b/public/app/features/explore/ExploreToolbar.tsx
index d35dab34118..85166280a89 100644
--- a/public/app/features/explore/ExploreToolbar.tsx
+++ b/public/app/features/explore/ExploreToolbar.tsx
@@ -205,6 +205,7 @@ export function ExploreToolbar({ exploreId, onChangeTime, onContentOutlineToogle
const navBarActions = [
setDrawerOpened(!drawerOpened)}
diff --git a/public/app/features/explore/spec/helper/mocks.ts b/public/app/features/explore/spec/helper/mocks.ts
index 160762f25e2..fddd823240a 100644
--- a/public/app/features/explore/spec/helper/mocks.ts
+++ b/public/app/features/explore/spec/helper/mocks.ts
@@ -7,7 +7,7 @@ import { getTestQueryList } from './testdata/testQueryList';
// Enterprise and so we cannot import it here.
// We have some tests for testing QL inside Explore. The whole Explore setup is in OSS, and it needs these mocks but the
// test itself is in Enterprise. Ideally we would inject the mocks in the tests somehow.
-export const BASE_URL = getAPIBaseURL('peakq.grafana.app', 'v0alpha1');
+export const BASE_URL = getAPIBaseURL('querylibrary.grafana.app', 'v0alpha1');
export const mockData = {
all: {
diff --git a/public/app/features/explore/spec/helper/testdata/testQueryList.ts b/public/app/features/explore/spec/helper/testdata/testQueryList.ts
index c6efa9b93bd..7a730bb2c6c 100644
--- a/public/app/features/explore/spec/helper/testdata/testQueryList.ts
+++ b/public/app/features/explore/spec/helper/testdata/testQueryList.ts
@@ -1,6 +1,6 @@
export const getTestQueryList = () => ({
kind: 'QueryTemplateList',
- apiVersion: 'peakq.grafana.app/v0alpha1',
+ apiVersion: 'querylibrary.grafana.app/v0alpha1',
metadata: {
resourceVersion: '1783293408052252672',
remainingItemCount: 0,
@@ -8,7 +8,7 @@ export const getTestQueryList = () => ({
items: [
{
kind: 'QueryTemplate',
- apiVersion: 'peakq.grafana.app/v0alpha1',
+ apiVersion: 'querylibrary.grafana.app/v0alpha1',
metadata: {
name: 'AElastic2nkf9',
generateName: 'AElastic',
@@ -55,7 +55,7 @@ export const getTestQueryList = () => ({
},
{
kind: 'QueryTemplate',
- apiVersion: 'peakq.grafana.app/v0alpha1',
+ apiVersion: 'querylibrary.grafana.app/v0alpha1',
metadata: {
name: 'ALoki296tj',
generateName: 'ALoki',
diff --git a/public/app/features/plugins/admin/components/GetStartedWithPlugin/GetStartedWithDataSource.test.tsx b/public/app/features/plugins/admin/components/GetStartedWithPlugin/GetStartedWithDataSource.test.tsx
index 941fbb1eee7..a1b80773d8a 100644
--- a/public/app/features/plugins/admin/components/GetStartedWithPlugin/GetStartedWithDataSource.test.tsx
+++ b/public/app/features/plugins/admin/components/GetStartedWithPlugin/GetStartedWithDataSource.test.tsx
@@ -37,10 +37,8 @@ const plugin: CatalogPlugin = {
};
describe('GetStartedWithDataSource', () => {
- const oldFeatureTogglesManagedPluginsInstall = config.featureToggles.managedPluginsInstall;
const oldPluginAdminExternalManageEnabled = config.pluginAdminExternalManageEnabled;
- config.featureToggles.managedPluginsInstall = true;
config.pluginAdminExternalManageEnabled = true;
const contextSrv = new ContextSrv();
@@ -51,11 +49,10 @@ describe('GetStartedWithDataSource', () => {
setContextSrv(contextSrv);
afterAll(() => {
- config.featureToggles.managedPluginsInstall = oldFeatureTogglesManagedPluginsInstall;
config.pluginAdminExternalManageEnabled = oldPluginAdminExternalManageEnabled;
});
- it('should disable button when managedPluginsInstall and pluginAdminExternalManaged are enabled, but plugin.isFullyInstalled is false', () => {
+ it('should disable button when pluginAdminExternalManaged is enabled, but plugin.isFullyInstalled is false', () => {
render(
@@ -67,7 +64,7 @@ describe('GetStartedWithDataSource', () => {
expect(el).toBeDisabled();
});
- it('should disable button when managedPluginsInstall and pluginAdminExternalManaged are enabled, but plugin.isFullyInstalled is true', () => {
+ it('should disable button when pluginAdminExternalManaged enabled, but plugin.isFullyInstalled is true', () => {
render(
diff --git a/public/app/features/plugins/admin/components/GetStartedWithPlugin/GetStartedWithDataSource.tsx b/public/app/features/plugins/admin/components/GetStartedWithPlugin/GetStartedWithDataSource.tsx
index 22ba118489b..640560d62f5 100644
--- a/public/app/features/plugins/admin/components/GetStartedWithPlugin/GetStartedWithDataSource.tsx
+++ b/public/app/features/plugins/admin/components/GetStartedWithPlugin/GetStartedWithDataSource.tsx
@@ -30,8 +30,7 @@ export function GetStartedWithDataSource({ plugin }: Props): React.ReactElement
return null;
}
- const disabledButton =
- config.featureToggles.managedPluginsInstall && config.pluginAdminExternalManageEnabled && !plugin.isFullyInstalled;
+ const disabledButton = config.pluginAdminExternalManageEnabled && !plugin.isFullyInstalled;
return (
- );
-}
-
-describe('ExternallyManagedButton', () => {
- let oldAngularSupportEnabled = config.angularSupportEnabled;
- afterAll(() => {
- config.angularSupportEnabled = oldAngularSupportEnabled;
- });
-
- describe.each([{ angularSupportEnabled: true }, { angularSupportEnabled: false }])(
- 'angular support is $angularSupportEnabled',
- ({ angularSupportEnabled }) => {
- it.each([
- { angularDetected: true, expectEnabled: angularSupportEnabled },
- { angularDetected: false, expectEnabled: true },
- ])('angular detected is $angularDetected', ({ angularDetected, expectEnabled }) => {
- setup({ angularSupportEnabled, angularDetected });
-
- const el = screen.getByRole('link');
- expect(el).toHaveTextContent(/install/i);
- expect(el).toBeVisible();
- const linkDisabledStyle = 'pointer-events: none';
- if (expectEnabled) {
- expect(el).not.toHaveStyle(linkDisabledStyle);
- } else {
- expect(el).toHaveStyle(linkDisabledStyle);
- }
- });
- }
- );
-});
diff --git a/public/app/features/plugins/admin/components/InstallControls/ExternallyManagedButton.tsx b/public/app/features/plugins/admin/components/InstallControls/ExternallyManagedButton.tsx
deleted file mode 100644
index 62fe1d8aaec..00000000000
--- a/public/app/features/plugins/admin/components/InstallControls/ExternallyManagedButton.tsx
+++ /dev/null
@@ -1,47 +0,0 @@
-import { config } from '@grafana/runtime';
-import { LinkButton, Stack } from '@grafana/ui';
-
-import { getExternalManageLink } from '../../helpers';
-import { PluginStatus } from '../../types';
-
-type ExternallyManagedButtonProps = {
- pluginId: string;
- pluginStatus: PluginStatus;
- angularDetected?: boolean;
-};
-
-export function ExternallyManagedButton({ pluginId, pluginStatus, angularDetected }: ExternallyManagedButtonProps) {
- const externalManageLink = `${getExternalManageLink(pluginId)}/?tab=installation`;
-
- if (pluginStatus === PluginStatus.UPDATE) {
- return (
-
-
- Update via grafana.com
-
-
- Uninstall via grafana.com
-
-
- );
- }
-
- if (pluginStatus === PluginStatus.UNINSTALL) {
- return (
-
- Uninstall via grafana.com
-
- );
- }
-
- return (
-
- Install via grafana.com
-
- );
-}
diff --git a/public/app/features/plugins/admin/components/InstallControls/InstallControlsButton.test.tsx b/public/app/features/plugins/admin/components/InstallControls/InstallControlsButton.test.tsx
index 554b9824193..cbe9ffe4904 100644
--- a/public/app/features/plugins/admin/components/InstallControls/InstallControlsButton.test.tsx
+++ b/public/app/features/plugins/admin/components/InstallControls/InstallControlsButton.test.tsx
@@ -124,16 +124,13 @@ describe('InstallControlsButton', () => {
});
describe('update button on managed instance', () => {
- const oldFeatureTogglesManagedPluginsInstall = config.featureToggles.managedPluginsInstall;
const oldPluginAdminExternalManageEnabled = config.pluginAdminExternalManageEnabled;
beforeAll(() => {
- config.featureToggles.managedPluginsInstall = true;
config.pluginAdminExternalManageEnabled = true;
});
afterAll(() => {
- config.featureToggles.managedPluginsInstall = oldFeatureTogglesManagedPluginsInstall;
config.pluginAdminExternalManageEnabled = oldPluginAdminExternalManageEnabled;
});
@@ -199,16 +196,13 @@ describe('InstallControlsButton', () => {
});
describe('uninstall button on managed instance', () => {
- const oldFeatureTogglesManagedPluginsInstall = config.featureToggles.managedPluginsInstall;
const oldPluginAdminExternalManageEnabled = config.pluginAdminExternalManageEnabled;
beforeAll(() => {
- config.featureToggles.managedPluginsInstall = true;
config.pluginAdminExternalManageEnabled = true;
});
afterAll(() => {
- config.featureToggles.managedPluginsInstall = oldFeatureTogglesManagedPluginsInstall;
config.pluginAdminExternalManageEnabled = oldPluginAdminExternalManageEnabled;
});
diff --git a/public/app/features/plugins/admin/components/InstallControls/InstallControlsButton.tsx b/public/app/features/plugins/admin/components/InstallControls/InstallControlsButton.tsx
index 1ebcfddec13..6af5c5904ad 100644
--- a/public/app/features/plugins/admin/components/InstallControls/InstallControlsButton.tsx
+++ b/public/app/features/plugins/admin/components/InstallControls/InstallControlsButton.tsx
@@ -5,7 +5,6 @@ import { AppEvents } from '@grafana/data';
import { config, locationService, reportInteraction } from '@grafana/runtime';
import { Button, ConfirmModal, Stack } from '@grafana/ui';
import appEvents from 'app/core/app_events';
-import configCore from 'app/core/config';
import { useQueryParams } from 'app/core/hooks/useQueryParams';
import { removePluginFromNavTree } from 'app/core/reducers/navBarTree';
import { useDispatch } from 'app/types';
@@ -72,7 +71,7 @@ export function InstallControlsButton({
const result = await install(plugin.id, latestCompatibleVersion?.version);
if (!errorInstalling && !('error' in result)) {
let successMessage = `Installed ${plugin.name}`;
- if (config.pluginAdminExternalManageEnabled && configCore.featureToggles.managedPluginsInstall) {
+ if (config.pluginAdminExternalManageEnabled) {
successMessage = 'Install requested, this may take a few minutes.';
}
@@ -98,7 +97,7 @@ export function InstallControlsButton({
}
let successMessage = `Uninstalled ${plugin.name}`;
- if (config.pluginAdminExternalManageEnabled && configCore.featureToggles.managedPluginsInstall) {
+ if (config.pluginAdminExternalManageEnabled) {
successMessage = 'Uninstall requested, this may take a few minutes.';
}
@@ -154,10 +153,7 @@ export function InstallControlsButton({
}
if (pluginStatus === PluginStatus.UPDATE) {
- const disableUpdate =
- config.pluginAdminExternalManageEnabled && configCore.featureToggles.managedPluginsInstall
- ? plugin.isUpdatingFromInstance
- : isInstalling;
+ const disableUpdate = config.pluginAdminExternalManageEnabled ? plugin.isUpdatingFromInstance : isInstalling;
return (
@@ -181,7 +177,7 @@ export function InstallControlsButton({
}
function shouldDisableUninstall(isUninstalling: boolean, plugin: CatalogPlugin) {
- if (config.pluginAdminExternalManageEnabled && config.featureToggles.managedPluginsInstall) {
+ if (config.pluginAdminExternalManageEnabled) {
return plugin.isUninstallingFromInstance || !plugin.isFullyInstalled || plugin.isUpdatingFromInstance;
}
diff --git a/public/app/features/plugins/admin/components/PluginActions.tsx b/public/app/features/plugins/admin/components/PluginActions.tsx
index ab81073ceda..1e993c75856 100644
--- a/public/app/features/plugins/admin/components/PluginActions.tsx
+++ b/public/app/features/plugins/admin/components/PluginActions.tsx
@@ -2,13 +2,10 @@ import { css } from '@emotion/css';
import { useState } from 'react';
import { GrafanaTheme2 } from '@grafana/data';
-import { config } from '@grafana/runtime';
import { Icon, Stack, useStyles2 } from '@grafana/ui';
-import configCore from 'app/core/config';
import { GetStartedWithPlugin } from '../components/GetStartedWithPlugin';
import { InstallControlsButton } from '../components/InstallControls';
-import { ExternallyManagedButton } from '../components/InstallControls/ExternallyManagedButton';
import { getLatestCompatibleVersion, hasInstallControlWarning, isInstallControlsEnabled } from '../helpers';
import { useIsRemotePluginsAvailable } from '../state/hooks';
import { CatalogPlugin, PluginStatus } from '../types';
@@ -28,7 +25,6 @@ export const PluginActions = ({ plugin }: Props) => {
}
const hasInstallWarning = hasInstallControlWarning(plugin, isRemotePluginsAvailable, latestCompatibleVersion);
- const isExternallyManaged = config.pluginAdminExternalManageEnabled;
const pluginStatus = plugin.isInstalled
? plugin.hasUpdate
? PluginStatus.UPDATE
@@ -41,23 +37,13 @@ export const PluginActions = ({ plugin }: Props) => {
{!isInstallControlsDisabled && (
- <>
- {isExternallyManaged && !hasInstallWarning && !configCore.featureToggles.managedPluginsInstall ? (
-
- ) : (
-
- )}
- >
+
)}
diff --git a/public/app/features/plugins/admin/components/UpdateAllModal.tsx b/public/app/features/plugins/admin/components/UpdateAllModal.tsx
index 5006d8096b8..f12113499b9 100644
--- a/public/app/features/plugins/admin/components/UpdateAllModal.tsx
+++ b/public/app/features/plugins/admin/components/UpdateAllModal.tsx
@@ -97,7 +97,7 @@ export const UpdateAllModal = ({ isOpen, onDismiss, isLoading, plugins }: Props)
setInProgress(true);
// in cloud the requests need to be sync
- if (config.pluginAdminExternalManageEnabled && config.featureToggles.managedPluginsInstall) {
+ if (config.pluginAdminExternalManageEnabled) {
for (let plugin of plugins) {
if (selectedPlugins?.has(plugin.id)) {
await install(plugin.id, plugin.latestVersion, true);
diff --git a/public/app/features/plugins/admin/components/UpdateAllModalBody.tsx b/public/app/features/plugins/admin/components/UpdateAllModalBody.tsx
index 20214900d3a..8d793ae10ad 100644
--- a/public/app/features/plugins/admin/components/UpdateAllModalBody.tsx
+++ b/public/app/features/plugins/admin/components/UpdateAllModalBody.tsx
@@ -194,7 +194,7 @@ export const UpdateModalBody = ({
{`${errorMap.size} ${t('plugins.catalog.update-all.error-status-text', 'failed - see error messages')}`}
)}
- {config.pluginAdminExternalManageEnabled && config.featureToggles.managedPluginsInstall && (
+ {config.pluginAdminExternalManageEnabled && (