Setup for custom proxy

This commit is contained in:
shamoon
2026-01-03 12:55:53 -08:00
parent e892432b72
commit 2bc5e0de62
2 changed files with 8 additions and 4 deletions

View File

@@ -12,8 +12,8 @@ export default function Component({ service }) {
const { data: alertData, error: alertError } = useWidgetAPI(widget, "alerts");
const { data: statusData, error: statusError } = useWidgetAPI(widget, "status");
const { data: poolsData, error: poolsError } = useWidgetAPI(widget, widget?.enablePools ? "pools" : null);
const { data: datasetData, error: datasetError } = useWidgetAPI(widget, widget?.enablePools ? "dataset" : null);
const { data: poolsData, error: poolsError } = useWidgetAPI(widget, widget?.enablePools ? "pools" : "");
const { data: datasetData, error: datasetError } = useWidgetAPI(widget, widget?.enablePools ? "dataset" : "");
if (alertError || statusError || poolsError) {
const finalError = alertError ?? statusError ?? poolsError ?? datasetError;

View File

@@ -1,23 +1,26 @@
import { asJson, jsonArrayFilter } from "utils/proxy/api-helpers";
import credentialedProxyHandler from "utils/proxy/handlers/credentialed";
import truenasProxyHandler from "./proxy";
const widget = {
api: "{url}/api/v2.0/{endpoint}",
proxyHandler: credentialedProxyHandler,
proxyHandler: truenasProxyHandler,
mappings: {
alerts: {
endpoint: "alert/list",
wsMethod: "alert.list",
map: (data) => ({
pending: jsonArrayFilter(data, (item) => item?.dismissed === false).length,
}),
},
status: {
endpoint: "system/info",
wsMethod: "system.info",
validate: ["loadavg", "uptime_seconds"],
},
pools: {
endpoint: "pool",
wsMethod: "pool.query",
map: (data) =>
asJson(data).map((entry) => ({
id: entry.name,
@@ -27,6 +30,7 @@ const widget = {
},
dataset: {
endpoint: "pool/dataset",
wsMethod: "pool.dataset.query",
},
},
};