Skip to content

Commit

Permalink
chore: addressing of simple deprecations surrounding Settings and `…
Browse files Browse the repository at this point in the history
…log`

Co-authored-by: Frank Elsinga <[email protected]>
Closes: louislam#4391

Squashed commit of the following:

commit 828d2a7
Merge: 10f771c dd75890
Author: Frank Elsinga <[email protected]>
Date:   Fri Sep 13 22:51:25 2024 +0800

    Merge branch 'master' into deprecations

commit 10f771c
Author: Frank Elsinga <[email protected]>
Date:   Thu Jan 18 22:36:12 2024 +0100

    formatting fixes

commit d737b19
Author: Frank Elsinga <[email protected]>
Date:   Thu Jan 18 21:27:30 2024 +0100

    migrated all settings to use the `Settings` class

commit c5e26e9
Author: Frank Elsinga <[email protected]>
Date:   Thu Jan 18 21:04:44 2024 +0100

    removed the deprecated logging functionality
  • Loading branch information
SapphicCode committed Sep 19, 2024
1 parent dd75890 commit 48d91cd
Show file tree
Hide file tree
Showing 22 changed files with 79 additions and 126 deletions.
3 changes: 1 addition & 2 deletions server/auth.js
Original file line number Diff line number Diff line change
@@ -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");
Expand Down Expand Up @@ -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);
Expand Down
8 changes: 4 additions & 4 deletions server/check-version.js
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -14,7 +14,7 @@ let interval;

exports.startInterval = () => {
let check = async () => {
if (await setting("checkUpdate") === false) {
if (await Settings.get("checkUpdate") === false) {
return;
}

Expand All @@ -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, ">")) {
Expand Down Expand Up @@ -57,7 +57,7 @@ exports.startInterval = () => {
* @returns {Promise<void>}
*/
exports.enableCheckUpdate = async (value) => {
await setSetting("checkUpdate", value);
await Settings.set("checkUpdate", value);

clearInterval(interval);

Expand Down
4 changes: 2 additions & 2 deletions server/client.js
Original file line number Diff line number Diff line change
Expand Up @@ -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");
const Database = require("./database");

/**
Expand Down Expand Up @@ -158,8 +158,8 @@ async function sendInfo(socket, hideVersion = false) {
version,
latestVersion,
isContainer,
primaryBaseURL: await Settings.get("primaryBaseURL"),
dbType,
primaryBaseURL: await setting("primaryBaseURL"),
serverTimezone: await server.getTimezone(),
serverTimezoneOffset: server.getTimezoneOffset(),
});
Expand Down
28 changes: 14 additions & 14 deletions server/database.js
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -420,7 +420,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;
Expand All @@ -445,7 +445,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();
Expand All @@ -471,7 +471,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 = {};
Expand Down Expand Up @@ -499,7 +499,7 @@ class Database {
process.exit(1);
}

await setSetting("databasePatchedFiles", databasePatchedFiles);
await Settings.set("databasePatchedFiles", databasePatchedFiles);
}

/**
Expand All @@ -512,7 +512,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");
Expand All @@ -527,12 +527,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) {
Expand Down Expand Up @@ -560,10 +560,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");
Expand Down
8 changes: 4 additions & 4 deletions server/jobs/clear-old-data.js
Original file line number Diff line number Diff line change
@@ -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;

Expand All @@ -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;
}

Expand All @@ -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;
}

Expand Down
10 changes: 6 additions & 4 deletions server/model/monitor.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ const { Prometheus } = require("../prometheus");
const { log, UP, DOWN, PENDING, MAINTENANCE, flipStatus, MAX_INTERVAL_SECOND, MIN_INTERVAL_SECOND,
SQL_DATETIME_FORMAT, evaluateJsonQuery
} = 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, kafkaProducerAsync, getOidcTokenClientCredentials, rootCertificatesFingerprints, axiosAbortSignal
} = require("../util-server");
const { R } = require("redbean-node");
Expand All @@ -24,6 +24,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();

Expand Down Expand Up @@ -672,7 +673,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) {
Expand Down Expand Up @@ -1379,11 +1380,12 @@ class Monitor extends BeanModel {
return;
}

let notifyDays = await setting("tlsExpiryNotifyDays");
let notifyDays = await Settings.get("tlsExpiryNotifyDays");
if (notifyDays == null || !Array.isArray(notifyDays)) {
// Reset Default
await setSetting("tlsExpiryNotifyDays", [ 7, 14, 21 ], "general");
await Settings.set("tlsExpiryNotifyDays", [ 7, 14, 21 ], "general");
notifyDays = [ 7, 14, 21 ];
await Settings.set("tlsExpiryNotifyDays", notifyDays, "general");
}

if (Array.isArray(notifyDays)) {
Expand Down
4 changes: 2 additions & 2 deletions server/notification-providers/alertnow.js
Original file line number Diff line number Diff line change
@@ -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 {
name = "AlertNow";
Expand Down Expand Up @@ -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)}`;
}
Expand Down
4 changes: 2 additions & 2 deletions server/notification-providers/flashduty.js
Original file line number Diff line number Diff line change
@@ -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 {
Expand Down Expand Up @@ -84,7 +84,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);
Expand Down
7 changes: 4 additions & 3 deletions server/notification-providers/google-chat.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
const NotificationProvider = require("./notification-provider");
const axios = require("axios");
const { setting } = require("../util-server");
const { getMonitorRelativeURL, UP } = require("../../src/util");
const { getMonitorRelativeURL, DOWN, UP } = require("../../src/util");
const { Settings } = require("../settings");

class GoogleChat extends NotificationProvider {
name = "GoogleChat";
Expand Down Expand Up @@ -35,6 +35,7 @@ class GoogleChat extends NotificationProvider {
},
];


// add time if available
if (heartbeatJSON) {
sectionWidgets.push({
Expand All @@ -45,7 +46,7 @@ class GoogleChat extends NotificationProvider {
}

// add button for monitor link if available
const baseURL = await setting("primaryBaseURL");
const baseURL = await Settings.get("primaryBaseURL");
if (baseURL) {
const urlPath = monitorJSON ? getMonitorRelativeURL(monitorJSON.id) : "/";
sectionWidgets.push({
Expand Down
4 changes: 2 additions & 2 deletions server/notification-providers/pagerduty.js
Original file line number Diff line number Diff line change
@@ -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 {
Expand Down Expand Up @@ -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);
Expand Down
4 changes: 2 additions & 2 deletions server/notification-providers/pagertree.js
Original file line number Diff line number Diff line change
@@ -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 {
Expand Down Expand Up @@ -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);
Expand Down
4 changes: 2 additions & 2 deletions server/notification-providers/rocket-chat.js
Original file line number Diff line number Diff line change
@@ -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 {
name = "rocket.chat";
Expand Down Expand Up @@ -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);
Expand Down
11 changes: 5 additions & 6 deletions server/notification-providers/slack.js
Original file line number Diff line number Diff line change
@@ -1,26 +1,25 @@
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 {
name = "slack";

/**
* Deprecated property notification.slackbutton
* Set it as primary base url if this is not yet set.
* Set it as
ry base url if this is not yet set.
* @deprecated
* @param {string} url The primary base URL to use
* @returns {Promise<void>}
*/
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");
}
Expand Down
Loading

0 comments on commit 48d91cd

Please sign in to comment.