Plugins: Fetch instance provisioned plugins in cloud, to check full installation (#83784)

This commit is contained in:
Hugo Kiyodi Oshiro
2024-03-05 16:30:14 +01:00
committed by GitHub
parent 7b4925ea37
commit 7f970d4887
5 changed files with 84 additions and 7 deletions

View File

@@ -4,7 +4,15 @@ import { accessControlQueryParam } from 'app/core/utils/accessControl';
import { API_ROOT, GCOM_API_ROOT, INSTANCE_API_ROOT } from './constants';
import { isLocalPluginVisibleByConfig, isRemotePluginVisibleByConfig } from './helpers';
import { LocalPlugin, RemotePlugin, CatalogPluginDetails, Version, PluginVersion, InstancePlugin } from './types';
import {
LocalPlugin,
RemotePlugin,
CatalogPluginDetails,
Version,
PluginVersion,
InstancePlugin,
ProvisionedPlugin,
} from './types';
export async function getPluginDetails(id: string): Promise<CatalogPluginDetails> {
const remote = await getRemotePlugin(id);
@@ -125,6 +133,14 @@ export async function getInstancePlugins(): Promise<InstancePlugin[]> {
return instancePlugins;
}
export async function getProvisionedPlugins(): Promise<ProvisionedPlugin[]> {
const { items: provisionedPlugins }: { items: Array<{ type: string }> } = await getBackendSrv().get(
`${INSTANCE_API_ROOT}/provisioned-plugins`
);
return provisionedPlugins.map((plugin) => ({ slug: plugin.type }));
}
export async function installPlugin(id: string) {
// This will install the latest compatible version based on the logic
// on the backend.