@grafana/plugin-compat 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/README.md +5 -4
- package/dist/cjs/apps.cjs +26 -0
- package/dist/cjs/apps.cjs.map +1 -1
- package/dist/esm/apps.mjs +27 -2
- package/dist/esm/apps.mjs.map +1 -1
- package/dist/types/apps.d.ts +2 -0
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
# 0.7.0 (2026-11-03)
|
|
2
|
+
|
|
3
|
+
Add `getAppPluginHealth` function.
|
|
4
|
+
|
|
1
5
|
# 0.6.0 (2026-10-22)
|
|
2
6
|
|
|
3
7
|
Add `useDataSourceInstanceList` and the `GetDataSourceInstanceListFilters` type to `@grafana/plugin-compat/datasources`. The hook uses the host's stable `@grafana/runtime` hook when available, then `@grafana/runtime/unstable`, then fetches through `getDataSourceInstanceList`, so it works on hosts without the async data source hooks.
|
package/README.md
CHANGED
|
@@ -21,9 +21,7 @@ Ships both ESM and CommonJS builds, so it works with `import` and `require`.
|
|
|
21
21
|
`useDefaultDataSourceInstanceListItem` hook, `useDataSourceInstanceList`, and
|
|
22
22
|
`registerRuntimeDataSourceInstance`. Replacements for `getDataSourceSrv()`
|
|
23
23
|
methods.
|
|
24
|
-
- `@grafana/plugin-compat/apps` — `getPluginSettings`,
|
|
25
|
-
`updateAppPluginSettings`. Replacements for the `getBackendSrv()`
|
|
26
|
-
plugin-settings endpoints.
|
|
24
|
+
- `@grafana/plugin-compat/apps` — `getPluginSettings`, `updateAppPluginSettings`, `getAppPluginHealth`. Replacements for the `getBackendSrv()` plugin-settings and app-health endpoints.
|
|
27
25
|
|
|
28
26
|
## Usage
|
|
29
27
|
|
|
@@ -35,10 +33,11 @@ import {
|
|
|
35
33
|
registerRuntimeDataSourceInstance,
|
|
36
34
|
useDefaultDataSourceInstanceListItem,
|
|
37
35
|
} from '@grafana/plugin-compat/datasources';
|
|
38
|
-
import { getPluginSettings } from '@grafana/plugin-compat/apps';
|
|
36
|
+
import { getAppPluginHealth, getPluginSettings } from '@grafana/plugin-compat/apps';
|
|
39
37
|
|
|
40
38
|
const ds = await getDataSourceInstance({ uid: 'my-uid' });
|
|
41
39
|
const settings = await getPluginSettings('my-plugin-id');
|
|
40
|
+
const health = await getAppPluginHealth('my-plugin-id');
|
|
42
41
|
|
|
43
42
|
// `undefined` unless the org default is one of the items.
|
|
44
43
|
const items = await getDataSourceInstanceList({ type: 'prometheus' });
|
|
@@ -50,5 +49,7 @@ const { isLoading, error, item } = useDefaultDataSourceInstanceListItem(items);
|
|
|
50
49
|
registerRuntimeDataSourceInstance({ dataSource: new MyRuntimeDataSource('my-plugin-id', 'my-uid') });
|
|
51
50
|
```
|
|
52
51
|
|
|
52
|
+
`getAppPluginHealth` resolves with the health result for both healthy and unhealthy responses. Inspect `health?.status`; authentication, transport, and other non-health failures reject. The k8s path defaults an omitted message to an empty string; legacy health responses are returned unchanged. Known non-app plugins return `undefined` when k8s metadata is available.
|
|
53
|
+
|
|
53
54
|
On hosts with the async APIs, a data source registered this way is not visible
|
|
54
55
|
to `getDataSourceSrv()`. Look it up with `getDataSourceInstance` instead.
|
package/dist/cjs/apps.cjs
CHANGED
|
@@ -34,7 +34,33 @@ async function backwardsCompatibleUpdatePluginSettings(pluginId, data) {
|
|
|
34
34
|
await runtime.getBackendSrv().post(`/api/plugins/${pluginId}/settings`, data, { validatePath: true });
|
|
35
35
|
return backwardsCompatibleGetPluginSettings(pluginId);
|
|
36
36
|
}
|
|
37
|
+
async function getAppPluginHealth(pluginId, showErrorAlert = false, apiVersion) {
|
|
38
|
+
if (typeof runtime.getAppPluginHealth === "function") {
|
|
39
|
+
return runtime.getAppPluginHealth(pluginId, showErrorAlert, apiVersion);
|
|
40
|
+
}
|
|
41
|
+
return backwardsCompatibleGetAppPluginHealth(pluginId, showErrorAlert);
|
|
42
|
+
}
|
|
43
|
+
function isLegacyUnhealthyHealthCheckError(err) {
|
|
44
|
+
var _a, _b;
|
|
45
|
+
return runtime.isFetchError(err) && err.status === 400 && (((_a = err.data) == null ? void 0 : _a.status) === runtime.HealthStatus.Error || ((_b = err.data) == null ? void 0 : _b.status) === runtime.HealthStatus.Unknown);
|
|
46
|
+
}
|
|
47
|
+
async function backwardsCompatibleGetAppPluginHealth(pluginId, showErrorAlert = false) {
|
|
48
|
+
return runtime.getBackendSrv().get(`/api/plugins/${pluginId}/health`, void 0, void 0, {
|
|
49
|
+
showErrorAlert,
|
|
50
|
+
validatePath: true
|
|
51
|
+
}).catch((err) => {
|
|
52
|
+
if (runtime.isFetchError(err) && (err.status === 401 || err.status === 403)) {
|
|
53
|
+
err.isHandled = true;
|
|
54
|
+
return Promise.reject(err);
|
|
55
|
+
}
|
|
56
|
+
if (isLegacyUnhealthyHealthCheckError(err)) {
|
|
57
|
+
return err.data;
|
|
58
|
+
}
|
|
59
|
+
return Promise.reject(err);
|
|
60
|
+
});
|
|
61
|
+
}
|
|
37
62
|
|
|
63
|
+
exports.getAppPluginHealth = getAppPluginHealth;
|
|
38
64
|
exports.getPluginSettings = getPluginSettings;
|
|
39
65
|
exports.updateAppPluginSettings = updateAppPluginSettings;
|
|
40
66
|
//# sourceMappingURL=apps.cjs.map
|
package/dist/cjs/apps.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apps.cjs","sources":["../../src/apps.ts"],"sourcesContent":["import { type PluginMeta } from '@grafana/data';\nimport {\n getBackendSrv,\n getPluginSettings as stableGetPluginSettings,\n updateAppPluginSettings as stableUpdateAppPluginSettings,\n} from '@grafana/runtime';\nimport {\n getPluginSettings as unstableGetPluginSettings,\n updateAppPluginSettings as unstableUpdateAppPluginSettings,\n} from '@grafana/runtime/unstable';\n\nexport async function getPluginSettings(pluginId: string, showErrorAlert = false): Promise<PluginMeta> {\n if (typeof stableGetPluginSettings === 'function') {\n return stableGetPluginSettings(pluginId, showErrorAlert);\n }\n\n if (typeof unstableGetPluginSettings === 'function') {\n return unstableGetPluginSettings(pluginId, showErrorAlert);\n }\n\n return backwardsCompatibleGetPluginSettings(pluginId, showErrorAlert);\n}\n\nasync function backwardsCompatibleGetPluginSettings(pluginId: string, showErrorAlert = false): Promise<PluginMeta> {\n return getBackendSrv().get(`/api/plugins/${pluginId}/settings`, undefined, undefined, {\n showErrorAlert,\n validatePath: true,\n });\n}\n\nexport async function updateAppPluginSettings(pluginId: string, data: Partial<PluginMeta>): Promise<PluginMeta> {\n if (typeof stableUpdateAppPluginSettings === 'function') {\n return stableUpdateAppPluginSettings(pluginId, data);\n }\n\n if (typeof unstableUpdateAppPluginSettings === 'function') {\n return unstableUpdateAppPluginSettings(pluginId, data);\n }\n\n return backwardsCompatibleUpdatePluginSettings(pluginId, data);\n}\n\nasync function backwardsCompatibleUpdatePluginSettings(\n pluginId: string,\n data: Partial<PluginMeta>\n): Promise<PluginMeta> {\n await getBackendSrv().post(`/api/plugins/${pluginId}/settings`, data, { validatePath: true });\n return backwardsCompatibleGetPluginSettings(pluginId);\n}\n"],"names":["stableGetPluginSettings","unstableGetPluginSettings","getBackendSrv","stableUpdateAppPluginSettings","unstableUpdateAppPluginSettings"],"mappings":";;;;;;;;
|
|
1
|
+
{"version":3,"file":"apps.cjs","sources":["../../src/apps.ts"],"sourcesContent":["import { type PluginMeta } from '@grafana/data';\nimport {\n getBackendSrv,\n getPluginSettings as stableGetPluginSettings,\n getAppPluginHealth as stableGetAppPluginHealth,\n updateAppPluginSettings as stableUpdateAppPluginSettings,\n type HealthCheckResult,\n HealthStatus,\n isFetchError,\n} from '@grafana/runtime';\nimport {\n getPluginSettings as unstableGetPluginSettings,\n updateAppPluginSettings as unstableUpdateAppPluginSettings,\n} from '@grafana/runtime/unstable';\n\nexport async function getPluginSettings(pluginId: string, showErrorAlert = false): Promise<PluginMeta> {\n if (typeof stableGetPluginSettings === 'function') {\n return stableGetPluginSettings(pluginId, showErrorAlert);\n }\n\n if (typeof unstableGetPluginSettings === 'function') {\n return unstableGetPluginSettings(pluginId, showErrorAlert);\n }\n\n return backwardsCompatibleGetPluginSettings(pluginId, showErrorAlert);\n}\n\nasync function backwardsCompatibleGetPluginSettings(pluginId: string, showErrorAlert = false): Promise<PluginMeta> {\n return getBackendSrv().get(`/api/plugins/${pluginId}/settings`, undefined, undefined, {\n showErrorAlert,\n validatePath: true,\n });\n}\n\nexport async function updateAppPluginSettings(pluginId: string, data: Partial<PluginMeta>): Promise<PluginMeta> {\n if (typeof stableUpdateAppPluginSettings === 'function') {\n return stableUpdateAppPluginSettings(pluginId, data);\n }\n\n if (typeof unstableUpdateAppPluginSettings === 'function') {\n return unstableUpdateAppPluginSettings(pluginId, data);\n }\n\n return backwardsCompatibleUpdatePluginSettings(pluginId, data);\n}\n\nasync function backwardsCompatibleUpdatePluginSettings(\n pluginId: string,\n data: Partial<PluginMeta>\n): Promise<PluginMeta> {\n await getBackendSrv().post(`/api/plugins/${pluginId}/settings`, data, { validatePath: true });\n return backwardsCompatibleGetPluginSettings(pluginId);\n}\n\nexport async function getAppPluginHealth(\n pluginId: string,\n showErrorAlert = false,\n apiVersion?: string\n): Promise<HealthCheckResult | undefined> {\n if (typeof stableGetAppPluginHealth === 'function') {\n return stableGetAppPluginHealth(pluginId, showErrorAlert, apiVersion);\n }\n\n return backwardsCompatibleGetAppPluginHealth(pluginId, showErrorAlert);\n}\n\nfunction isLegacyUnhealthyHealthCheckError(err: unknown): boolean {\n return (\n isFetchError<HealthCheckResult>(err) &&\n err.status === 400 &&\n (err.data?.status === HealthStatus.Error || err.data?.status === HealthStatus.Unknown)\n );\n}\n\nasync function backwardsCompatibleGetAppPluginHealth(\n pluginId: string,\n showErrorAlert = false\n): Promise<HealthCheckResult> {\n return getBackendSrv()\n .get<HealthCheckResult>(`/api/plugins/${pluginId}/health`, undefined, undefined, {\n showErrorAlert,\n validatePath: true,\n })\n .catch((err) => {\n if (isFetchError(err) && (err.status === 401 || err.status === 403)) {\n err.isHandled = true;\n return Promise.reject(err);\n }\n\n if (isLegacyUnhealthyHealthCheckError(err)) {\n return err.data;\n }\n\n return Promise.reject(err);\n });\n}\n"],"names":["stableGetPluginSettings","unstableGetPluginSettings","getBackendSrv","stableUpdateAppPluginSettings","unstableUpdateAppPluginSettings","stableGetAppPluginHealth","isFetchError","HealthStatus"],"mappings":"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"}
|
package/dist/esm/apps.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getPluginSettings as getPluginSettings$1, getBackendSrv, updateAppPluginSettings as updateAppPluginSettings$1 } from '@grafana/runtime';
|
|
1
|
+
import { getPluginSettings as getPluginSettings$1, getBackendSrv, updateAppPluginSettings as updateAppPluginSettings$1, getAppPluginHealth as getAppPluginHealth$1, isFetchError, HealthStatus } from '@grafana/runtime';
|
|
2
2
|
import { getPluginSettings as getPluginSettings$2, updateAppPluginSettings as updateAppPluginSettings$2 } from '@grafana/runtime/unstable';
|
|
3
3
|
|
|
4
4
|
"use strict";
|
|
@@ -30,6 +30,31 @@ async function backwardsCompatibleUpdatePluginSettings(pluginId, data) {
|
|
|
30
30
|
await getBackendSrv().post(`/api/plugins/${pluginId}/settings`, data, { validatePath: true });
|
|
31
31
|
return backwardsCompatibleGetPluginSettings(pluginId);
|
|
32
32
|
}
|
|
33
|
+
async function getAppPluginHealth(pluginId, showErrorAlert = false, apiVersion) {
|
|
34
|
+
if (typeof getAppPluginHealth$1 === "function") {
|
|
35
|
+
return getAppPluginHealth$1(pluginId, showErrorAlert, apiVersion);
|
|
36
|
+
}
|
|
37
|
+
return backwardsCompatibleGetAppPluginHealth(pluginId, showErrorAlert);
|
|
38
|
+
}
|
|
39
|
+
function isLegacyUnhealthyHealthCheckError(err) {
|
|
40
|
+
var _a, _b;
|
|
41
|
+
return isFetchError(err) && err.status === 400 && (((_a = err.data) == null ? void 0 : _a.status) === HealthStatus.Error || ((_b = err.data) == null ? void 0 : _b.status) === HealthStatus.Unknown);
|
|
42
|
+
}
|
|
43
|
+
async function backwardsCompatibleGetAppPluginHealth(pluginId, showErrorAlert = false) {
|
|
44
|
+
return getBackendSrv().get(`/api/plugins/${pluginId}/health`, void 0, void 0, {
|
|
45
|
+
showErrorAlert,
|
|
46
|
+
validatePath: true
|
|
47
|
+
}).catch((err) => {
|
|
48
|
+
if (isFetchError(err) && (err.status === 401 || err.status === 403)) {
|
|
49
|
+
err.isHandled = true;
|
|
50
|
+
return Promise.reject(err);
|
|
51
|
+
}
|
|
52
|
+
if (isLegacyUnhealthyHealthCheckError(err)) {
|
|
53
|
+
return err.data;
|
|
54
|
+
}
|
|
55
|
+
return Promise.reject(err);
|
|
56
|
+
});
|
|
57
|
+
}
|
|
33
58
|
|
|
34
|
-
export { getPluginSettings, updateAppPluginSettings };
|
|
59
|
+
export { getAppPluginHealth, getPluginSettings, updateAppPluginSettings };
|
|
35
60
|
//# sourceMappingURL=apps.mjs.map
|
package/dist/esm/apps.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apps.mjs","sources":["../../src/apps.ts"],"sourcesContent":["import { type PluginMeta } from '@grafana/data';\nimport {\n getBackendSrv,\n getPluginSettings as stableGetPluginSettings,\n updateAppPluginSettings as stableUpdateAppPluginSettings,\n} from '@grafana/runtime';\nimport {\n getPluginSettings as unstableGetPluginSettings,\n updateAppPluginSettings as unstableUpdateAppPluginSettings,\n} from '@grafana/runtime/unstable';\n\nexport async function getPluginSettings(pluginId: string, showErrorAlert = false): Promise<PluginMeta> {\n if (typeof stableGetPluginSettings === 'function') {\n return stableGetPluginSettings(pluginId, showErrorAlert);\n }\n\n if (typeof unstableGetPluginSettings === 'function') {\n return unstableGetPluginSettings(pluginId, showErrorAlert);\n }\n\n return backwardsCompatibleGetPluginSettings(pluginId, showErrorAlert);\n}\n\nasync function backwardsCompatibleGetPluginSettings(pluginId: string, showErrorAlert = false): Promise<PluginMeta> {\n return getBackendSrv().get(`/api/plugins/${pluginId}/settings`, undefined, undefined, {\n showErrorAlert,\n validatePath: true,\n });\n}\n\nexport async function updateAppPluginSettings(pluginId: string, data: Partial<PluginMeta>): Promise<PluginMeta> {\n if (typeof stableUpdateAppPluginSettings === 'function') {\n return stableUpdateAppPluginSettings(pluginId, data);\n }\n\n if (typeof unstableUpdateAppPluginSettings === 'function') {\n return unstableUpdateAppPluginSettings(pluginId, data);\n }\n\n return backwardsCompatibleUpdatePluginSettings(pluginId, data);\n}\n\nasync function backwardsCompatibleUpdatePluginSettings(\n pluginId: string,\n data: Partial<PluginMeta>\n): Promise<PluginMeta> {\n await getBackendSrv().post(`/api/plugins/${pluginId}/settings`, data, { validatePath: true });\n return backwardsCompatibleGetPluginSettings(pluginId);\n}\n"],"names":["stableGetPluginSettings","unstableGetPluginSettings","stableUpdateAppPluginSettings","unstableUpdateAppPluginSettings"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"apps.mjs","sources":["../../src/apps.ts"],"sourcesContent":["import { type PluginMeta } from '@grafana/data';\nimport {\n getBackendSrv,\n getPluginSettings as stableGetPluginSettings,\n getAppPluginHealth as stableGetAppPluginHealth,\n updateAppPluginSettings as stableUpdateAppPluginSettings,\n type HealthCheckResult,\n HealthStatus,\n isFetchError,\n} from '@grafana/runtime';\nimport {\n getPluginSettings as unstableGetPluginSettings,\n updateAppPluginSettings as unstableUpdateAppPluginSettings,\n} from '@grafana/runtime/unstable';\n\nexport async function getPluginSettings(pluginId: string, showErrorAlert = false): Promise<PluginMeta> {\n if (typeof stableGetPluginSettings === 'function') {\n return stableGetPluginSettings(pluginId, showErrorAlert);\n }\n\n if (typeof unstableGetPluginSettings === 'function') {\n return unstableGetPluginSettings(pluginId, showErrorAlert);\n }\n\n return backwardsCompatibleGetPluginSettings(pluginId, showErrorAlert);\n}\n\nasync function backwardsCompatibleGetPluginSettings(pluginId: string, showErrorAlert = false): Promise<PluginMeta> {\n return getBackendSrv().get(`/api/plugins/${pluginId}/settings`, undefined, undefined, {\n showErrorAlert,\n validatePath: true,\n });\n}\n\nexport async function updateAppPluginSettings(pluginId: string, data: Partial<PluginMeta>): Promise<PluginMeta> {\n if (typeof stableUpdateAppPluginSettings === 'function') {\n return stableUpdateAppPluginSettings(pluginId, data);\n }\n\n if (typeof unstableUpdateAppPluginSettings === 'function') {\n return unstableUpdateAppPluginSettings(pluginId, data);\n }\n\n return backwardsCompatibleUpdatePluginSettings(pluginId, data);\n}\n\nasync function backwardsCompatibleUpdatePluginSettings(\n pluginId: string,\n data: Partial<PluginMeta>\n): Promise<PluginMeta> {\n await getBackendSrv().post(`/api/plugins/${pluginId}/settings`, data, { validatePath: true });\n return backwardsCompatibleGetPluginSettings(pluginId);\n}\n\nexport async function getAppPluginHealth(\n pluginId: string,\n showErrorAlert = false,\n apiVersion?: string\n): Promise<HealthCheckResult | undefined> {\n if (typeof stableGetAppPluginHealth === 'function') {\n return stableGetAppPluginHealth(pluginId, showErrorAlert, apiVersion);\n }\n\n return backwardsCompatibleGetAppPluginHealth(pluginId, showErrorAlert);\n}\n\nfunction isLegacyUnhealthyHealthCheckError(err: unknown): boolean {\n return (\n isFetchError<HealthCheckResult>(err) &&\n err.status === 400 &&\n (err.data?.status === HealthStatus.Error || err.data?.status === HealthStatus.Unknown)\n );\n}\n\nasync function backwardsCompatibleGetAppPluginHealth(\n pluginId: string,\n showErrorAlert = false\n): Promise<HealthCheckResult> {\n return getBackendSrv()\n .get<HealthCheckResult>(`/api/plugins/${pluginId}/health`, undefined, undefined, {\n showErrorAlert,\n validatePath: true,\n })\n .catch((err) => {\n if (isFetchError(err) && (err.status === 401 || err.status === 403)) {\n err.isHandled = true;\n return Promise.reject(err);\n }\n\n if (isLegacyUnhealthyHealthCheckError(err)) {\n return err.data;\n }\n\n return Promise.reject(err);\n });\n}\n"],"names":["stableGetPluginSettings","unstableGetPluginSettings","stableUpdateAppPluginSettings","unstableUpdateAppPluginSettings","stableGetAppPluginHealth"],"mappings":"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"}
|
package/dist/types/apps.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import { type PluginMeta } from '@grafana/data';
|
|
2
|
+
import { type HealthCheckResult } from '@grafana/runtime';
|
|
2
3
|
export declare function getPluginSettings(pluginId: string, showErrorAlert?: boolean): Promise<PluginMeta>;
|
|
3
4
|
export declare function updateAppPluginSettings(pluginId: string, data: Partial<PluginMeta>): Promise<PluginMeta>;
|
|
5
|
+
export declare function getAppPluginHealth(pluginId: string, showErrorAlert?: boolean, apiVersion?: string): Promise<HealthCheckResult | undefined>;
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"author": "Grafana Labs",
|
|
3
3
|
"license": "Apache-2.0",
|
|
4
4
|
"name": "@grafana/plugin-compat",
|
|
5
|
-
"version": "0.
|
|
5
|
+
"version": "0.7.0",
|
|
6
6
|
"description": "Compatibility shims that let Grafana plugins adopt new Grafana host APIs across a range of host versions",
|
|
7
7
|
"keywords": [
|
|
8
8
|
"grafana",
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
"@grafana/schema": ">=12.0.0",
|
|
65
65
|
"react": ">=18"
|
|
66
66
|
},
|
|
67
|
-
"gitHead": "
|
|
67
|
+
"gitHead": "16d2470a4ef8f86171fd6e24dbffb706a8451292",
|
|
68
68
|
"scripts": {
|
|
69
69
|
"build": "tsc -p ./tsconfig.build.json && rollup -c rollup.config.ts --configPlugin esbuild",
|
|
70
70
|
"bundle": "rollup -c rollup.config.ts --configPlugin esbuild",
|