diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index ed44d737e2..777a839a70 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -7,8 +7,7 @@ on:
branches:
- '**'
env:
- COVERAGE_OPTION: ./node_modules/.bin/nyc
- NODE_VERSION: 14.16.0
+ NODE_VERSION: 14.16.1
PARSE_SERVER_TEST_TIMEOUT: 20000
jobs:
check-ci:
@@ -76,42 +75,42 @@ jobs:
strategy:
matrix:
include:
- - name: Mongo 4.4, ReplicaSet, WiredTiger
+ - name: MongoDB 4.4, ReplicaSet, WiredTiger
MONGODB_VERSION: 4.4.4
MONGODB_TOPOLOGY: replicaset
MONGODB_STORAGE_ENGINE: wiredTiger
- NODE_VERSION: 14.16.0
- - name: Mongo 4.2, ReplicaSet, WiredTiger
+ NODE_VERSION: 14.16.1
+ - name: MongoDB 4.2, ReplicaSet, WiredTiger
MONGODB_VERSION: 4.2.13
MONGODB_TOPOLOGY: replicaset
MONGODB_STORAGE_ENGINE: wiredTiger
- NODE_VERSION: 14.16.0
- - name: Mongo 4.0, ReplicaSet, WiredTiger
+ NODE_VERSION: 14.16.1
+ - name: MongoDB 4.0, ReplicaSet, WiredTiger
MONGODB_VERSION: 4.0.23
MONGODB_TOPOLOGY: replicaset
MONGODB_STORAGE_ENGINE: wiredTiger
- NODE_VERSION: 14.16.0
- - name: Mongo 4.0, Standalone, MMAPv1
+ NODE_VERSION: 14.16.1
+ - name: MongoDB 4.0, Standalone, MMAPv1
MONGODB_VERSION: 4.0.23
MONGODB_TOPOLOGY: standalone
MONGODB_STORAGE_ENGINE: mmapv1
- NODE_VERSION: 14.16.0
+ NODE_VERSION: 14.16.1
- name: Redis Cache
PARSE_SERVER_TEST_CACHE: redis
MONGODB_VERSION: 4.4.4
MONGODB_TOPOLOGY: standalone
MONGODB_STORAGE_ENGINE: wiredTiger
- NODE_VERSION: 14.16.0
+ NODE_VERSION: 14.16.1
- name: Node 12
MONGODB_VERSION: 4.4.4
MONGODB_TOPOLOGY: standalone
MONGODB_STORAGE_ENGINE: wiredTiger
- NODE_VERSION: 12.22.0
+ NODE_VERSION: 12.22.1
- name: Node 15
MONGODB_VERSION: 4.4.4
MONGODB_TOPOLOGY: standalone
MONGODB_STORAGE_ENGINE: wiredTiger
- NODE_VERSION: 15.13.0
+ NODE_VERSION: 15.14.0
fail-fast: false
name: ${{ matrix.name }}
timeout-minutes: 15
@@ -151,15 +150,13 @@ jobs:
strategy:
matrix:
include:
- - name: Postgres 10, Postgis 3.1
- POSTGRES_IMAGE: postgis/postgis:10-3.1
- - name: Postgres 11, Postgis 3.1
+ - name: PostgreSQL 11, PostGIS 3.0
+ POSTGRES_IMAGE: postgis/postgis:11-3.0
+ - name: PostgreSQL 11, PostGIS 3.1
POSTGRES_IMAGE: postgis/postgis:11-3.1
- - name: Postgres 12, Postgis 3.1
+ - name: PostgreSQL 12, PostGIS 3.1
POSTGRES_IMAGE: postgis/postgis:12-3.1
- - name: Postgres 12, Postgis 3.0
- POSTGRES_IMAGE: postgis/postgis:12-3.0
- - name: Postgres 13, Postgis 3.1
+ - name: PostgreSQL 13, PostGIS 3.1
POSTGRES_IMAGE: postgis/postgis:13-3.1
fail-fast: false
name: ${{ matrix.name }}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 40be52734a..67cebb83f5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -86,18 +86,20 @@ Jump directly to a version:
___
+
## Unreleased (Master Branch)
[Full Changelog](https://github.com/parse-community/parse-server/compare/4.5.0...master)
### Breaking Changes
- Improved schema caching through database real-time hooks. Reduces DB queries, decreases Parse Query execution time and fixes a potential schema memory leak. If multiple Parse Server instances connect to the same DB (for example behind a load balancer), set the [Parse Server Option](https://parseplatform.org/parse-server/api/master/ParseServerOptions.html) `databaseOptions.enableSchemaHooks: true` to enable this feature and keep the schema in sync across all instances. Failing to do so will cause a schema change to not propagate to other instances and re-syncing will only happen when these instances restart. The options `enableSingleSchemaCache` and `schemaCacheTTL` have been removed. To use this feature with MongoDB, a replica set cluster with [change stream](https://docs.mongodb.com/manual/changeStreams/#availability) support is required. (Diamond Lewis, SebC) [#7214](https://github.com/parse-community/parse-server/issues/7214)
- Added file upload restriction. File upload is now only allowed for authenticated users by default for improved security. To allow file upload also for Anonymous Users or Public, set the `fileUpload` parameter in the [Parse Server Options](https://parseplatform.org/parse-server/api/master/ParseServerOptions.html) (dblythy, Manuel Trezza) [#7071](https://github.com/parse-community/parse-server/pull/7071)
- Removed [parse-server-simple-mailgun-adapter](https://github.com/parse-community/parse-server-simple-mailgun-adapter) dependency; to continue using the adapter it has to be explicitly installed (Manuel Trezza) [#7321](https://github.com/parse-community/parse-server/pull/7321)
+- Remove support for MongoDB 3.6 which has reached its End-of-Life date and PostgreSQL 10 (Manuel Trezza) [#7315](https://github.com/parse-community/parse-server/pull/7315)
+- Remove support for Node 10 which has reached its End-of-Life date (Manuel Trezza) [#7314](https://github.com/parse-community/parse-server/pull/7314)
### Notable Changes
- Added Parse Server Security Check to report weak security settings (Manuel Trezza, dblythy) [#7247](https://github.com/parse-community/parse-server/issues/7247)
- EXPERIMENTAL: Added new page router with placeholder rendering and localization of custom and feature pages such as password reset and email verification (Manuel Trezza) [#6891](https://github.com/parse-community/parse-server/issues/6891)
- EXPERIMENTAL: Added custom routes to easily customize flows for password reset, email verification or build entirely new flows (Manuel Trezza) [#7231](https://github.com/parse-community/parse-server/issues/7231)
-- Remove support for Node 10 which has reached its End-of-Life support date (Manuel Trezza) [#7314](https://github.com/parse-community/parse-server/pull/7314)
-- Remove support for MongoDB 3.6 which has reached its End-of-Life support date (Manuel Trezza) [#7315](https://github.com/parse-community/parse-server/pull/7315)
+- Added Deprecation Policy to govern the introduction of braking changes in a phased pattern that is more predictable for developers (Manuel Trezza) [#7199](https://github.com/parse-community/parse-server/pull/7199)
### Other Changes
- Fix error when a not yet inserted job is updated (Antonio Davi Macedo Coelho de Castro) [#7196](https://github.com/parse-community/parse-server/pull/7196)
- request.context for afterFind triggers (dblythy) [#7078](https://github.com/parse-community/parse-server/pull/7078)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index c2254e4cc9..a761f91955 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -11,6 +11,8 @@
- [Please Do's](#please-dos)
- [Test against Postgres](#test-against-postgres)
- [Postgres with Docker](#postgres-with-docker)
+- [Breaking Changes](#breaking-changes)
+ - [Deprecation Policy](#deprecation-policy)
- [Feature Considerations](#feature-considerations)
- [Security Checks](#security-checks)
- [Add Security Check](#add-security-check)
@@ -58,7 +60,7 @@ Most importantly, with every contribution you improve your skills so that future
### Recommended Tools
-* [vscode](https://code.visualstudio.com), the popular IDE.
+* [Visual Studio Code](https://code.visualstudio.com), the popular IDE.
* [Jasmine Test Explorer](https://marketplace.visualstudio.com/items?itemName=hbenl.vscode-jasmine-test-adapter), a very practical test exploration plugin which let you run, debug and see the test results inline.
### Setting up your local machine
@@ -164,6 +166,31 @@ RUN chmod +x /docker-entrypoint-initdb.d/setup-dbs.sh
Note that the script above will ONLY be executed during initialization of the container with no data in the database, see the official [Postgres image](https://hub.docker.com/_/postgres) for details. If you want to use the script to run again be sure there is no data in the /var/lib/postgresql/data of the container.
+## Breaking Changes
+
+Breaking changes should be avoided whenever possible. For a breaking change to be accepted, the benefits of the change have to clearly outweigh the costs of developers having to adapt their deployments. If a breaking change is only cosmetic it will likely be rejected and preferred to become obsolete organically during the course of further development, unless it is required as part of a larger change. Breaking changes should follow the [Deprecation Policy](#deprecation-policy).
+
+Please consider that Parse Server is just one component in a stack that requires attention. A breaking change requires resources and effort to adapt an environment. An unnecessarily high frequency of breaking changes can have detrimental side effects such as:
+- "upgrade fatigue" where developers run old versions of Parse Server because they cannot always attend to every update that contains a breaking change
+- less secure Parse Server deployments that run on old versions which is contrary to the security evangelism Parse Server intends to facilitate for developers
+- less feedback and slower identification of bugs and an overall slow-down of Parse Server development because new versions with breaking changes also include new features we want to get feedback on
+
+### Deprecation Policy
+
+If you change or remove an existing feature that would lead to a breaking change, use the following deprecation pattern:
+ - Make the new feature or change optional, if necessary with a new Parse Server option parameter.
+ - Use a default value that falls back to existing behavior.
+ - Add a deprecation definition in `Deprecator/Deprecations.js` that will output a deprecation warning log message on Parse Server launch, for example:
+ > DeprecationWarning: The Parse Server option 'example' will be removed in a future release.
+
+Deprecations become breaking changes after notifying developers through deprecation warnings for at least one entire previous major release. For example:
+ - `4.5.0` is the current version
+ - `4.6.0` adds a new optional feature and a deprecation warning for the existing feature
+ - `5.0.0` marks the beginning of logging the deprecation warning for one entire major release
+ - `6.0.0` makes the breaking change by removing the deprecation warning and making the new feature replace the existing feature
+
+Developer feedback during the deprecation period may further postpone the introduction of a breaking change.
+
## Feature Considerations
### Security Checks
diff --git a/README.md b/README.md
index 187cc77a47..d52ea5c869 100644
--- a/README.md
+++ b/README.md
@@ -19,7 +19,7 @@
-
+
Our Sponsors
@@ -112,30 +112,29 @@ Before you start make sure you have installed:
#### Node.js
Parse Server is continuously tested with the most recent releases of Node.js to ensure compatibility. We follow the [Node.js Long Term Support plan](https://github.com/nodejs/Release) and only test against versions that are officially supported and have not reached their end-of-life date.
-| Version | Latest Patch Version | End-of-Life Date | Compatibility |
-|------------|----------------------|------------------|--------------------|
-| Node.js 12 | 12.22.0 | April 2022 | ✅ Fully compatible |
-| Node.js 14 | 14.16.0 | April 2023 | ✅ Fully compatible |
-| Node.js 15 | 15.13.0 | June 2021 | ✅ Fully compatible |
+| Version | Latest Version | End-of-Life Date | Compatibility |
+|------------|----------------|------------------|--------------------|
+| Node.js 12 | 12.22.1 | April 2022 | ✅ Fully compatible |
+| Node.js 14 | 14.16.1 | April 2023 | ✅ Fully compatible |
+| Node.js 15 | 15.14.0 | June 2021 | ✅ Fully compatible |
#### MongoDB
Parse Server is continuously tested with the most recent releases of MongoDB to ensure compatibility. We follow the [MongoDB support schedule](https://www.mongodb.com/support-policy) and only test against versions that are officially supported and have not reached their end-of-life date.
-| Version | Latest Patch Version | End-of-Life Date | Compatibility |
-|-------------|----------------------|------------------|--------------------|
-| MongoDB 4.0 | 4.0.23 | January 2022 | ✅ Fully compatible |
-| MongoDB 4.2 | 4.2.13 | TBD | ✅ Fully compatible |
-| MongoDB 4.4 | 4.4.4 | TBD | ✅ Fully compatible |
+| Version | Latest Version | End-of-Life Date | Compatibility |
+|-------------|----------------|------------------|--------------------|
+| MongoDB 4.0 | 4.0.23 | January 2022 | ✅ Fully compatible |
+| MongoDB 4.2 | 4.2.13 | TBD | ✅ Fully compatible |
+| MongoDB 4.4 | 4.4.4 | TBD | ✅ Fully compatible |
#### PostgreSQL
-Parse Server is continuously tested with the most recent releases of PostgreSQL and PostGIS to ensure compatibility. We follow the [PostGIS docker tags](https://registry.hub.docker.com/r/postgis/postgis/tags?page=1&ordering=last_updated) and only test against versions that are officially supported and have not reached their end-of-life date.
-
-| Version | PostGIS Version | End-of-Life Date | Compatibility |
-|---------------|-----------------|------------------|--------------------|
-| Postgres 10.x | 3.0.x, 3.1.x | November 2022 | ✅ Fully compatible |
-| Postgres 11.x | 3.0.x, 3.1.x | November 2023 | ✅ Fully compatible |
-| Postgres 12.x | 3.0.x, 3.1.x | November 2024 | ✅ Fully compatible |
-| Postgres 13.x | 3.0.x, 3.1.x | November 2025 | ✅ Fully compatible |
+Parse Server is continuously tested with the most recent releases of PostgreSQL and PostGIS to ensure compatibility, using [PostGIS docker images](https://registry.hub.docker.com/r/postgis/postgis/tags?page=1&ordering=last_updated). We follow the [PostgreSQL support schedule](https://www.postgresql.org/support/versioning) and [PostGIS support schedule](https://www.postgis.net/eol_policy/) and only test against versions that are officially supported and have not reached their end-of-life date. Due to the extensive PostgreSQL support duration of 5 years, Parse Server drops support if a version is older than 3.5 years and a newer version has been available for at least 2.5 years.
+
+| Version | PostGIS Version | End-of-Life Date | Parse Server Support End | Compatibility |
+|-------------|-----------------|------------------|--------------------------|--------------------|
+| Postgres 11 | 3.0, 3.1 | November 2023 | April 2022 | ✅ Fully compatible |
+| Postgres 12 | 3.1 | November 2024 | April 2023 | ✅ Fully compatible |
+| Postgres 13 | 3.1 | November 2025 | April 2024 | ✅ Fully compatible |
### Locally
```bash
diff --git a/package-lock.json b/package-lock.json
index d064d27a43..fab2525abf 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -167,9 +167,9 @@
}
},
"@babel/compat-data": {
- "version": "7.13.12",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.13.12.tgz",
- "integrity": "sha512-3eJJ841uKxeV8dcN/2yGEUy+RfgQspPEgQat85umsE1rotuquQ2AbIub4S6j7c50a2d+4myc+zSlnXeIHrOnhQ==",
+ "version": "7.13.15",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.13.15.tgz",
+ "integrity": "sha512-ltnibHKR1VnrU4ymHyQ/CXtNXI6yZC0oJThyW78Hft8XndANwi+9H+UIklBDraIjFEJzw8wmcM427oDd9KS5wA==",
"dev": true
},
"@babel/core": {
@@ -477,15 +477,15 @@
}
},
"@babel/parser": {
- "version": "7.13.13",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.13.tgz",
- "integrity": "sha512-OhsyMrqygfk5v8HmWwOzlYjJrtLaFhF34MrfG/Z73DgYCI6ojNUTUp2TYbtnjo8PegeJp12eamsNettCQjKjVw==",
+ "version": "7.13.15",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.15.tgz",
+ "integrity": "sha512-b9COtcAlVEQljy/9fbcMHpG+UIW9ReF+gpaxDHTlZd0c6/UU9ng8zdySAW9sRTzpvcdCHn6bUcbuYUgGzLAWVQ==",
"dev": true
},
"@babel/plugin-proposal-async-generator-functions": {
- "version": "7.13.8",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.8.tgz",
- "integrity": "sha512-rPBnhj+WgoSmgq+4gQUtXx/vOcU+UYtjy1AA/aeD61Hwj410fwYyqfUcRP3lR8ucgliVJL/G7sXcNUecC75IXA==",
+ "version": "7.13.15",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.15.tgz",
+ "integrity": "sha512-VapibkWzFeoa6ubXy/NgV5U2U4MVnUlvnx6wo1XhlsaTrLYWE0UFpDQsVrmn22q5CzeloqJ8gEMHSKxuee6ZdA==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.13.0",
@@ -934,9 +934,9 @@
}
},
"@babel/plugin-transform-regenerator": {
- "version": "7.12.13",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.13.tgz",
- "integrity": "sha512-lxb2ZAvSLyJ2PEe47hoGWPmW22v7CtSl9jW8mingV4H2sEX/JOcrAj2nPuGWi56ERUm2bUpjKzONAuT6HCn2EA==",
+ "version": "7.13.15",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.13.15.tgz",
+ "integrity": "sha512-Bk9cOLSz8DiurcMETZ8E2YtIVJbFCPGW28DJWUakmyVWtQSm6Wsf0p4B4BfEr/eL2Nkhe/CICiUiMOCi1TPhuQ==",
"dev": true,
"requires": {
"regenerator-transform": "^0.14.2"
@@ -1138,17 +1138,17 @@
}
},
"@babel/traverse": {
- "version": "7.13.13",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.13.tgz",
- "integrity": "sha512-CblEcwmXKR6eP43oQGG++0QMTtCjAsa3frUuzHoiIJWpaIIi8dwMyEFUJoXRLxagGqCK+jALRwIO+o3R9p/uUg==",
+ "version": "7.13.15",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.15.tgz",
+ "integrity": "sha512-/mpZMNvj6bce59Qzl09fHEs8Bt8NnpEDQYleHUPZQ3wXUMvXi+HJPLars68oAbmp839fGoOkv2pSL2z9ajCIaQ==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.12.13",
"@babel/generator": "^7.13.9",
"@babel/helper-function-name": "^7.12.13",
"@babel/helper-split-export-declaration": "^7.12.13",
- "@babel/parser": "^7.13.13",
- "@babel/types": "^7.13.13",
+ "@babel/parser": "^7.13.15",
+ "@babel/types": "^7.13.14",
"debug": "^4.1.0",
"globals": "^11.1.0"
},
@@ -3468,9 +3468,9 @@
"dev": true
},
"caniuse-lite": {
- "version": "1.0.30001207",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001207.tgz",
- "integrity": "sha512-UPQZdmAsyp2qfCTiMU/zqGSWOYaY9F9LL61V8f+8MrubsaDGpaHD9HRV/EWZGULZn0Hxu48SKzI5DgFwTvHuYw==",
+ "version": "1.0.30001208",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001208.tgz",
+ "integrity": "sha512-OE5UE4+nBOro8Dyvv0lfx+SRtfVIOM9uhKqFmJeUbGriqhhStgp1A0OyBpgy3OUF8AhYCT+PVwPC1gMl2ZcQMA==",
"dev": true
},
"caseless": {
@@ -5013,9 +5013,9 @@
"integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
},
"electron-to-chromium": {
- "version": "1.3.710",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.710.tgz",
- "integrity": "sha512-b3r0E2o4yc7mNmBeJviejF1rEx49PUBi+2NPa7jHEX3arkAXnVgLhR0YmV8oi6/Qf3HH2a8xzQmCjHNH0IpXWQ==",
+ "version": "1.3.711",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.711.tgz",
+ "integrity": "sha512-XbklBVCDiUeho0PZQCjC25Ha6uBwqqJeyDhPLwLwfWRAo4x+FZFsmu1pPPkXT+B4MQMQoQULfyaMltDopfeiHQ==",
"dev": true
},
"elegant-spinner": {
@@ -7024,14 +7024,6 @@
"requires": {
"parent-module": "^1.0.0",
"resolve-from": "^4.0.0"
- },
- "dependencies": {
- "resolve-from": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
- "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
- "dev": true
- }
}
},
"imurmurhash": {
@@ -9168,14 +9160,14 @@
"integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ=="
},
"mongodb": {
- "version": "3.6.3",
- "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.6.3.tgz",
- "integrity": "sha512-rOZuR0QkodZiM+UbQE5kDsJykBqWi0CL4Ec2i1nrGrUI3KO11r6Fbxskqmq3JK2NH7aW4dcccBuUujAP0ERl5w==",
+ "version": "3.6.6",
+ "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.6.6.tgz",
+ "integrity": "sha512-WlirMiuV1UPbej5JeCMqE93JRfZ/ZzqE7nJTwP85XzjAF4rRSeq2bGCb1cjfoHLOF06+HxADaPGqT0g3SbVT1w==",
"requires": {
"bl": "^2.2.1",
"bson": "^1.1.4",
"denque": "^1.4.1",
- "require_optional": "^1.0.1",
+ "optional-require": "^1.0.2",
"safe-buffer": "^5.1.2",
"saslprep": "^1.0.0"
}
@@ -9869,6 +9861,11 @@
"@wry/trie": "^0.3.0"
}
},
+ "optional-require": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/optional-require/-/optional-require-1.0.2.tgz",
+ "integrity": "sha512-HZubVd6IfHsbnpdNF/ICaSAzBUEW1TievpkjY3tB4Jnk8L7+pJ3conPzUt3Mn/6OZx9uzTDOHYPGA8/AxYHBOg=="
+ },
"optionator": {
"version": "0.8.3",
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
@@ -10890,9 +10887,9 @@
"optional": true
},
"repeat-element": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
- "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==",
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz",
+ "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==",
"dev": true,
"optional": true
},
@@ -10963,15 +10960,23 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz",
"integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==",
+ "dev": true,
"requires": {
"resolve-from": "^2.0.0",
"semver": "^5.1.0"
},
"dependencies": {
+ "resolve-from": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz",
+ "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=",
+ "dev": true
+ },
"semver": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
}
}
},
@@ -11017,9 +11022,10 @@
"dev": true
},
"resolve-from": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz",
- "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c="
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "dev": true
},
"resolve-url": {
"version": "0.2.1",
@@ -12653,14 +12659,14 @@
}
},
"winston-daily-rotate-file": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/winston-daily-rotate-file/-/winston-daily-rotate-file-4.5.0.tgz",
- "integrity": "sha512-/HqeWiU48dzGqcrABRlxYWVMdL6l3uKCtFSJyrqK+E2rLnSFNsgYpvwx15EgTitBLNzH69lQd/+z2ASryV2aqw==",
+ "version": "4.5.1",
+ "resolved": "https://registry.npmjs.org/winston-daily-rotate-file/-/winston-daily-rotate-file-4.5.1.tgz",
+ "integrity": "sha512-Uv1KeBneTKFZ9R3J6SmI61vOoPEofxS+GZGEwYRPc7QFE1fpEz648eGWxLnOeo8CBrANwsd+GfK5DCd4Ab1xAQ==",
"requires": {
"file-stream-rotator": "^0.5.7",
"object-hash": "^2.0.1",
"triple-beam": "^1.3.0",
- "winston-transport": "^4.2.0"
+ "winston-transport": "^4.4.0"
}
},
"winston-transport": {
diff --git a/package.json b/package.json
index a86b146558..473ca03793 100644
--- a/package.json
+++ b/package.json
@@ -46,7 +46,7 @@
"lodash": "4.17.21",
"lru-cache": "5.1.1",
"mime": "2.5.2",
- "mongodb": "3.6.3",
+ "mongodb": "3.6.6",
"mustache": "4.1.0",
"parse": "3.1.0",
"pg-monitor": "1.4.1",
@@ -58,7 +58,7 @@
"tv4": "1.3.0",
"uuid": "8.3.2",
"winston": "3.3.3",
- "winston-daily-rotate-file": "4.5.0",
+ "winston-daily-rotate-file": "4.5.1",
"ws": "7.4.4"
},
"devDependencies": {
diff --git a/resources/ci/CiVersionCheck.js b/resources/ci/CiVersionCheck.js
index 763d907355..098dee59d3 100644
--- a/resources/ci/CiVersionCheck.js
+++ b/resources/ci/CiVersionCheck.js
@@ -193,6 +193,13 @@ class CiVersionCheck {
? '^'
: '~'
const latest = semver.maxSatisfying(versions, `${operator}${version}`);
+
+ // If the version should be ignored, skip it
+ if (this.ignoreReleasedVersions.length > 0 && semver.satisfies(latest, this.ignoreReleasedVersions.join(' || '))) {
+ return undefined;
+ }
+
+ // Return the latest version if it is newer than any currently used version
return semver.gt(latest, version) ? latest : undefined;
}
diff --git a/resources/ci/ciCheck.js b/resources/ci/ciCheck.js
index ed94af7a9b..f0f6e8ded1 100644
--- a/resources/ci/ciCheck.js
+++ b/resources/ci/ciCheck.js
@@ -33,10 +33,12 @@ async function checkMongoDbVersions() {
releasedVersions,
latestComponent: CiVersionCheck.versionComponents.path,
ignoreReleasedVersions: [
- '<4.0.0', // These versions have reached their MongoDB end-of-life support date
- '~4.1.0', // This is a development release according to MongoDB support
- '~4.3.0', // This is a development release according to MongoDB support
- '~4.7.0', // This is a development release according to MongoDB support
+ '<4.0.0', // Versions reached their MongoDB end-of-life support date
+ '~4.1.0', // Development release according to MongoDB support
+ '~4.3.0', // Development release according to MongoDB support
+ '~4.7.0', // Development release according to MongoDB support
+
+ '4.4.5', // Temporarily disabled because not yet available for download via mongodb-runner
],
}).check();
}