Merge pull request #777 from jhollowe-forks/truenas-apikey
Change TrueNAS to use API key
This commit is contained in:
commit
e1799f17e3
2 changed files with 25 additions and 1 deletions
|
@ -30,6 +30,8 @@ export default async function credentialedProxyHandler(req, res, map) {
|
||||||
headers["X-gotify-Key"] = `${widget.key}`;
|
headers["X-gotify-Key"] = `${widget.key}`;
|
||||||
} else if (widget.type === "authentik") {
|
} else if (widget.type === "authentik") {
|
||||||
headers.Authorization = `Bearer ${widget.key}`;
|
headers.Authorization = `Bearer ${widget.key}`;
|
||||||
|
} else if (widget.type === "truenas") {
|
||||||
|
headers.Authorization = `Bearer ${widget.key}`;
|
||||||
} else if (widget.type === "proxmox") {
|
} else if (widget.type === "proxmox") {
|
||||||
headers.Authorization = `PVEAPIToken=${widget.username}=${widget.password}`;
|
headers.Authorization = `PVEAPIToken=${widget.username}=${widget.password}`;
|
||||||
} else if (widget.type === "autobrr") {
|
} else if (widget.type === "autobrr") {
|
||||||
|
|
|
@ -1,9 +1,31 @@
|
||||||
import { jsonArrayFilter } from "utils/proxy/api-helpers";
|
import { jsonArrayFilter } from "utils/proxy/api-helpers";
|
||||||
|
import credentialedProxyHandler from "utils/proxy/handlers/credentialed";
|
||||||
import genericProxyHandler from "utils/proxy/handlers/generic";
|
import genericProxyHandler from "utils/proxy/handlers/generic";
|
||||||
|
import getServiceWidget from "utils/config/service-helpers";
|
||||||
|
|
||||||
const widget = {
|
const widget = {
|
||||||
api: "{url}/api/v2.0/{endpoint}",
|
api: "{url}/api/v2.0/{endpoint}",
|
||||||
proxyHandler: genericProxyHandler,
|
proxyHandler: async (req, res, map) => { // choose proxy handler based on widget settings
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
|
return res.status(500).json({ error: "Username / password or API key required" });
|
||||||
|
}
|
||||||
|
|
||||||
|
return res.status(500).json({ error: "Error parsing widget request" });
|
||||||
|
},
|
||||||
|
|
||||||
mappings: {
|
mappings: {
|
||||||
alerts: {
|
alerts: {
|
||||||
|
|
Loading…
Add table
Reference in a new issue