Skip to content

Commit 874f553

Browse files
authored
Merge branch 'master' into flow-to-ts
2 parents 7803a94 + c66a39f commit 874f553

36 files changed

+2175
-742
lines changed

.github/workflows/ci.yml

Lines changed: 26 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ on:
77
branches:
88
- '**'
99
env:
10-
NODE_VERSION: 14.16.1
10+
NODE_VERSION: 14.17.5
1111
PARSE_SERVER_TEST_TIMEOUT: 20000
1212
jobs:
1313
check-ci:
@@ -93,39 +93,44 @@ jobs:
9393
strategy:
9494
matrix:
9595
include:
96+
- name: MongoDB 5.0, ReplicaSet, WiredTiger
97+
MONGODB_VERSION: 5.0.2
98+
MONGODB_TOPOLOGY: replicaset
99+
MONGODB_STORAGE_ENGINE: wiredTiger
100+
NODE_VERSION: 14.17.5
96101
- name: MongoDB 4.4, ReplicaSet, WiredTiger
97-
MONGODB_VERSION: 4.4.4
102+
MONGODB_VERSION: 4.4.8
98103
MONGODB_TOPOLOGY: replicaset
99104
MONGODB_STORAGE_ENGINE: wiredTiger
100-
NODE_VERSION: 14.16.1
105+
NODE_VERSION: 14.17.5
101106
- name: MongoDB 4.2, ReplicaSet, WiredTiger
102-
MONGODB_VERSION: 4.2.13
107+
MONGODB_VERSION: 4.2.15
103108
MONGODB_TOPOLOGY: replicaset
104109
MONGODB_STORAGE_ENGINE: wiredTiger
105-
NODE_VERSION: 14.16.1
110+
NODE_VERSION: 14.17.5
106111
- name: MongoDB 4.0, ReplicaSet, WiredTiger
107-
MONGODB_VERSION: 4.0.23
112+
MONGODB_VERSION: 4.0.25
108113
MONGODB_TOPOLOGY: replicaset
109114
MONGODB_STORAGE_ENGINE: wiredTiger
110-
NODE_VERSION: 14.16.1
115+
NODE_VERSION: 14.17.5
111116
- name: MongoDB 4.0, Standalone, MMAPv1
112-
MONGODB_VERSION: 4.0.23
117+
MONGODB_VERSION: 4.0.25
113118
MONGODB_TOPOLOGY: standalone
114119
MONGODB_STORAGE_ENGINE: mmapv1
115-
NODE_VERSION: 14.16.1
120+
NODE_VERSION: 14.17.5
116121
- name: Redis Cache
117122
PARSE_SERVER_TEST_CACHE: redis
118-
MONGODB_VERSION: 4.4.4
123+
MONGODB_VERSION: 4.4.8
119124
MONGODB_TOPOLOGY: standalone
120125
MONGODB_STORAGE_ENGINE: wiredTiger
121-
NODE_VERSION: 14.16.1
126+
NODE_VERSION: 14.17.5
122127
- name: Node 12
123-
MONGODB_VERSION: 4.4.4
128+
MONGODB_VERSION: 4.4.8
124129
MONGODB_TOPOLOGY: standalone
125130
MONGODB_STORAGE_ENGINE: wiredTiger
126-
NODE_VERSION: 12.22.1
131+
NODE_VERSION: 12.22.5
127132
- name: Node 15
128-
MONGODB_VERSION: 4.4.4
133+
MONGODB_VERSION: 4.4.8
129134
MONGODB_TOPOLOGY: standalone
130135
MONGODB_STORAGE_ENGINE: wiredTiger
131136
NODE_VERSION: 15.14.0
@@ -170,12 +175,16 @@ jobs:
170175
include:
171176
- name: PostgreSQL 11, PostGIS 3.0
172177
POSTGRES_IMAGE: postgis/postgis:11-3.0
178+
NODE_VERSION: 14.17.5
173179
- name: PostgreSQL 11, PostGIS 3.1
174180
POSTGRES_IMAGE: postgis/postgis:11-3.1
181+
NODE_VERSION: 14.17.5
175182
- name: PostgreSQL 12, PostGIS 3.1
176183
POSTGRES_IMAGE: postgis/postgis:12-3.1
184+
NODE_VERSION: 14.17.5
177185
- name: PostgreSQL 13, PostGIS 3.1
178186
POSTGRES_IMAGE: postgis/postgis:13-3.1
187+
NODE_VERSION: 14.17.5
179188
fail-fast: false
180189
name: ${{ matrix.name }}
181190
timeout-minutes: 15
@@ -199,12 +208,13 @@ jobs:
199208
env:
200209
PARSE_SERVER_TEST_DB: postgres
201210
PARSE_SERVER_TEST_DATABASE_URI: postgres://postgres:postgres@localhost:5432/parse_server_postgres_adapter_test_database
211+
NODE_VERSION: ${{ matrix.NODE_VERSION }}
202212
steps:
203213
- uses: actions/checkout@v2
204-
- name: Use Node.js 10
214+
- name: Use Node.js ${{ matrix.NODE_VERSION }}
205215
uses: actions/setup-node@v1
206216
with:
207-
node-version: 10
217+
node-version: ${{ matrix.NODE_VERSION }}
208218
- name: Cache Node.js modules
209219
uses: actions/cache@v2
210220
with:

CHANGELOG.md

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -95,13 +95,17 @@ ___
9595
- 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)
9696
- 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)
9797
- 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)
98-
- Remove S3 Files Adapter from Parse Server, instead install separately as `@parse/s3-files-adapter` (Manuel Trezza) [#?](https://github.com/parse-community/parse-server/pull/?)
98+
- Remove S3 Files Adapter from Parse Server, instead install separately as `@parse/s3-files-adapter` (Manuel Trezza) [#7324](https://github.com/parse-community/parse-server/pull/7324)
9999
### Notable Changes
100100
- Added Parse Server Security Check to report weak security settings (Manuel Trezza, dblythy) [#7247](https://github.com/parse-community/parse-server/issues/7247)
101-
- 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)
102-
- 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)
103-
- 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)
101+
- EXPERIMENTAL: Added new page router with placeholder rendering and localization of custom and feature pages such as password reset and email verification (Manuel Trezza) [#7128](https://github.com/parse-community/parse-server/pull/7128)
102+
- 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/pull/7231)
103+
- Added Deprecation Policy to govern the introduction of breaking changes in a phased pattern that is more predictable for developers (Manuel Trezza) [#7199](https://github.com/parse-community/parse-server/pull/7199)
104+
- Add REST API endpoint `/loginAs` to create session of any user with master key; allows to impersonate another user. (GormanFletcher) [#7406](https://github.com/parse-community/parse-server/pull/7406)
105+
- Add official support for MongoDB 5.0 (Manuel Trezza) [#7469](https://github.com/parse-community/parse-server/pull/7469)
106+
104107
### Other Changes
108+
- Support native mongodb syntax in aggregation pipelines (Raschid JF Rafeally) [#7339](https://github.com/parse-community/parse-server/pull/7339)
105109
- 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)
106110
- request.context for afterFind triggers (dblythy) [#7078](https://github.com/parse-community/parse-server/pull/7078)
107111
- Winston Logger interpolating stdout to console (dplewis) [#7114](https://github.com/parse-community/parse-server/pull/7114)
@@ -130,6 +134,12 @@ ___
130134
- Fix file upload issue for S3 compatible storage (Linode, DigitalOcean) by avoiding empty tags property when creating a file (Ali Oguzhan Yildiz) [#7300](https://github.com/parse-community/parse-server/pull/7300)
131135
- Add building Docker image as CI check (Manuel Trezza) [#7332](https://github.com/parse-community/parse-server/pull/7332)
132136
- Add NPM package-lock version check to CI (Manuel Trezza) [#7333](https://github.com/parse-community/parse-server/pull/7333)
137+
- Fix incorrect LiveQuery events triggered for multiple subscriptions on the same class with different events [#7341](https://github.com/parse-community/parse-server/pull/7341)
138+
- Fix select and excludeKey queries to properly accept JSON string arrays. Also allow nested fields in exclude (Corey Baker) [#7242](https://github.com/parse-community/parse-server/pull/7242)
139+
- Fix LiveQuery server crash when using $all query operator on a missing object key (Jason Posthuma) [#7421](https://github.com/parse-community/parse-server/pull/7421)
140+
- Added runtime deprecation warnings (Manuel Trezza) [#7451](https://github.com/parse-community/parse-server/pull/7451)
141+
- Add ability to pass context of an object via a header, X-Parse-Cloud-Context, for Cloud Code triggers. The header addition allows client SDK's to add context without injecting _context in the body of JSON objects (Corey Baker) [#7437](https://github.com/parse-community/parse-server/pull/7437)
142+
133143
___
134144
## 4.5.0
135145
[Full Changelog](https://github.com/parse-community/parse-server/compare/4.4.0...4.5.0)

CONTRIBUTING.md

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -182,14 +182,16 @@ If you change or remove an existing feature that would lead to a breaking change
182182
- Use a default value that falls back to existing behavior.
183183
- Add a deprecation definition in `Deprecator/Deprecations.js` that will output a deprecation warning log message on Parse Server launch, for example:
184184
> DeprecationWarning: The Parse Server option 'example' will be removed in a future release.
185-
185+
186+
For deprecations that can only be determined ad-hoc during runtime, for example Parse Query syntax deprecations, use the `Deprecator.logRuntimeDeprecation()` method.
187+
186188
Deprecations become breaking changes after notifying developers through deprecation warnings for at least one entire previous major release. For example:
187189
- `4.5.0` is the current version
188190
- `4.6.0` adds a new optional feature and a deprecation warning for the existing feature
189191
- `5.0.0` marks the beginning of logging the deprecation warning for one entire major release
190192
- `6.0.0` makes the breaking change by removing the deprecation warning and making the new feature replace the existing feature
191193

192-
Developer feedback during the deprecation period may further postpone the introduction of a breaking change.
194+
Developer feedback during the deprecation period may further postpone the introduction of a breaking change. The [Deprecation Plan](https://github.com/parse-community/parse-server/blob/master/DEPRECATIONS.md) gives an overview of deprecations and planned breaking changes.
193195

194196
## Feature Considerations
195197
### Security Checks
@@ -275,11 +277,16 @@ Introducing new Parse Errors requires the following steps:
275277
Introducing new [Parse Server configuration][config] parameters requires the following steps:
276278

277279
1. Add parameters definitions in [/src/Options/index.js][config-index].
278-
1. If a nested configuration object has been added, add the environment variable option prefix to `getENVPrefix` in [/resources/buildConfigDefinition.js](https://github.com/parse-community/parse-server/blob/master/resources/buildConfigDefinition.js).
279-
1. Execute `npm run definitions` to automatically create the definitions in [/src/Options/Definitions.js][config-def] and [/src/Options/docs.js][config-docs].
280-
1. Add parameter value validation in [/src/Config.js](https://github.com/parse-community/parse-server/blob/master/src/Config.js).
281-
1. Add test cases to ensure the correct parameter value validation. Parse Server throws an error at launch if an invalid value is set for any configuration parameter.
282-
1. Execute `npm run docs` to generate the documentation in the `/out` directory. Take a look at the documentation whether the description and formatting of the newly introduced parameters is satisfactory.
280+
2. If the new parameter does not have one single value but is a parameter group (an object containing multiple sub-parameters):
281+
- add the environment variable prefix for the parameter group to `nestedOptionEnvPrefix` in [/resources/buildConfigDefinition.js](https://github.com/parse-community/parse-server/blob/master/resources/buildConfigDefinition.js)
282+
- add the parameter group type to `nestedOptionTypes` in [/resources/buildConfigDefinition.js](https://github.com/parse-community/parse-server/blob/master/resources/buildConfigDefinition.js)
283+
284+
For example, take a look at the existing Parse Server `security` parameter. It is a parameter group, because it has multiple sub-parameter such as `checkGroups`. Its interface is defined in [index.js][config-index] as `export interface SecurityOptions`. Therefore, the value to add to `nestedOptionTypes` would be `SecurityOptions`, the value to add to `nestedOptionEnvPrefix` would be `PARSE_SERVER_SECURITY_`.
285+
286+
3. Execute `npm run definitions` to automatically create the definitions in [/src/Options/Definitions.js][config-def] and [/src/Options/docs.js][config-docs].
287+
4. Add parameter value validation in [/src/Config.js](https://github.com/parse-community/parse-server/blob/master/src/Config.js).
288+
5. Add test cases to ensure the correct parameter value validation. Parse Server throws an error at launch if an invalid value is set for any configuration parameter.
289+
6. Execute `npm run docs` to generate the documentation in the `/out` directory. Take a look at the documentation whether the description and formatting of the newly introduced parameters is satisfactory.
283290

284291
## Code of Conduct
285292

DEPRECATIONS.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Deprecation Plan <!-- omit in toc -->
2+
3+
The following is a list of deprecations, according to the [Deprecation Policy](https://github.com/parse-community/parse-server/blob/master/CONTRIBUTING.md#deprecation-policy). After a feature becomes deprecated, and giving developers time to adapt to the change, the deprecated feature will eventually be removed, leading to a breaking change. Developer feedback during the deprecation period may postpone the introduction of the breaking change.
4+
5+
| Feature | Issue | Deprecation [ℹ️][i_deprecation] | Planned Removal [ℹ️][i_removal] | Status [ℹ️][i_status] | Notes |
6+
|-----------------------------------------------|----------------------------------------------------------------------|---------------------------------|---------------------------------|-----------------------|-------|
7+
| Native MongoDB syntax in aggregation pipeline | [#7338](https://github.com/parse-community/parse-server/issues/7338) | 5.0.0 (2022) | 6.0.0 (2023) | deprecated | - |
8+
9+
[i_deprecation]: ## "The version and date of the deprecation."
10+
[i_removal]: ## "The version and date of the planned removal."
11+
[i_status]: ## "The current status of the deprecation: deprecated (the feature is deprecated and still available), removed (the deprecated feature has been removed and is unavailable), retracted (the deprecation has been retracted and the feature will not be removed."

README.md

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
<a href="https://community.parseplatform.org/"><img alt="Join the conversation" src="https://img.shields.io/discourse/https/community.parseplatform.org/topics.svg"></a>
1919
<a href="https://snyk.io/test/github/parse-community/parse-server"><img alt="Snyk badge" src="https://snyk.io/test/github/parse-community/parse-server/badge.svg"></a>
2020
<a href="https://nodejs.org/"><img alt="Node.js 12,14,15" src="https://img.shields.io/badge/nodejs-12,_14,_15-green.svg?logo=node.js&style=flat"></a>
21-
<a href="https://www.mongodb.com/"><img alt="MongoDB 4.0,4.2,4.4" src="https://img.shields.io/badge/mongodb-4.0,_4.2,_4.4-green.svg?logo=mongodb&style=flat"></a>
21+
<a href="https://www.mongodb.com/"><img alt="MongoDB 4.0,4.2,4.4,5.0" src="https://img.shields.io/badge/mongodb-4.0,_4.2,_4.4,_5.0-green.svg?logo=mongodb&style=flat"></a>
2222
<a href="https://www.postgresql.org"> <img alt="PostgreSQL 11,12,13" src="https://img.shields.io/badge/postgresql-11,_12,_13-green.svg?logo=postgresql&style=flat"></a>
2323
</p>
2424

@@ -114,18 +114,19 @@ Parse Server is continuously tested with the most recent releases of Node.js to
114114

115115
| Version | Latest Version | End-of-Life Date | Compatibility |
116116
|------------|----------------|------------------|--------------------|
117-
| Node.js 12 | 12.22.1 | April 2022 | ✅ Fully compatible |
118-
| Node.js 14 | 14.16.1 | April 2023 | ✅ Fully compatible |
117+
| Node.js 12 | 12.22.5 | April 2022 | ✅ Fully compatible |
118+
| Node.js 14 | 14.17.5 | April 2023 | ✅ Fully compatible |
119119
| Node.js 15 | 15.14.0 | June 2021 | ✅ Fully compatible |
120120

121121
#### MongoDB
122122
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.
123123

124124
| Version | Latest Version | End-of-Life Date | Compatibility |
125125
|-------------|----------------|------------------|--------------------|
126-
| MongoDB 4.0 | 4.0.23 | January 2022 | ✅ Fully compatible |
127-
| MongoDB 4.2 | 4.2.13 | TBD | ✅ Fully compatible |
128-
| MongoDB 4.4 | 4.4.4 | TBD | ✅ Fully compatible |
126+
| MongoDB 4.0 | 4.0.25 | April 2022 | ✅ Fully compatible |
127+
| MongoDB 4.2 | 4.2.15 | TBD | ✅ Fully compatible |
128+
| MongoDB 4.4 | 4.4.8 | TBD | ✅ Fully compatible |
129+
| MongoDB 5.0 | 5.0.2 | January 2024 | ✅ Fully compatible |
129130

130131
#### PostgreSQL
131132
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.

0 commit comments

Comments
 (0)