From bbaba29222eccdcda0a5a1e1e6355b8b0da057b9 Mon Sep 17 00:00:00 2001 From: Louis Lam Date: Wed, 18 Oct 2023 21:54:22 +0800 Subject: [PATCH] Set default ua for axios: `Uptime-Kuma/version` instead of `axios/version` --- server/docker.js | 1 - server/model/monitor.js | 3 --- server/uptime-kuma-server.js | 8 ++++++++ 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/server/docker.js b/server/docker.js index 545c14bd6..a96324a9f 100644 --- a/server/docker.js +++ b/server/docker.js @@ -72,7 +72,6 @@ class DockerHost { url: "/containers/json?all=true", headers: { "Accept": "*/*", - "User-Agent": "Uptime-Kuma/" + version }, }; diff --git a/server/model/monitor.js b/server/model/monitor.js index 3e595f92e..5dcb7171c 100644 --- a/server/model/monitor.js +++ b/server/model/monitor.js @@ -447,7 +447,6 @@ class Monitor extends BeanModel { timeout: this.timeout * 1000, headers: { "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9", - "User-Agent": "Uptime-Kuma/" + version, ...(contentType ? { "Content-Type": contentType } : {}), ...(basicAuthHeader), ...(oauth2AuthHeader), @@ -627,7 +626,6 @@ class Monitor extends BeanModel { timeout: this.timeout * 1000, headers: { "Accept": "*/*", - "User-Agent": "Uptime-Kuma/" + version, }, httpsAgent: CacheableDnsHttpAgent.getHttpsAgent({ maxCachedSessions: 0, // Use Custom agent to disable session reuse (https://github.com/nodejs/node/issues/3940) @@ -681,7 +679,6 @@ class Monitor extends BeanModel { timeout: this.interval * 1000 * 0.8, headers: { "Accept": "*/*", - "User-Agent": "Uptime-Kuma/" + version, }, httpsAgent: CacheableDnsHttpAgent.getHttpsAgent({ maxCachedSessions: 0, // Use Custom agent to disable session reuse (https://github.com/nodejs/node/issues/3940) diff --git a/server/uptime-kuma-server.js b/server/uptime-kuma-server.js index 9d5749f2a..a47b5b51f 100644 --- a/server/uptime-kuma-server.js +++ b/server/uptime-kuma-server.js @@ -12,6 +12,7 @@ const { Settings } = require("./settings"); const dayjs = require("dayjs"); const childProcess = require("child_process"); const path = require("path"); +const axios = require("axios"); // DO NOT IMPORT HERE IF THE MODULES USED `UptimeKumaServer.getInstance()`, put at the bottom of this file instead. /** @@ -83,6 +84,9 @@ class UptimeKumaServer { const sslCert = args["ssl-cert"] || process.env.UPTIME_KUMA_SSL_CERT || process.env.SSL_CERT || undefined; const sslKeyPassphrase = args["ssl-key-passphrase"] || process.env.UPTIME_KUMA_SSL_KEY_PASSPHRASE || process.env.SSL_KEY_PASSPHRASE || undefined; + // Set axios default user-agent to Uptime-Kuma/version + axios.defaults.headers.common["User-Agent"] = this.getUserAgent(); + log.debug("server", "Creating express and socket.io instance"); this.app = express(); if (sslKey && sslCert) { @@ -411,6 +415,10 @@ class UptimeKumaServer { } } } + + getUserAgent() { + return "Uptime-Kuma/" + require("../package.json").version + } } module.exports = {