From 134ab243b2a84728a07982f79badbe86f30a4261 Mon Sep 17 00:00:00 2001 From: Derek Stotz Date: Thu, 15 Feb 2024 08:44:21 -0600 Subject: [PATCH] Remove Truenas specific request proxy --- src/utils/proxy/handlers/credentialed.js | 11 +++++---- src/widgets/truenas/proxy.js | 29 ------------------------ src/widgets/truenas/widget.js | 5 ++-- 3 files changed, 9 insertions(+), 36 deletions(-) delete mode 100644 src/widgets/truenas/proxy.js diff --git a/src/utils/proxy/handlers/credentialed.js b/src/utils/proxy/handlers/credentialed.js index 005846cf..bc087593 100644 --- a/src/utils/proxy/handlers/credentialed.js +++ b/src/utils/proxy/handlers/credentialed.js @@ -29,11 +29,15 @@ export default async function credentialedProxyHandler(req, res, map) { } else if (widget.type === "gotify") { headers["X-gotify-Key"] = `${widget.key}`; } else if ( - ["authentik", "cloudflared", "ghostfolio", "mealie", "tailscale", "truenas", "pterodactyl"].includes( - widget.type, - ) + ["authentik", "cloudflared", "ghostfolio", "mealie", "tailscale", "pterodactyl"].includes(widget.type) ) { headers.Authorization = `Bearer ${widget.key}`; + } else if (widget.type === "truenas") { + if (widget.key) { + headers.Authorization = `Bearer ${widget.key}`; + } else { + headers.Authorization = `Basic ${Buffer.from(`${widget.username}:${widget.password}`).toString("base64")}`; + } } else if (widget.type === "proxmox") { headers.Authorization = `PVEAPIToken=${widget.username}=${widget.password}`; } else if (widget.type === "proxmoxbackupserver") { @@ -70,7 +74,6 @@ export default async function credentialedProxyHandler(req, res, map) { withCredentials: true, credentials: "include", headers, - body: req.body, }); let resultData = data; diff --git a/src/widgets/truenas/proxy.js b/src/widgets/truenas/proxy.js deleted file mode 100644 index 6982f972..00000000 --- a/src/widgets/truenas/proxy.js +++ /dev/null @@ -1,29 +0,0 @@ -import getServiceWidget from "utils/config/service-helpers"; -import createLogger from "utils/logger"; -import genericProxyHandler from "utils/proxy/handlers/generic"; -import credentialedProxyHandler from "utils/proxy/handlers/credentialed"; - -const logger = createLogger("truenasProxyHandler"); - -export default async function truenasProxyHandler(req, res, map) { - const { group, service } = req.query; - - if (group && service) { - const widgetOpts = await getServiceWidget(group, service); - let handler; - if (widgetOpts.username && widgetOpts.password) { - handler = genericProxyHandler; - } else if (widgetOpts.key) { - handler = credentialedProxyHandler; - } - - if (handler) { - return handler(req, res, map); - } - - logger.error("Error getting data from Truenas: Username / password or API key required"); - return res.status(500).json({ error: "Username / password or API key required" }); - } - - return res.status(500).json({ error: "Error parsing widget request" }); -} diff --git a/src/widgets/truenas/widget.js b/src/widgets/truenas/widget.js index 1331d98b..7435b6e1 100644 --- a/src/widgets/truenas/widget.js +++ b/src/widgets/truenas/widget.js @@ -1,10 +1,9 @@ -import truenasProxyHandler from "./proxy"; - +import credentialedProxyHandler from "utils/proxy/handlers/credentialed"; import { asJson, jsonArrayFilter } from "utils/proxy/api-helpers"; const widget = { api: "{url}/api/v2.0/{endpoint}", - proxyHandler: truenasProxyHandler, + proxyHandler: credentialedProxyHandler, mappings: { alerts: {