From c5e26e993ef1d71f838d03d4e5c9324ab3aad840 Mon Sep 17 00:00:00 2001 From: Frank Elsinga Date: Thu, 18 Jan 2024 21:04:44 +0100 Subject: [PATCH 1/3] removed the deprecated logging functionality --- server/proxy.js | 8 ++++---- src/util.ts | 9 --------- 2 files changed, 4 insertions(+), 13 deletions(-) diff --git a/server/proxy.js b/server/proxy.js index 3f3771ab..3f1215b2 100644 --- a/server/proxy.js +++ b/server/proxy.js @@ -2,7 +2,7 @@ const { R } = require("redbean-node"); const HttpProxyAgent = require("http-proxy-agent"); const HttpsProxyAgent = require("https-proxy-agent"); const SocksProxyAgent = require("socks-proxy-agent"); -const { debug } = require("../src/util"); +const { log } = require("../src/util"); const { UptimeKumaServer } = require("./uptime-kuma-server"); const { CookieJar } = require("tough-cookie"); const { createCookieAgent } = require("http-cookie-agent/http"); @@ -110,9 +110,9 @@ class Proxy { proxyOptions.auth = `${proxy.username}:${proxy.password}`; } - debug(`Proxy Options: ${JSON.stringify(proxyOptions)}`); - debug(`HTTP Agent Options: ${JSON.stringify(httpAgentOptions)}`); - debug(`HTTPS Agent Options: ${JSON.stringify(httpsAgentOptions)}`); + log.debug("update-proxy", `Proxy Options: ${JSON.stringify(proxyOptions)}`); + log.debug("update-proxy", `HTTP Agent Options: ${JSON.stringify(httpAgentOptions)}`); + log.debug("update-proxy", `HTTPS Agent Options: ${JSON.stringify(httpsAgentOptions)}`); switch (proxy.protocol) { case "http": diff --git a/src/util.ts b/src/util.ts index b4a52f50..481410a5 100644 --- a/src/util.ts +++ b/src/util.ts @@ -154,15 +154,6 @@ export function ucfirst(str: string) { return firstLetter.toUpperCase() + str.substr(1); } -/** - * @deprecated Use log.debug (https://github.com/louislam/uptime-kuma/pull/910) - * @param msg Message to write - * @returns {void} - */ -export function debug(msg: unknown) { - log.log("", msg, "debug"); -} - class Logger { /** From d737b19e2ff865ff9a013e922a76a95d14ef9b6d Mon Sep 17 00:00:00 2001 From: Frank Elsinga Date: Thu, 18 Jan 2024 21:27:30 +0100 Subject: [PATCH 2/3] migrated all settings to use the `Settings` class --- server/auth.js | 3 +- server/check-version.js | 8 ++-- server/client.js | 4 +- server/database.js | 28 ++++++------- server/jobs/clear-old-data.js | 8 ++-- server/model/monitor.js | 9 +++-- server/notification-providers/alertnow.js | 4 +- server/notification-providers/flashduty.js | 4 +- server/notification-providers/google-chat.js | 4 +- server/notification-providers/pagerduty.js | 4 +- server/notification-providers/pagertree.js | 4 +- server/notification-providers/rocket-chat.js | 4 +- server/notification-providers/slack.js | 10 ++--- server/notification-providers/splunk.js | 4 +- server/notification-providers/stackfield.js | 4 +- server/routers/api-router.js | 3 +- server/server.js | 15 ++++--- .../cloudflared-socket-handler.js | 15 +++---- .../status-page-socket-handler.js | 7 ++-- server/util-server.js | 40 ------------------- 20 files changed, 71 insertions(+), 111 deletions(-) diff --git a/server/auth.js b/server/auth.js index 5cf96b6f..023651c5 100644 --- a/server/auth.js +++ b/server/auth.js @@ -1,7 +1,6 @@ const basicAuth = require("express-basic-auth"); const passwordHash = require("./password-hash"); const { R } = require("redbean-node"); -const { setting } = require("./util-server"); const { log } = require("../src/util"); const { loginRateLimiter, apiRateLimiter } = require("./rate-limiter"); const { Settings } = require("./settings"); @@ -139,7 +138,7 @@ exports.basicAuth = async function (req, res, next) { challenge: true, }); - const disabledAuth = await setting("disableAuth"); + const disabledAuth = await Settings.get("disableAuth"); if (!disabledAuth) { middleware(req, res, next); diff --git a/server/check-version.js b/server/check-version.js index c6d5cfb9..154ebe37 100644 --- a/server/check-version.js +++ b/server/check-version.js @@ -1,7 +1,7 @@ -const { setSetting, setting } = require("./util-server"); const axios = require("axios"); const compareVersions = require("compare-versions"); const { log } = require("../src/util"); +const { Settings } = require("./settings"); exports.version = require("../package.json").version; exports.latestVersion = null; @@ -14,7 +14,7 @@ let interval; exports.startInterval = () => { let check = async () => { - if (await setting("checkUpdate") === false) { + if (await Settings.get("checkUpdate") === false) { return; } @@ -28,7 +28,7 @@ exports.startInterval = () => { res.data.slow = "1000.0.0"; } - let checkBeta = await setting("checkBeta"); + let checkBeta = await Settings.get("checkBeta"); if (checkBeta && res.data.beta) { if (compareVersions.compare(res.data.beta, res.data.slow, ">")) { @@ -57,7 +57,7 @@ exports.startInterval = () => { * @returns {Promise} */ exports.enableCheckUpdate = async (value) => { - await setSetting("checkUpdate", value); + await Settings.set("checkUpdate", value); clearInterval(interval); diff --git a/server/client.js b/server/client.js index 260e77a7..34304dd6 100644 --- a/server/client.js +++ b/server/client.js @@ -6,8 +6,8 @@ const { R } = require("redbean-node"); const { UptimeKumaServer } = require("./uptime-kuma-server"); const server = UptimeKumaServer.getInstance(); const io = server.io; -const { setting } = require("./util-server"); const checkVersion = require("./check-version"); +const { Settings } = require("./settings"); /** * Send list of notification providers to client @@ -155,7 +155,7 @@ async function sendInfo(socket, hideVersion = false) { version, latestVersion, isContainer, - primaryBaseURL: await setting("primaryBaseURL"), + primaryBaseURL: await Settings.get("primaryBaseURL"), serverTimezone: await server.getTimezone(), serverTimezoneOffset: server.getTimezoneOffset(), }); diff --git a/server/database.js b/server/database.js index 4a12746f..468c342f 100644 --- a/server/database.js +++ b/server/database.js @@ -1,11 +1,11 @@ const fs = require("fs"); const { R } = require("redbean-node"); -const { setSetting, setting } = require("./util-server"); const { log, sleep } = require("../src/util"); const knex = require("knex"); const path = require("path"); const { EmbeddedMariaDB } = require("./embedded-mariadb"); const mysql = require("mysql2/promise"); +const { Settings } = require("./settings"); /** * Database & App Data Folder @@ -419,7 +419,7 @@ class Database { * @deprecated */ static async patchSqlite() { - let version = parseInt(await setting("database_version")); + let version = parseInt(await Settings.get("database_version")); if (! version) { version = 0; @@ -444,7 +444,7 @@ class Database { log.info("db", `Patching ${sqlFile}`); await Database.importSQLFile(sqlFile); log.info("db", `Patched ${sqlFile}`); - await setSetting("database_version", i); + await Settings.set("database_version", i); } } catch (ex) { await Database.close(); @@ -470,7 +470,7 @@ class Database { */ static async patchSqlite2() { log.debug("db", "Database Patch 2.0 Process"); - let databasePatchedFiles = await setting("databasePatchedFiles"); + let databasePatchedFiles = await Settings.get("databasePatchedFiles"); if (! databasePatchedFiles) { databasePatchedFiles = {}; @@ -498,7 +498,7 @@ class Database { process.exit(1); } - await setSetting("databasePatchedFiles", databasePatchedFiles); + await Settings.set("databasePatchedFiles", databasePatchedFiles); } /** @@ -511,7 +511,7 @@ class Database { // Fix 1.13.0 empty slug bug await R.exec("UPDATE status_page SET slug = 'empty-slug-recover' WHERE TRIM(slug) = ''"); - let title = await setting("title"); + let title = await Settings.get("title"); if (title) { console.log("Migrating Status Page"); @@ -526,12 +526,12 @@ class Database { let statusPage = R.dispense("status_page"); statusPage.slug = "default"; statusPage.title = title; - statusPage.description = await setting("description"); - statusPage.icon = await setting("icon"); - statusPage.theme = await setting("statusPageTheme"); - statusPage.published = !!await setting("statusPagePublished"); - statusPage.search_engine_index = !!await setting("searchEngineIndex"); - statusPage.show_tags = !!await setting("statusPageTags"); + statusPage.description = await Settings.get("description"); + statusPage.icon = await Settings.get("icon"); + statusPage.theme = await Settings.get("statusPageTheme"); + statusPage.published = !!await Settings.get("statusPagePublished"); + statusPage.search_engine_index = !!await Settings.get("searchEngineIndex"); + statusPage.show_tags = !!await Settings.get("statusPageTags"); statusPage.password = null; if (!statusPage.title) { @@ -559,10 +559,10 @@ class Database { await R.exec("DELETE FROM setting WHERE type = 'statusPage'"); // Migrate Entry Page if it is status page - let entryPage = await setting("entryPage"); + let entryPage = await Settings.get("entryPage"); if (entryPage === "statusPage") { - await setSetting("entryPage", "statusPage-default", "general"); + await Settings.set("entryPage", "statusPage-default", "general"); } console.log("Migrating Status Page - Done"); diff --git a/server/jobs/clear-old-data.js b/server/jobs/clear-old-data.js index 248a4d40..b3a1676d 100644 --- a/server/jobs/clear-old-data.js +++ b/server/jobs/clear-old-data.js @@ -1,7 +1,7 @@ const { R } = require("redbean-node"); const { log } = require("../../src/util"); -const { setSetting, setting } = require("../util-server"); const Database = require("../database"); +const { Settings } = require("../settings"); const DEFAULT_KEEP_PERIOD = 180; @@ -11,11 +11,11 @@ const DEFAULT_KEEP_PERIOD = 180; */ const clearOldData = async () => { - let period = await setting("keepDataPeriodDays"); + let period = await Settings.get("keepDataPeriodDays"); // Set Default Period if (period == null) { - await setSetting("keepDataPeriodDays", DEFAULT_KEEP_PERIOD, "general"); + await Settings.set("keepDataPeriodDays", DEFAULT_KEEP_PERIOD, "general"); period = DEFAULT_KEEP_PERIOD; } @@ -25,7 +25,7 @@ const clearOldData = async () => { parsedPeriod = parseInt(period); } catch (_) { log.warn("clearOldData", "Failed to parse setting, resetting to default.."); - await setSetting("keepDataPeriodDays", DEFAULT_KEEP_PERIOD, "general"); + await Settings.set("keepDataPeriodDays", DEFAULT_KEEP_PERIOD, "general"); parsedPeriod = DEFAULT_KEEP_PERIOD; } diff --git a/server/model/monitor.js b/server/model/monitor.js index b2fed86f..0c70c922 100644 --- a/server/model/monitor.js +++ b/server/model/monitor.js @@ -4,7 +4,7 @@ const { Prometheus } = require("../prometheus"); const { log, UP, DOWN, PENDING, MAINTENANCE, flipStatus, MAX_INTERVAL_SECOND, MIN_INTERVAL_SECOND, SQL_DATETIME_FORMAT } = require("../../src/util"); -const { tcping, ping, checkCertificate, checkStatusCode, getTotalClientInRoom, setting, mssqlQuery, postgresQuery, mysqlQuery, setSetting, httpNtlm, radius, grpcQuery, +const { tcping, ping, checkCertificate, checkStatusCode, getTotalClientInRoom, mssqlQuery, postgresQuery, mysqlQuery, httpNtlm, radius, grpcQuery, redisPingAsync, mongodbPing, kafkaProducerAsync, getOidcTokenClientCredentials, rootCertificatesFingerprints, axiosAbortSignal } = require("../util-server"); const { R } = require("redbean-node"); @@ -25,6 +25,7 @@ const { CookieJar } = require("tough-cookie"); const { HttpsCookieAgent } = require("http-cookie-agent/http"); const https = require("https"); const http = require("http"); +const { Settings } = require("../settings"); const rootCertificates = rootCertificatesFingerprints(); @@ -654,7 +655,7 @@ class Monitor extends BeanModel { } else if (this.type === "steam") { const steamApiUrl = "https://api.steampowered.com/IGameServersService/GetServerList/v1/"; - const steamAPIKey = await setting("steamAPIKey"); + const steamAPIKey = await Settings.get("steamAPIKey"); const filter = `addr\\${this.hostname}:${this.port}`; if (!steamAPIKey) { @@ -1370,11 +1371,11 @@ class Monitor extends BeanModel { return; } - let notifyDays = await setting("tlsExpiryNotifyDays"); + let notifyDays = await Settings.get("tlsExpiryNotifyDays"); if (notifyDays == null || !Array.isArray(notifyDays)) { // Reset Default - setSetting("tlsExpiryNotifyDays", [ 7, 14, 21 ], "general"); notifyDays = [ 7, 14, 21 ]; + await Settings.set("tlsExpiryNotifyDays", notifyDays, "general"); } if (Array.isArray(notifyDays)) { diff --git a/server/notification-providers/alertnow.js b/server/notification-providers/alertnow.js index 1206b72e..df4d935e 100644 --- a/server/notification-providers/alertnow.js +++ b/server/notification-providers/alertnow.js @@ -1,7 +1,7 @@ const NotificationProvider = require("./notification-provider"); const axios = require("axios"); -const { setting } = require("../util-server"); const { getMonitorRelativeURL, UP, DOWN } = require("../../src/util"); +const { Settings } = require("../settings"); class AlertNow extends NotificationProvider { @@ -29,7 +29,7 @@ class AlertNow extends NotificationProvider { textMsg += ` - ${msg}`; - const baseURL = await setting("primaryBaseURL"); + const baseURL = await Settings.get("primaryBaseURL"); if (baseURL && monitorJSON) { textMsg += ` >> ${baseURL + getMonitorRelativeURL(monitorJSON.id)}`; } diff --git a/server/notification-providers/flashduty.js b/server/notification-providers/flashduty.js index 83ef27b5..c4a4d947 100644 --- a/server/notification-providers/flashduty.js +++ b/server/notification-providers/flashduty.js @@ -1,7 +1,7 @@ const NotificationProvider = require("./notification-provider"); const axios = require("axios"); const { UP, DOWN, getMonitorRelativeURL } = require("../../src/util"); -const { setting } = require("../util-server"); +const { Settings } = require("../settings"); const successMessage = "Sent Successfully."; class FlashDuty extends NotificationProvider { @@ -77,7 +77,7 @@ class FlashDuty extends NotificationProvider { } }; - const baseURL = await setting("primaryBaseURL"); + const baseURL = await Settings.get("primaryBaseURL"); if (baseURL && monitorInfo) { options.client = "Uptime Kuma"; options.client_url = baseURL + getMonitorRelativeURL(monitorInfo.id); diff --git a/server/notification-providers/google-chat.js b/server/notification-providers/google-chat.js index 413fde26..99095241 100644 --- a/server/notification-providers/google-chat.js +++ b/server/notification-providers/google-chat.js @@ -1,8 +1,8 @@ const NotificationProvider = require("./notification-provider"); const axios = require("axios"); -const { setting } = require("../util-server"); const { getMonitorRelativeURL } = require("../../src/util"); const { DOWN, UP } = require("../../src/util"); +const { Settings } = require("../settings"); class GoogleChat extends NotificationProvider { @@ -29,7 +29,7 @@ class GoogleChat extends NotificationProvider { textMsg += `${msg}`; - const baseURL = await setting("primaryBaseURL"); + const baseURL = await Settings.get("primaryBaseURL"); if (baseURL && monitorJSON) { textMsg += `\n${baseURL + getMonitorRelativeURL(monitorJSON.id)}`; } diff --git a/server/notification-providers/pagerduty.js b/server/notification-providers/pagerduty.js index c60d782e..7aa19bb4 100644 --- a/server/notification-providers/pagerduty.js +++ b/server/notification-providers/pagerduty.js @@ -1,7 +1,7 @@ const NotificationProvider = require("./notification-provider"); const axios = require("axios"); const { UP, DOWN, getMonitorRelativeURL } = require("../../src/util"); -const { setting } = require("../util-server"); +const { Settings } = require("../settings"); let successMessage = "Sent Successfully."; class PagerDuty extends NotificationProvider { @@ -95,7 +95,7 @@ class PagerDuty extends NotificationProvider { } }; - const baseURL = await setting("primaryBaseURL"); + const baseURL = await Settings.get("primaryBaseURL"); if (baseURL && monitorInfo) { options.client = "Uptime Kuma"; options.client_url = baseURL + getMonitorRelativeURL(monitorInfo.id); diff --git a/server/notification-providers/pagertree.js b/server/notification-providers/pagertree.js index c7a5338d..62f229ac 100644 --- a/server/notification-providers/pagertree.js +++ b/server/notification-providers/pagertree.js @@ -1,7 +1,7 @@ const NotificationProvider = require("./notification-provider"); const axios = require("axios"); const { UP, DOWN, getMonitorRelativeURL } = require("../../src/util"); -const { setting } = require("../util-server"); +const { Settings } = require("../settings"); let successMessage = "Sent Successfully."; class PagerTree extends NotificationProvider { @@ -74,7 +74,7 @@ class PagerTree extends NotificationProvider { } }; - const baseURL = await setting("primaryBaseURL"); + const baseURL = await Settings.get("primaryBaseURL"); if (baseURL && monitorJSON) { options.client = "Uptime Kuma"; options.client_url = baseURL + getMonitorRelativeURL(monitorJSON.id); diff --git a/server/notification-providers/rocket-chat.js b/server/notification-providers/rocket-chat.js index 13b39cde..6e510de1 100644 --- a/server/notification-providers/rocket-chat.js +++ b/server/notification-providers/rocket-chat.js @@ -1,8 +1,8 @@ const NotificationProvider = require("./notification-provider"); const axios = require("axios"); const Slack = require("./slack"); -const { setting } = require("../util-server"); const { getMonitorRelativeURL, DOWN } = require("../../src/util"); +const { Settings } = require("../settings"); class RocketChat extends NotificationProvider { @@ -49,7 +49,7 @@ class RocketChat extends NotificationProvider { await Slack.deprecateURL(notification.rocketbutton); } - const baseURL = await setting("primaryBaseURL"); + const baseURL = await Settings.get("primaryBaseURL"); if (baseURL) { data.attachments[0].title_link = baseURL + getMonitorRelativeURL(monitorJSON.id); diff --git a/server/notification-providers/slack.js b/server/notification-providers/slack.js index d512a7cd..d2d8914f 100644 --- a/server/notification-providers/slack.js +++ b/server/notification-providers/slack.js @@ -1,7 +1,7 @@ const NotificationProvider = require("./notification-provider"); const axios = require("axios"); -const { setSettings, setting } = require("../util-server"); const { getMonitorRelativeURL, UP } = require("../../src/util"); +const { Settings } = require("../settings"); class Slack extends NotificationProvider { @@ -15,13 +15,11 @@ class Slack extends NotificationProvider { * @returns {Promise} */ static async deprecateURL(url) { - let currentPrimaryBaseURL = await setting("primaryBaseURL"); + let currentPrimaryBaseURL = await Settings.get("primaryBaseURL"); if (!currentPrimaryBaseURL) { console.log("Move the url to be the primary base URL"); - await setSettings("general", { - primaryBaseURL: url, - }); + await Settings.set("primaryBaseURL", url, "general"); } else { console.log("Already there, no need to move the primary base URL"); } @@ -86,7 +84,7 @@ class Slack extends NotificationProvider { await Slack.deprecateURL(notification.slackbutton); } - const baseURL = await setting("primaryBaseURL"); + const baseURL = await Settings.get("primaryBaseURL"); // Button if (baseURL) { diff --git a/server/notification-providers/splunk.js b/server/notification-providers/splunk.js index e07c5103..ad4dc6b3 100644 --- a/server/notification-providers/splunk.js +++ b/server/notification-providers/splunk.js @@ -1,7 +1,7 @@ const NotificationProvider = require("./notification-provider"); const axios = require("axios"); const { UP, DOWN, getMonitorRelativeURL } = require("../../src/util"); -const { setting } = require("../util-server"); +const { Settings } = require("../settings"); let successMessage = "Sent Successfully."; class Splunk extends NotificationProvider { @@ -95,7 +95,7 @@ class Splunk extends NotificationProvider { } }; - const baseURL = await setting("primaryBaseURL"); + const baseURL = await Settings.get("primaryBaseURL"); if (baseURL && monitorInfo) { options.client = "Uptime Kuma"; options.client_url = baseURL + getMonitorRelativeURL(monitorInfo.id); diff --git a/server/notification-providers/stackfield.js b/server/notification-providers/stackfield.js index 26c038ea..ac5f10d5 100644 --- a/server/notification-providers/stackfield.js +++ b/server/notification-providers/stackfield.js @@ -1,7 +1,7 @@ const NotificationProvider = require("./notification-provider"); const axios = require("axios"); -const { setting } = require("../util-server"); const { getMonitorRelativeURL } = require("../../src/util"); +const { Settings } = require("../settings"); class Stackfield extends NotificationProvider { @@ -23,7 +23,7 @@ class Stackfield extends NotificationProvider { textMsg += `\n${msg}`; - const baseURL = await setting("primaryBaseURL"); + const baseURL = await Settings.get("primaryBaseURL"); if (baseURL) { textMsg += `\n${baseURL + getMonitorRelativeURL(monitorJSON.id)}`; } diff --git a/server/routers/api-router.js b/server/routers/api-router.js index b63b5123..94b3bfd9 100644 --- a/server/routers/api-router.js +++ b/server/routers/api-router.js @@ -18,6 +18,7 @@ const { makeBadge } = require("badge-maker"); const { Prometheus } = require("../prometheus"); const Database = require("../database"); const { UptimeCalculator } = require("../uptime-calculator"); +const { Settings } = require("../settings"); let router = express.Router(); @@ -30,7 +31,7 @@ router.get("/api/entry-page", async (request, response) => { let result = { }; let hostname = request.hostname; - if ((await setting("trustProxy")) && request.headers["x-forwarded-host"]) { + if ((await Settings.get("trustProxy")) && request.headers["x-forwarded-host"]) { hostname = request.headers["x-forwarded-host"]; } diff --git a/server/server.js b/server/server.js index eeffb063..082dabb8 100644 --- a/server/server.js +++ b/server/server.js @@ -90,8 +90,7 @@ const Monitor = require("./model/monitor"); const User = require("./model/user"); log.debug("server", "Importing Settings"); -const { getSettings, setSettings, setting, initJWTSecret, checkLogin, doubleCheckPassword, shake256, SHAKE256_LENGTH, allowDevAllOrigin, -} = require("./util-server"); +const { initJWTSecret, checkLogin, doubleCheckPassword, shake256, SHAKE256_LENGTH, allowDevAllOrigin } = require("./util-server"); log.debug("server", "Importing Notification"); const { Notification } = require("./notification"); @@ -200,7 +199,7 @@ let needSetup = false; // Entry Page app.get("/", async (request, response) => { let hostname = request.hostname; - if (await setting("trustProxy")) { + if (await Settings.get("trustProxy")) { const proxy = request.headers["x-forwarded-host"]; if (proxy) { hostname = proxy; @@ -250,7 +249,7 @@ let needSetup = false; // Robots.txt app.get("/robots.txt", async (_request, response) => { let txt = "User-agent: *\nDisallow:"; - if (!await setting("searchEngineIndex")) { + if (!await Settings.get("searchEngineIndex")) { txt += " /"; } response.setHeader("Content-Type", "text/plain"); @@ -1286,7 +1285,7 @@ let needSetup = false; socket.on("getSettings", async (callback) => { try { checkLogin(socket); - const data = await getSettings("general"); + const data = await Settings.getSettings("general"); if (!data.serverTimezone) { data.serverTimezone = await server.getTimezone(); @@ -1314,7 +1313,7 @@ let needSetup = false; // Disabled Auth + Want to Enable Auth => No Check // Enabled Auth + Want to Disable Auth => Check!! // Enabled Auth + Want to Enable Auth => No Check - const currentDisabledAuth = await setting("disableAuth"); + const currentDisabledAuth = await Settings.get("disableAuth"); if (!currentDisabledAuth && data.disableAuth) { await doubleCheckPassword(socket, currentPassword); } @@ -1322,7 +1321,7 @@ let needSetup = false; const previousChromeExecutable = await Settings.get("chromeExecutable"); const previousNSCDStatus = await Settings.get("nscd"); - await setSettings("general", data); + await Settings.setSettings("general", data); server.entryPage = data.entryPage; // Also need to apply timezone globally @@ -1530,7 +1529,7 @@ let needSetup = false; // *************************** log.debug("auth", "check auto login"); - if (await setting("disableAuth")) { + if (await Settings.get("disableAuth")) { log.info("auth", "Disabled Auth: auto login to admin"); afterLogin(socket, await R.findOne("user")); socket.emit("autoLogin"); diff --git a/server/socket-handlers/cloudflared-socket-handler.js b/server/socket-handlers/cloudflared-socket-handler.js index 809191fe..0a8d0606 100644 --- a/server/socket-handlers/cloudflared-socket-handler.js +++ b/server/socket-handlers/cloudflared-socket-handler.js @@ -1,7 +1,8 @@ -const { checkLogin, setSetting, setting, doubleCheckPassword } = require("../util-server"); +const { checkLogin, doubleCheckPassword } = require("../util-server"); const { CloudflaredTunnel } = require("node-cloudflared-tunnel"); const { UptimeKumaServer } = require("../uptime-kuma-server"); const { log } = require("../../src/util"); +const { Settings } = require("../settings"); const io = UptimeKumaServer.getInstance().io; const prefix = "cloudflared_"; @@ -40,7 +41,7 @@ module.exports.cloudflaredSocketHandler = (socket) => { socket.join("cloudflared"); io.to(socket.userID).emit(prefix + "installed", cloudflared.checkInstalled()); io.to(socket.userID).emit(prefix + "running", cloudflared.running); - io.to(socket.userID).emit(prefix + "token", await setting("cloudflaredTunnelToken")); + io.to(socket.userID).emit(prefix + "token", await Settings.get("cloudflaredTunnelToken")); } catch (error) { } }); @@ -55,7 +56,7 @@ module.exports.cloudflaredSocketHandler = (socket) => { try { checkLogin(socket); if (token && typeof token === "string") { - await setSetting("cloudflaredTunnelToken", token); + await Settings.set("cloudflaredTunnelToken", token); cloudflared.token = token; } else { cloudflared.token = null; @@ -67,7 +68,7 @@ module.exports.cloudflaredSocketHandler = (socket) => { socket.on(prefix + "stop", async (currentPassword, callback) => { try { checkLogin(socket); - const disabledAuth = await setting("disableAuth"); + const disabledAuth = await Settings.get("disableAuth"); if (!disabledAuth) { await doubleCheckPassword(socket, currentPassword); } @@ -83,7 +84,7 @@ module.exports.cloudflaredSocketHandler = (socket) => { socket.on(prefix + "removeToken", async () => { try { checkLogin(socket); - await setSetting("cloudflaredTunnelToken", ""); + await Settings.set("cloudflaredTunnelToken", ""); } catch (error) { } }); @@ -96,10 +97,10 @@ module.exports.cloudflaredSocketHandler = (socket) => { */ module.exports.autoStart = async (token) => { if (!token) { - token = await setting("cloudflaredTunnelToken"); + token = await Settings.get("cloudflaredTunnelToken"); } else { // Override the current token via args or env var - await setSetting("cloudflaredTunnelToken", token); + await Settings.set("cloudflaredTunnelToken", token); console.log("Use cloudflared token from args or env var"); } diff --git a/server/socket-handlers/status-page-socket-handler.js b/server/socket-handlers/status-page-socket-handler.js index ee1c68d3..8f7de831 100644 --- a/server/socket-handlers/status-page-socket-handler.js +++ b/server/socket-handlers/status-page-socket-handler.js @@ -1,5 +1,5 @@ const { R } = require("redbean-node"); -const { checkLogin, setSetting } = require("../util-server"); +const { checkLogin } = require("../util-server"); const dayjs = require("dayjs"); const { log } = require("../../src/util"); const ImageDataURI = require("../image-data-uri"); @@ -7,6 +7,7 @@ const Database = require("../database"); const apicache = require("../modules/apicache"); const StatusPage = require("../model/status_page"); const { UptimeKumaServer } = require("../uptime-kuma-server"); +const { Settings } = require("../settings"); /** * Socket handlers for status page @@ -232,7 +233,7 @@ module.exports.statusPageSocketHandler = (socket) => { // Also change entry page to new slug if it is the default one, and slug is changed. if (server.entryPage === "statusPage-" + slug && statusPage.slug !== slug) { server.entryPage = "statusPage-" + statusPage.slug; - await setSetting("entryPage", server.entryPage, "general"); + await Settings.set("entryPage", server.entryPage, "general"); } apicache.clear(); @@ -311,7 +312,7 @@ module.exports.statusPageSocketHandler = (socket) => { // Reset entry page if it is the default one. if (server.entryPage === "statusPage-" + slug) { server.entryPage = "dashboard"; - await setSetting("entryPage", server.entryPage, "general"); + await Settings.set("entryPage", server.entryPage, "general"); } // No need to delete records from `status_page_cname`, because it has cascade foreign key. diff --git a/server/util-server.js b/server/util-server.js index 8add5bc5..26ec4b4e 100644 --- a/server/util-server.js +++ b/server/util-server.js @@ -536,46 +536,6 @@ exports.redisPingAsync = function (dsn) { }); }; -/** - * Retrieve value of setting based on key - * @param {string} key Key of setting to retrieve - * @returns {Promise} Value - * @deprecated Use await Settings.get(key) - */ -exports.setting = async function (key) { - return await Settings.get(key); -}; - -/** - * Sets the specified setting to specified value - * @param {string} key Key of setting to set - * @param {any} value Value to set to - * @param {?string} type Type of setting - * @returns {Promise} - */ -exports.setSetting = async function (key, value, type = null) { - await Settings.set(key, value, type); -}; - -/** - * Get settings based on type - * @param {string} type The type of setting - * @returns {Promise} Settings of requested type - */ -exports.getSettings = async function (type) { - return await Settings.getSettings(type); -}; - -/** - * Set settings based on type - * @param {string} type Type of settings to set - * @param {object} data Values of settings - * @returns {Promise} - */ -exports.setSettings = async function (type, data) { - await Settings.setSettings(type, data); -}; - // ssl-checker by @dyaa //https://github.com/dyaa/ssl-checker/blob/master/src/index.ts From 10f771cfc6114d47cf4a177f2b714fda0f62f24e Mon Sep 17 00:00:00 2001 From: Frank Elsinga Date: Thu, 18 Jan 2024 22:36:12 +0100 Subject: [PATCH 3/3] formatting fixes --- server/routers/api-router.js | 1 - server/util-server.js | 1 - 2 files changed, 2 deletions(-) diff --git a/server/routers/api-router.js b/server/routers/api-router.js index 94b3bfd9..96a9b4e3 100644 --- a/server/routers/api-router.js +++ b/server/routers/api-router.js @@ -1,6 +1,5 @@ let express = require("express"); const { - setting, allowDevAllOrigin, allowAllOrigin, percentageToColor, diff --git a/server/util-server.js b/server/util-server.js index 26ec4b4e..706af17d 100644 --- a/server/util-server.js +++ b/server/util-server.js @@ -13,7 +13,6 @@ const postgresConParse = require("pg-connection-string").parse; const mysql = require("mysql2"); const { MongoClient } = require("mongodb"); const { NtlmClient } = require("axios-ntlm"); -const { Settings } = require("./settings"); const grpc = require("@grpc/grpc-js"); const protojs = require("protobufjs"); const radiusClient = require("node-radius-client");