Commit graph

77 commits

Author SHA1 Message Date
Matthew Nickson 669f8700b2
Switched to nanoid for key generation
To try and prevent any security issues, use an external package to
generate key instead of doing it ourselves. Note: we have to use nanoid
version 3 as nanoid version 4 requires ESM. Currently, nanoid v3 is
still supported.

Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2023-02-26 19:36:50 +00:00
Matthew Nickson 06ee68dc0e
Merge branch 'feature/1685-prometheus-api-key' of github.com:Computroniks/uptime-kuma into feature/1685-prometheus-api-key 2023-02-26 16:47:45 +00:00
Matthew Nickson 42a69c16ca
Switched to crypto.randomBytes fpr key generation
Keys are now 32 bytes long encoded in a URL safe base64 string

Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2023-02-26 16:47:34 +00:00
Louis Lam ef64077980 Merge remote-tracking branch 'origin/master' into feature/1685-prometheus-api-key
# Conflicts:
#	src/lang/en.json
2023-02-25 00:06:25 +08:00
Nelson Chan c65a920050 Chore: Fix code comment 2023-02-24 21:09:55 +08:00
Nelson Chan 7b8ed01f27 Fix: getGameList returns nothing on first run 2023-02-24 21:06:00 +08:00
Matthew Nickson e7feca1cd6
Added API key authentication handler
API key authentication is now possible by making use of the X-API-Key
header. API authentication will only be enabled when a user adds their
first API key, up until this point, they can still use their username
and password to authenticate with API endpoints. After the user adds
their first API key, they may only use API keys in future to
authenticate with the API.

In this commit, the prometheus /metrics endpoint has been changed over
to the new authentication system.

Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2023-02-15 00:39:29 +00:00
Matthew Nickson d7f2fa982a
Merge branch 'master' into feature/1685-prometheus-api-key 2023-02-14 19:53:33 +00:00
Matthew Nickson ee2eb5109b
Added basic web interface for API keys
Web interfaces for manging API keys have been added however translation
keys are still required.

Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2023-02-14 19:49:04 +00:00
c a823ed8ccc Feature - Google Analytics - Removed unused import. 2023-02-03 11:49:25 +00:00
c 913bb611d5 Feature - Google Analytics - Removed regex to validate a Google Analytics tag. 2023-02-02 21:52:45 +00:00
c 2b3a3895b3 Feature - Google Analytics - Use Regex to validate UA as per https://support.google.com/analytics/answer/9310895 2023-02-02 21:51:03 +00:00
c 29e24e0de9 Feature - Added Optional Google Analytics tag for Status Page. 2023-02-02 21:51:03 +00:00
Louis Lam ddce8f0cb0 Fix plugin installation 2023-01-28 19:00:13 +08:00
Louis Lam e5ca67d062
HTTPS Monitor using Real Browsers + Limited plugin support (#1787) 2023-01-27 18:25:57 +08:00
Louis Lam 83e0401dd8 Show game list for GameDig monitor 2023-01-24 23:03:01 +08:00
Louis Lam e88e10cc8e Fix #2494 2023-01-01 21:43:54 +08:00
Louis Lam df21f7da76 Check login for initServerTimezone 2022-12-16 12:56:40 +08:00
Louis Lam 39987ba9ac Init server timezone 2022-12-12 22:57:57 +08:00
Louis Lam e478084ff9 Fix Uptime Kuma cannot be stopped 2022-12-08 19:13:47 +08:00
Louis Lam e07aa982c3 WIP 2022-10-11 18:23:17 +08:00
Louis Lam c1ccaa7a9f WIP 2022-10-10 20:48:11 +08:00
Louis Lam b007681e67 Merge remote-tracking branch 'origin/master' into karelkryda_master
# Conflicts:
#	server/model/monitor.js
#	server/model/status_page.js
#	src/languages/en.js
2022-10-09 19:26:00 +08:00
Louis Lam 0686757160 [Docker Monitor] Change tcp:// to http:// 2022-10-04 16:19:56 +08:00
Louis Lam b1465c0282 - Maintenance standardize datetime format to YYYY-MM-DD hh:mm:ss
- Import dayjs extensions one time only
- Maintenance activeCondition centralize
2022-09-28 00:20:17 +08:00
Louis Lam 4002b9f577 [WIP] Checking maintenance time using maintenance_timeslot table 2022-09-27 20:44:44 +08:00
Louis Lam 3f63cb246b [WIP] Handle timezone offset for timeRange 2022-09-25 19:38:28 +08:00
Louis Lam f11dfc8f43 [WIP] Add/Edit Maintenance with new UI and recurring 2022-09-24 19:18:24 +08:00
Louis Lam 120e578398 Move maintenance code to maintenance-socket-handler.js 2022-09-17 16:58:08 +08:00
Louis Lam 7017c2e625 Move maintenance code to maintenance-socket-handler.js 2022-09-17 16:54:21 +08:00
Louis Lam f3322398e5 Fix and improve test docker host 2022-07-29 20:57:13 +08:00
Moritz R 60e7824ff0
Merge branch 'master' into master 2022-07-24 14:37:22 +02:00
c0derMo e356d5f623 Fixing linting & adding documentation 2022-07-22 15:57:40 +00:00
c0derMo 0d098b0958 Docker Hosts are now a table & have their own dialog 2022-07-22 15:47:04 +00:00
Louis Lam 239611a016 Do not set sendUrl if sendUrl is undefined 2022-07-22 23:27:02 +08:00
Matthew Nickson f1d24782f8
Merge branch 'master' into feature/#1221-clickable-hostaname-on-status-page 2022-06-18 23:53:35 +01:00
Louis Lam b97019eea8 Fix cloudflared cannot be stopped in No Auth mode due to password checking 2022-06-18 19:06:03 +08:00
Matthew Nickson fbfa5a33ed
Added Clickable hostname on status page. #1221
This should fully implement #1221 by modifying the API and adding two
new properties to the result. The `sendUrl` property denotes if the URL
is sent and `url` is included when required.
Client side checks have been implemented in order to only show a link
when the URL is vaugely correct. I.e not "" or "https://". This prevents
the link from being included if the monitor type is not HTTP without
having to publicly expose the monitor type.
The exposure of the URL is configuarable for each monitor on each
status page by clicking on the link icon.

Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2022-06-11 17:23:12 +01:00
Matthew Nickson 068b920553
Add JSDoc to server/socket-handlers/*
Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2022-04-21 17:10:23 +01:00
Louis Lam 10f6a3c4f5
Merge pull request #1229 from Computroniks/#1209-Logout-button-in-navbar
Add #1209: logout button in navbar
2022-04-19 19:59:52 +08:00
Louis Lam 29d2d95c71 Merge branch '1.14.X'
# Conflicts:
#	package.json
#	server/server.js
2022-04-19 16:43:13 +08:00
Louis Lam 919393cac9 Partially change the server core into a class, remove all require("./server") #1520 2022-04-19 15:38:59 +08:00
Louis Lam 17d4003e5c Add dropdown menu 2022-04-19 00:39:49 +08:00
Louis Lam 8eb83394f7 Refine UI/UX for custom css / footer text. Add switch for show/hide powered by 2022-04-17 14:53:13 +08:00
Louis Lam 649f3106e1 Enforce semicolon, fix format globally 2022-04-14 01:20:54 +08:00
Louis Lam e9ce1433cd Change log_info to log.info by making it into an object 2022-04-13 23:33:37 +08:00
Louis Lam 279e2eb3f6 Merge branch 'master' into logging
# Conflicts:
#	server/database.js
#	server/jobs.js
#	server/model/monitor.js
#	server/routers/api-router.js
#	server/server.js
#	server/socket-handlers/status-page-socket-handler.js
#	server/util-server.js
2022-04-12 16:32:14 +08:00
Louis Lam c9fa183712 Manage domain names 2022-04-10 00:25:27 +08:00
Louis Lam 008dc27f52 Reload proxy settings for monitors in the monitorList 2022-04-07 23:03:45 +08:00
Louis Lam 082c2dd32d Remove restartMonitors() and move proxy socket events to a socket handler file 2022-04-07 14:45:37 +08:00