From 45294bfc9d1239916ff27b5ce495b4529c882c51 Mon Sep 17 00:00:00 2001 From: Alex Holliday Date: Thu, 14 Nov 2024 10:34:30 +0800 Subject: [PATCH 1/9] Remove sendgrid dependency from BE --- Server/package-lock.json | 44 ---------------------------------------- Server/package.json | 1 - 2 files changed, 45 deletions(-) diff --git a/Server/package-lock.json b/Server/package-lock.json index 22ffaa863..1d90341b4 100644 --- a/Server/package-lock.json +++ b/Server/package-lock.json @@ -9,7 +9,6 @@ "version": "1.0.0", "license": "ISC", "dependencies": { - "@sendgrid/mail": "^8.1.3", "axios": "^1.7.2", "bcrypt": "^5.1.1", "bullmq": "5.25.6", @@ -745,41 +744,6 @@ "node": ">=14" } }, - "node_modules/@sendgrid/client": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/@sendgrid/client/-/client-8.1.3.tgz", - "integrity": "sha512-mRwTticRZIdUTsnyzvlK6dMu3jni9ci9J+dW/6fMMFpGRAJdCJlivFVYQvqk8kRS3RnFzS7sf6BSmhLl1ldDhA==", - "dependencies": { - "@sendgrid/helpers": "^8.0.0", - "axios": "^1.6.8" - }, - "engines": { - "node": ">=12.*" - } - }, - "node_modules/@sendgrid/helpers": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@sendgrid/helpers/-/helpers-8.0.0.tgz", - "integrity": "sha512-Ze7WuW2Xzy5GT5WRx+yEv89fsg/pgy3T1E3FS0QEx0/VvRmigMZ5qyVGhJz4SxomegDkzXv/i0aFPpHKN8qdAA==", - "dependencies": { - "deepmerge": "^4.2.2" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@sendgrid/mail": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/@sendgrid/mail/-/mail-8.1.3.tgz", - "integrity": "sha512-Wg5iKSUOER83/cfY6rbPa+o3ChnYzWwv1OcsR8gCV8SKi+sUPIMroildimlnb72DBkQxcbylxng1W7f0RIX7MQ==", - "dependencies": { - "@sendgrid/client": "^8.1.3", - "@sendgrid/helpers": "^8.0.0" - }, - "engines": { - "node": ">=12.*" - } - }, "node_modules/@sideway/address": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", @@ -2030,14 +1994,6 @@ "node": ">=6" } }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/define-data-property": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", diff --git a/Server/package.json b/Server/package.json index ce34ee0f2..ceecf5e41 100644 --- a/Server/package.json +++ b/Server/package.json @@ -12,7 +12,6 @@ "author": "", "license": "ISC", "dependencies": { - "@sendgrid/mail": "^8.1.3", "axios": "^1.7.2", "bcrypt": "^5.1.1", "bullmq": "5.25.6", From df36e4d1f667bcb64227e0caf4f5216791304380 Mon Sep 17 00:00:00 2001 From: Alex Holliday Date: Thu, 14 Nov 2024 11:32:51 +0800 Subject: [PATCH 2/9] Update docs for docker monitors --- docs/guides/placeholder.md | 0 docs/quickstart.md | 181 --------------------------------- docs/users-guide/quickstart.md | 181 --------------------------------- 3 files changed, 362 deletions(-) delete mode 100644 docs/guides/placeholder.md delete mode 100644 docs/quickstart.md delete mode 100644 docs/users-guide/quickstart.md diff --git a/docs/guides/placeholder.md b/docs/guides/placeholder.md deleted file mode 100644 index e69de29bb..000000000 diff --git a/docs/quickstart.md b/docs/quickstart.md deleted file mode 100644 index 6d2ec2242..000000000 --- a/docs/quickstart.md +++ /dev/null @@ -1,181 +0,0 @@ ---- -icon: sign-posts-wrench ---- - -# Installing Uptime Manager - -## Quickstart for users (quick method) - -1. Download our [Docker compose file](https://github.com/bluewave-labs/bluewave-uptime/blob/develop/Docker/dist/docker-compose.yaml) -2. Run `docker compose up` to start the application -3. Now the application is running at `http://localhost` - ---- - -## Quickstart for developers - -{% hint style="info" %} -Make sure you change the directory to the specified directories, as paths in commands are relative. -{% endhint %} - -### Cloning and initial setup - -1. Clone this repository. -2. Checkout the `develop` branch `git checkout develop` - -### Setting up Docker images - -3. Change directory to the `Docker/dev` directory -4. Build the docker images by running the `build_images.sh` script -5. Run `docker run -d -p 6379:6379 -v $(pwd)/redis/data:/data --name uptime_redis uptime_redis` -6. Run `docker run -d -p 27017:27017 -v $(pwd)/mongo/data:/data/db --name uptime_database_mongo uptime_database_mongo` - -### Server setup - -6. CD to `Server` directory, and run `npm install` -7. While in `Server` directory, create a `.env` file with the [required environmental variables](#env-vars-server) -8. While in the `Server` directory, run `npm run dev` - -### Client setup - -9. CD to `Client` directory `run npm install` -10. While in the `Client` directory, create a `.env` file with the [required environmental variables](#env-vars-client) -11. While in the `Client` directory run `npm run dev` - -### Access the application - -12. Client is now running at `localhost:5173` -13. Server is now running at `localhost:5000` - ---- - -## Manual installation - -### Client installation - -1. Change directory to the `Client` directory -2. Install all dependencies by running `npm install` -3. Add a `.env` file to the `Client` directory with the following options: - -#### Environment variables - -| ENV Variable Name | Required/Optional | Type | Description | Accepted Values | -| --------------------- | ----------------- | --------- | ------------------ | ---------------------------------- | -| VITE_APP_API_BASE_URL | Required | `string` | Base URL of server | {host}/api/v1 | -| VITE_APP_LOG_LEVEL | Optional | `string` | Log level | `"none"`\|`"error"` \| `"warn"` \| | -| VITE_APP_DEMO | Optional | `boolean` | Demo server or not | `true`\|`false` \| | - -#### Starting the Client development server - -1. Run `npm run dev` to start the development server. - -### Server Installation - -1. Change the directory to the `Server` directory -2. Install all dependencies by running `npm install` -3. Add a `.env` file to the `Server` directory with the following options: - -#### Environment variables - -Configure the server with the following environmental variables: - -
ENV Variable NameRequired/OptionalTypeDescriptionAccepted Values
CLIENT_HOSTRequiredstringFrontend Host
JWT_SECRETRequiredstringJWT secret
DB_TYPEOptionalstringSpecify DB to useMongoDB | FakeDB
DB_CONNECTION_STRINGRequiredstringSpecifies URL for MongoDB Database
PORTOptionalintegerSpecifies Port for Server
LOGIN_PAGE_URLRequiredstringLogin url to be used in emailing service
REDIS_HOSTRequiredstringHost address for Redis database
REDIS_PORTRequiredintegerPort for Redis database
TOKEN_TTLOptionalstringTime for token to liveIn vercel/ms format https://github.com/vercel/ms
PAGESPEED_API_KEYOptionalstringAPI Key for PageSpeed requests
SYSTEM_EMAIL_HOSTRequiredstringHost to send System Emails From
SYSTEM_EMAIL_PORTRequirednumberPort for System Email Host
SYSTEM_EMAIL_ADDRESSRequiredstringSystem Email Address
SYSTEM_EMAIL_PASSWORDRequiredstringSystem Email Password
- ---- - -#### Databases - -This project requires two databases: - -1. **Main application database:** The project uses MongoDB for its primary database, with a MongoDB Docker image provided for easy setup. -2. **Redis for queue management:** A Redis database is used for the PingService’s queue system, and a Redis Docker image is included for deployment. - -You may use the included Dockerfiles to spin up databases quickly if you wish. - -**(Optional) Dockerised databases** - -Dockerfiles for the server and databases are located in the `Docker` directory - -
- -MongoDB Image - -Location: `Docker/mongoDB.Dockerfile` - -The `Docker/mongo/data` directory should be mounted to the MongoDB container in order to persist data. - -From the `Docker` directory run - -1. Build the image: `docker build -f mongoDB.Dockerfile -t uptime_database_mongo .` -2. Run the docker image: `docker run -d -p 27017:27017 -v $(pwd)/mongo/data:/data/db --name uptime_database_mongo uptime_database_mongo` - -
- -
- -Redis Image - -Location `Docker/redis.Dockerfile` - -the `Docker/redis/data` directory should be mounted to the Redis container in order to persist data. - -From the `Docker` directory run - -1. Build the image: `docker build -f redis.Dockerfile -t uptime_redis .` -2. Run the image: `docker run -d -p 6379:6379 -v $(pwd)/redis/data:/data --name uptime_redis uptime_redis` - -
- ---- - -#### Starting the development server - -- run `npm run dev` to start the development server - -or, - -- run `node index.js` to start server - ---- - -### API documentation - -Our API is documented in accordance with the [OpenAPI spec](https://www.openapis.org/). - -You can see the documentation on your local development server at http://localhost:{port}/api-docs - -You can also view the documentation on our demo server at [https://uptime-demo.bluewavelabs.ca/api-docs](https://uptime-demo.bluewavelabs.ca/api-docs) - -### Error handling - -Errors are returned in a standard format: - -`{"success": false, "msg": "No token provided"}` - -Errors are handled by error handling middleware and should be thrown with the following parameters - -| Name | Type | Default | Notes | -| ------- | --------- | ---------------------- | ------------------------------------ | -| status | `integer` | 500 | Standard HTTP codes | -| message | `string` | "Something went wrong" | An error message | -| service | `string` | "Unknown Service" | Name of service that threw the error | - -Example: - -``` -const myRoute = async(req, res, next) => { - try{ - const result = myRiskyOperationHere(); - } - catch(error){ - error.status = 404 - error.message = "Resource not found" - error.service = service name - next(error) - return; - } -} - -``` - -Errors should not be handled at the controller level and should be left to the middleware to handle. diff --git a/docs/users-guide/quickstart.md b/docs/users-guide/quickstart.md deleted file mode 100644 index 6d2ec2242..000000000 --- a/docs/users-guide/quickstart.md +++ /dev/null @@ -1,181 +0,0 @@ ---- -icon: sign-posts-wrench ---- - -# Installing Uptime Manager - -## Quickstart for users (quick method) - -1. Download our [Docker compose file](https://github.com/bluewave-labs/bluewave-uptime/blob/develop/Docker/dist/docker-compose.yaml) -2. Run `docker compose up` to start the application -3. Now the application is running at `http://localhost` - ---- - -## Quickstart for developers - -{% hint style="info" %} -Make sure you change the directory to the specified directories, as paths in commands are relative. -{% endhint %} - -### Cloning and initial setup - -1. Clone this repository. -2. Checkout the `develop` branch `git checkout develop` - -### Setting up Docker images - -3. Change directory to the `Docker/dev` directory -4. Build the docker images by running the `build_images.sh` script -5. Run `docker run -d -p 6379:6379 -v $(pwd)/redis/data:/data --name uptime_redis uptime_redis` -6. Run `docker run -d -p 27017:27017 -v $(pwd)/mongo/data:/data/db --name uptime_database_mongo uptime_database_mongo` - -### Server setup - -6. CD to `Server` directory, and run `npm install` -7. While in `Server` directory, create a `.env` file with the [required environmental variables](#env-vars-server) -8. While in the `Server` directory, run `npm run dev` - -### Client setup - -9. CD to `Client` directory `run npm install` -10. While in the `Client` directory, create a `.env` file with the [required environmental variables](#env-vars-client) -11. While in the `Client` directory run `npm run dev` - -### Access the application - -12. Client is now running at `localhost:5173` -13. Server is now running at `localhost:5000` - ---- - -## Manual installation - -### Client installation - -1. Change directory to the `Client` directory -2. Install all dependencies by running `npm install` -3. Add a `.env` file to the `Client` directory with the following options: - -#### Environment variables - -| ENV Variable Name | Required/Optional | Type | Description | Accepted Values | -| --------------------- | ----------------- | --------- | ------------------ | ---------------------------------- | -| VITE_APP_API_BASE_URL | Required | `string` | Base URL of server | {host}/api/v1 | -| VITE_APP_LOG_LEVEL | Optional | `string` | Log level | `"none"`\|`"error"` \| `"warn"` \| | -| VITE_APP_DEMO | Optional | `boolean` | Demo server or not | `true`\|`false` \| | - -#### Starting the Client development server - -1. Run `npm run dev` to start the development server. - -### Server Installation - -1. Change the directory to the `Server` directory -2. Install all dependencies by running `npm install` -3. Add a `.env` file to the `Server` directory with the following options: - -#### Environment variables - -Configure the server with the following environmental variables: - -
ENV Variable NameRequired/OptionalTypeDescriptionAccepted Values
CLIENT_HOSTRequiredstringFrontend Host
JWT_SECRETRequiredstringJWT secret
DB_TYPEOptionalstringSpecify DB to useMongoDB | FakeDB
DB_CONNECTION_STRINGRequiredstringSpecifies URL for MongoDB Database
PORTOptionalintegerSpecifies Port for Server
LOGIN_PAGE_URLRequiredstringLogin url to be used in emailing service
REDIS_HOSTRequiredstringHost address for Redis database
REDIS_PORTRequiredintegerPort for Redis database
TOKEN_TTLOptionalstringTime for token to liveIn vercel/ms format https://github.com/vercel/ms
PAGESPEED_API_KEYOptionalstringAPI Key for PageSpeed requests
SYSTEM_EMAIL_HOSTRequiredstringHost to send System Emails From
SYSTEM_EMAIL_PORTRequirednumberPort for System Email Host
SYSTEM_EMAIL_ADDRESSRequiredstringSystem Email Address
SYSTEM_EMAIL_PASSWORDRequiredstringSystem Email Password
- ---- - -#### Databases - -This project requires two databases: - -1. **Main application database:** The project uses MongoDB for its primary database, with a MongoDB Docker image provided for easy setup. -2. **Redis for queue management:** A Redis database is used for the PingService’s queue system, and a Redis Docker image is included for deployment. - -You may use the included Dockerfiles to spin up databases quickly if you wish. - -**(Optional) Dockerised databases** - -Dockerfiles for the server and databases are located in the `Docker` directory - -
- -MongoDB Image - -Location: `Docker/mongoDB.Dockerfile` - -The `Docker/mongo/data` directory should be mounted to the MongoDB container in order to persist data. - -From the `Docker` directory run - -1. Build the image: `docker build -f mongoDB.Dockerfile -t uptime_database_mongo .` -2. Run the docker image: `docker run -d -p 27017:27017 -v $(pwd)/mongo/data:/data/db --name uptime_database_mongo uptime_database_mongo` - -
- -
- -Redis Image - -Location `Docker/redis.Dockerfile` - -the `Docker/redis/data` directory should be mounted to the Redis container in order to persist data. - -From the `Docker` directory run - -1. Build the image: `docker build -f redis.Dockerfile -t uptime_redis .` -2. Run the image: `docker run -d -p 6379:6379 -v $(pwd)/redis/data:/data --name uptime_redis uptime_redis` - -
- ---- - -#### Starting the development server - -- run `npm run dev` to start the development server - -or, - -- run `node index.js` to start server - ---- - -### API documentation - -Our API is documented in accordance with the [OpenAPI spec](https://www.openapis.org/). - -You can see the documentation on your local development server at http://localhost:{port}/api-docs - -You can also view the documentation on our demo server at [https://uptime-demo.bluewavelabs.ca/api-docs](https://uptime-demo.bluewavelabs.ca/api-docs) - -### Error handling - -Errors are returned in a standard format: - -`{"success": false, "msg": "No token provided"}` - -Errors are handled by error handling middleware and should be thrown with the following parameters - -| Name | Type | Default | Notes | -| ------- | --------- | ---------------------- | ------------------------------------ | -| status | `integer` | 500 | Standard HTTP codes | -| message | `string` | "Something went wrong" | An error message | -| service | `string` | "Unknown Service" | Name of service that threw the error | - -Example: - -``` -const myRoute = async(req, res, next) => { - try{ - const result = myRiskyOperationHere(); - } - catch(error){ - error.status = 404 - error.message = "Resource not found" - error.service = service name - next(error) - return; - } -} - -``` - -Errors should not be handled at the controller level and should be left to the middleware to handle. From f2243634cd29860900cefc439466ef2bc76cc780 Mon Sep 17 00:00:00 2001 From: Alex Holliday Date: Thu, 14 Nov 2024 11:33:55 +0800 Subject: [PATCH 3/9] Update docs and docker-compose --- Docker/dist/docker-compose.yaml | 2 ++ guides/users-guide/creating-a-new-monitor.md | 17 ++++++++------- guides/users-guide/quickstart.md | 22 ++++++++++++++++++++ 3 files changed, 33 insertions(+), 8 deletions(-) diff --git a/Docker/dist/docker-compose.yaml b/Docker/dist/docker-compose.yaml index c62fb2ea6..6d3faaf7f 100644 --- a/Docker/dist/docker-compose.yaml +++ b/Docker/dist/docker-compose.yaml @@ -18,6 +18,8 @@ services: environment: - DB_CONNECTION_STRING=mongodb://mongodb:27017/uptime_db - REDIS_HOST=redis + # volumes: + # - /var/run/docker.sock:/var/run/docker.sock:ro redis: image: bluewaveuptime/uptime_redis:latest ports: diff --git a/guides/users-guide/creating-a-new-monitor.md b/guides/users-guide/creating-a-new-monitor.md index 5784d1f41..0135c0b81 100644 --- a/guides/users-guide/creating-a-new-monitor.md +++ b/guides/users-guide/creating-a-new-monitor.md @@ -8,24 +8,25 @@ Creating a new monitor involves a few steps, mentioned below. ### General settings -* **URL to monitor:** Enter the full URL of the website or service you want to monitor. -* **Display name:** Optionally, provide a custom name for your monitor. This helps identify it easily in your dashboard. +- **URL to monitor:** Enter the full URL of the website or service you want to monitor. +- **Display name:** Optionally, provide a custom name for your monitor. This helps identify it easily in your dashboard. ### Checks to perform -* **Website monitoring:** This option uses HTTP(s) to monitor your website or API endpoint. You can choose between HTTPS and HTTP protocols. -* **Ping monitoring:** Checks whether your server is available. This option is currently unselected. +- **Website monitoring:** This option uses HTTP(s) to monitor your website or API endpoint. You can choose between HTTPS and HTTP protocols. +- **Ping monitoring:** Checks whether your server is available. This option is currently unselected. +- **Docker monitoring:** Checks whether a Docker container is running ### Incident notifications When there's a new incident, you can choose how to be notified: -* Notify via SMS (coming soon) -* Notify via email (to the email address you logged in with) -* Notify via email to multiple addresses (coming soon) +- Notify via SMS (coming soon) +- Notify via email (to the email address you logged in with) +- Notify via email to multiple addresses (coming soon) ### Advanced settings -* **Check frequency:** Set how often the system should check your monitor. The current setting is 1 minute. +- **Check frequency:** Set how often the system should check your monitor. The current setting is 1 minute. After configuring all settings, click the "Create monitor" button at the bottom right to set up your new monitor. diff --git a/guides/users-guide/quickstart.md b/guides/users-guide/quickstart.md index 55e23f286..665062bf3 100644 --- a/guides/users-guide/quickstart.md +++ b/guides/users-guide/quickstart.md @@ -10,6 +10,17 @@ icon: sign-posts-wrench 2. Run `docker compose up` to start the application 3. Now the application is running at `http://localhost` +##### Optional Config: + +- If you want to monitor Docker containers, uncomment this line in `docker-compose.yaml`: + +``` + # volumes: + # - /var/run/docker.sock:/var/run/docker.sock:ro +``` + +This gives the app access to your docker daemon via unix socket, please be aware of what you are doing. + --- ## Quickstart for users (remote server) @@ -19,6 +30,17 @@ icon: sign-posts-wrench 3. Run `docker compose up` to start the application 4. Now the application is running at `http://` +##### Optional Config: + +- If you want to monitor Docker containers, uncomment this line in `docker-compose.yaml`: + +``` + # volumes: + # - /var/run/docker.sock:/var/run/docker.sock:ro +``` + +This gives the app access to your docker daemon via unix socket, please be aware of what you are doing. + --- ## Quickstart for developers From f10cd9ff65113374d5bbecc4c1ef4b9a9d56bb47 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 14 Nov 2024 16:04:28 +0000 Subject: [PATCH 4/9] fix(deps): update dependency bullmq to v5.26.1 --- Server/package-lock.json | 8 ++++---- Server/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Server/package-lock.json b/Server/package-lock.json index 22ffaa863..3a7d70c93 100644 --- a/Server/package-lock.json +++ b/Server/package-lock.json @@ -12,7 +12,7 @@ "@sendgrid/mail": "^8.1.3", "axios": "^1.7.2", "bcrypt": "^5.1.1", - "bullmq": "5.25.6", + "bullmq": "5.26.1", "cors": "^2.8.5", "dockerode": "4.0.2", "dotenv": "^16.4.5", @@ -1253,9 +1253,9 @@ } }, "node_modules/bullmq": { - "version": "5.25.6", - "resolved": "https://registry.npmjs.org/bullmq/-/bullmq-5.25.6.tgz", - "integrity": "sha512-jxpa/DB02V20CqBAgyqpQazT630CJm0r4fky8EchH3mcJAomRtKXLS6tRA0J8tb29BDGlr/LXhlUuZwdBJBSdA==", + "version": "5.26.1", + "resolved": "https://registry.npmjs.org/bullmq/-/bullmq-5.26.1.tgz", + "integrity": "sha512-XuxCGFlC1PQ2i1JHQiB9dqkqKQILMwQpU7ipi+cT/dzJaoXVcS0/IByUz6SsZ3xyOQY3twPt6G7J2d5GrsJuEA==", "license": "MIT", "dependencies": { "cron-parser": "^4.6.0", diff --git a/Server/package.json b/Server/package.json index ce34ee0f2..9958512ae 100644 --- a/Server/package.json +++ b/Server/package.json @@ -15,7 +15,7 @@ "@sendgrid/mail": "^8.1.3", "axios": "^1.7.2", "bcrypt": "^5.1.1", - "bullmq": "5.25.6", + "bullmq": "5.26.1", "cors": "^2.8.5", "dockerode": "4.0.2", "dotenv": "^16.4.5", From 88ae68611660df3f6d188fbacdc1f1263460d52e Mon Sep 17 00:00:00 2001 From: Alex Holliday Date: Fri, 15 Nov 2024 15:06:32 +0800 Subject: [PATCH 5/9] Add missing test case for docker monitor type --- Server/tests/db/monitorModule.test.js | 36 +++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/Server/tests/db/monitorModule.test.js b/Server/tests/db/monitorModule.test.js index 189c8a703..d48985d58 100644 --- a/Server/tests/db/monitorModule.test.js +++ b/Server/tests/db/monitorModule.test.js @@ -891,6 +891,18 @@ describe("monitorModule", () => { url: "https://test.com", }), }; + const mockMonitorDocker = { + _id: "monitor123", + type: "docker", + name: "Test Monitor", + url: "https://test.com", + toObject: () => ({ + _id: "monitor123", + type: "http", + name: "Test Monitor", + url: "https://test.com", + }), + }; const checkDocs = [ { @@ -1004,6 +1016,30 @@ describe("monitorModule", () => { expect(result.periodUptime).to.be.a("number"); expect(result.aggregateData).to.be.an("array"); }); + it("should return monitor stats with calculated values, docker type", async () => { + monitorFindByIdStub.returns(mockMonitorDocker); + req.query.sortOrder = "desc"; + const result = await getMonitorStatsById(req); + expect(result).to.include.keys([ + "_id", + "type", + "name", + "url", + "uptimeDuration", + "lastChecked", + "latestResponseTime", + "periodIncidents", + "periodTotalChecks", + "periodAvgResponseTime", + "periodUptime", + "aggregateData", + ]); + expect(result.latestResponseTime).to.equal(100); + expect(result.periodTotalChecks).to.equal(3); + expect(result.periodIncidents).to.equal(1); + expect(result.periodUptime).to.be.a("number"); + expect(result.aggregateData).to.be.an("array"); + }); it("should return monitor stats with calculated values", async () => { req.query.sortOrder = "asc"; const result = await getMonitorStatsById(req); From e7a6033fd161aa503c84aebbc9988965786dbdc2 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 15 Nov 2024 10:42:50 +0000 Subject: [PATCH 6/9] fix(deps): update dependency bullmq to v5.26.2 --- Server/package-lock.json | 8 ++++---- Server/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Server/package-lock.json b/Server/package-lock.json index 045a1508d..810240a29 100644 --- a/Server/package-lock.json +++ b/Server/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "axios": "^1.7.2", "bcrypt": "^5.1.1", - "bullmq": "5.26.1", + "bullmq": "5.26.2", "cors": "^2.8.5", "dockerode": "4.0.2", "dotenv": "^16.4.5", @@ -1217,9 +1217,9 @@ } }, "node_modules/bullmq": { - "version": "5.26.1", - "resolved": "https://registry.npmjs.org/bullmq/-/bullmq-5.26.1.tgz", - "integrity": "sha512-XuxCGFlC1PQ2i1JHQiB9dqkqKQILMwQpU7ipi+cT/dzJaoXVcS0/IByUz6SsZ3xyOQY3twPt6G7J2d5GrsJuEA==", + "version": "5.26.2", + "resolved": "https://registry.npmjs.org/bullmq/-/bullmq-5.26.2.tgz", + "integrity": "sha512-UdHBrJoRkpXoF8b/FVEkuRBnaUZoA7+qHQNyTx1n2oNVZ4iWxqGqss+M9xAwXOpBmSNvOSlaBdHpf+5QJTU8GQ==", "license": "MIT", "dependencies": { "cron-parser": "^4.6.0", diff --git a/Server/package.json b/Server/package.json index acd0e4ee0..14c5c93fe 100644 --- a/Server/package.json +++ b/Server/package.json @@ -14,7 +14,7 @@ "dependencies": { "axios": "^1.7.2", "bcrypt": "^5.1.1", - "bullmq": "5.26.1", + "bullmq": "5.26.2", "cors": "^2.8.5", "dockerode": "4.0.2", "dotenv": "^16.4.5", From 6780374e1669c69f5acef412247a652da5f53408 Mon Sep 17 00:00:00 2001 From: Caio Cabral Date: Fri, 15 Nov 2024 18:10:10 -0500 Subject: [PATCH 7/9] fix: input focus and input error message --- Client/src/Components/Inputs/Field/index.jsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Client/src/Components/Inputs/Field/index.jsx b/Client/src/Components/Inputs/Field/index.jsx index ccb0c1e37..0e558c197 100644 --- a/Client/src/Components/Inputs/Field/index.jsx +++ b/Client/src/Components/Inputs/Field/index.jsx @@ -67,7 +67,7 @@ const Field = forwardRef( borderColor: theme.palette.border.dark, }, "&:has(.input-error) .MuiOutlinedInput-root fieldset": { - borderColor: theme.palette.error.contrastText, + borderColor: theme.palette.error.main, }, display: hidden ? "none" : "", }} @@ -83,7 +83,7 @@ const Field = forwardRef( * @@ -189,7 +189,7 @@ const Field = forwardRef( Date: Fri, 15 Nov 2024 18:25:11 -0500 Subject: [PATCH 8/9] fix: disabled labels --- Client/src/Components/Inputs/Checkbox/index.jsx | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Client/src/Components/Inputs/Checkbox/index.jsx b/Client/src/Components/Inputs/Checkbox/index.jsx index 7d9a31bd3..a0348dedf 100644 --- a/Client/src/Components/Inputs/Checkbox/index.jsx +++ b/Client/src/Components/Inputs/Checkbox/index.jsx @@ -37,6 +37,7 @@ const Checkbox = ({ onChange, isDisabled, }) => { + /* TODO move sizes to theme */ const sizes = { small: "14px", medium: "16px", large: "18px" }; const theme = useTheme(); @@ -78,6 +79,10 @@ const Checkbox = ({ fontSize: 13, color: theme.palette.text.tertiary, }, + ".MuiFormControlLabel-label.Mui-disabled": { + color: theme.palette.text.tertiary, + opacity: 0.25, + }, }} /> ); From bd4090db2c25bb6e5d4623ca946845e496769948 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mert=20=C5=9Ei=C5=9Fmano=C4=9Flu?= Date: Sat, 16 Nov 2024 02:36:58 +0300 Subject: [PATCH 9/9] fix: Remove top level package-lock.json --- package-lock.json | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 package-lock.json diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index f71a78c1f..000000000 --- a/package-lock.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "bluewave-uptime", - "lockfileVersion": 3, - "requires": true, - "packages": {} -}