Skip to content

Commit 14695f5

Browse files
committed
Merge branch 'pr-migrations'
2 parents d557327 + 72e3bf3 commit 14695f5

29 files changed

+930
-541
lines changed

.github/workflows/ci.yml

Lines changed: 64 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ on:
55
- master
66
pull_request:
77
branches:
8-
- "**"
8+
- '**'
99
env:
10-
NODE_VERSION: 14.17.0
10+
NODE_VERSION: 14.17.5
1111
PARSE_SERVER_TEST_TIMEOUT: 20000
1212
jobs:
1313
check-ci:
@@ -32,45 +32,45 @@ jobs:
3232
- name: CI Self-Check
3333
run: npm run ci:check
3434
check-lint:
35-
name: Lint
36-
timeout-minutes: 15
37-
runs-on: ubuntu-18.04
38-
steps:
39-
- uses: actions/checkout@v2
40-
- name: Use Node.js ${{ matrix.NODE_VERSION }}
41-
uses: actions/setup-node@v1
42-
with:
43-
node-version: ${{ matrix.node-version }}
44-
- name: Cache Node.js modules
45-
uses: actions/cache@v2
46-
with:
47-
path: ~/.npm
48-
key: ${{ runner.os }}-node-${{ matrix.NODE_VERSION }}-${{ hashFiles('**/package-lock.json') }}
49-
restore-keys: |
50-
${{ runner.os }}-node-${{ matrix.NODE_VERSION }}-
51-
- name: Install dependencies
52-
run: npm ci
53-
- run: npm run lint
35+
name: Lint
36+
timeout-minutes: 15
37+
runs-on: ubuntu-18.04
38+
steps:
39+
- uses: actions/checkout@v2
40+
- name: Use Node.js ${{ matrix.NODE_VERSION }}
41+
uses: actions/setup-node@v1
42+
with:
43+
node-version: ${{ matrix.node-version }}
44+
- name: Cache Node.js modules
45+
uses: actions/cache@v2
46+
with:
47+
path: ~/.npm
48+
key: ${{ runner.os }}-node-${{ matrix.NODE_VERSION }}-${{ hashFiles('**/package-lock.json') }}
49+
restore-keys: |
50+
${{ runner.os }}-node-${{ matrix.NODE_VERSION }}-
51+
- name: Install dependencies
52+
run: npm ci
53+
- run: npm run lint
5454
check-circular:
55-
name: Circular Dependencies
56-
timeout-minutes: 5
57-
runs-on: ubuntu-18.04
58-
steps:
59-
- uses: actions/checkout@v2
60-
- name: Use Node.js ${{ matrix.NODE_VERSION }}
61-
uses: actions/setup-node@v1
62-
with:
63-
node-version: ${{ matrix.node-version }}
64-
- name: Cache Node.js modules
65-
uses: actions/cache@v2
66-
with:
67-
path: ~/.npm
68-
key: ${{ runner.os }}-node-${{ matrix.NODE_VERSION }}-${{ hashFiles('**/package-lock.json') }}
69-
restore-keys: |
70-
${{ runner.os }}-node-${{ matrix.NODE_VERSION }}-
71-
- name: Install dependencies
72-
run: npm ci
73-
- run: npm run madge:circular
55+
name: Circular Dependencies
56+
timeout-minutes: 5
57+
runs-on: ubuntu-18.04
58+
steps:
59+
- uses: actions/checkout@v2
60+
- name: Use Node.js ${{ matrix.NODE_VERSION }}
61+
uses: actions/setup-node@v1
62+
with:
63+
node-version: ${{ matrix.node-version }}
64+
- name: Cache Node.js modules
65+
uses: actions/cache@v2
66+
with:
67+
path: ~/.npm
68+
key: ${{ runner.os }}-node-${{ matrix.NODE_VERSION }}-${{ hashFiles('**/package-lock.json') }}
69+
restore-keys: |
70+
${{ runner.os }}-node-${{ matrix.NODE_VERSION }}-
71+
- name: Install dependencies
72+
run: npm ci
73+
- run: npm run madge:circular
7474
check-docker:
7575
name: Docker Build
7676
timeout-minutes: 5
@@ -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.6
102+
MONGODB_VERSION: 4.4.8
98103
MONGODB_TOPOLOGY: replicaset
99104
MONGODB_STORAGE_ENGINE: wiredTiger
100-
NODE_VERSION: 14.17.0
105+
NODE_VERSION: 14.17.5
101106
- name: MongoDB 4.2, ReplicaSet, WiredTiger
102-
MONGODB_VERSION: 4.2.14
107+
MONGODB_VERSION: 4.2.15
103108
MONGODB_TOPOLOGY: replicaset
104109
MONGODB_STORAGE_ENGINE: wiredTiger
105-
NODE_VERSION: 14.17.0
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.17.0
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.17.0
120+
NODE_VERSION: 14.17.5
116121
- name: Redis Cache
117122
PARSE_SERVER_TEST_CACHE: redis
118-
MONGODB_VERSION: 4.4.6
123+
MONGODB_VERSION: 4.4.8
119124
MONGODB_TOPOLOGY: standalone
120125
MONGODB_STORAGE_ENGINE: wiredTiger
121-
NODE_VERSION: 14.17.0
126+
NODE_VERSION: 14.17.5
122127
- name: Node 12
123-
MONGODB_VERSION: 4.4.6
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.6
133+
MONGODB_VERSION: 4.4.8
129134
MONGODB_TOPOLOGY: standalone
130135
MONGODB_STORAGE_ENGINE: wiredTiger
131136
NODE_VERSION: 15.14.0
@@ -137,8 +142,8 @@ jobs:
137142
redis:
138143
image: redis
139144
ports:
140-
- 6379:6379
141-
env:
145+
- 6379:6379
146+
env:
142147
MONGODB_VERSION: ${{ matrix.MONGODB_VERSION }}
143148
MONGODB_TOPOLOGY: ${{ matrix.MONGODB_TOPOLOGY }}
144149
MONGODB_STORAGE_ENGINE: ${{ matrix.MONGODB_STORAGE_ENGINE }}
@@ -170,16 +175,16 @@ jobs:
170175
include:
171176
- name: PostgreSQL 11, PostGIS 3.0
172177
POSTGRES_IMAGE: postgis/postgis:11-3.0
173-
NODE_VERSION: 14.17.0
178+
NODE_VERSION: 14.17.5
174179
- name: PostgreSQL 11, PostGIS 3.1
175180
POSTGRES_IMAGE: postgis/postgis:11-3.1
176-
NODE_VERSION: 14.17.0
181+
NODE_VERSION: 14.17.5
177182
- name: PostgreSQL 12, PostGIS 3.1
178183
POSTGRES_IMAGE: postgis/postgis:12-3.1
179-
NODE_VERSION: 14.17.0
184+
NODE_VERSION: 14.17.5
180185
- name: PostgreSQL 13, PostGIS 3.1
181186
POSTGRES_IMAGE: postgis/postgis:13-3.1
182-
NODE_VERSION: 14.17.0
187+
NODE_VERSION: 14.17.5
183188
fail-fast: false
184189
name: ${{ matrix.name }}
185190
timeout-minutes: 15

.prettierignore

Lines changed: 0 additions & 1 deletion
This file was deleted.

CHANGELOG.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,9 @@ ___
100100
- Added Parse Server Security Check to report weak security settings (Manuel Trezza, dblythy) [#7247](https://github.com/parse-community/parse-server/issues/7247)
101101
- 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)
102102
- 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 braking changes in a phased pattern that is more predictable for developers (Manuel Trezza) [#7199](https://github.com/parse-community/parse-server/pull/7199)
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)
104104
- 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)
105106

106107
### Other Changes
107108
- 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)
@@ -134,10 +135,12 @@ ___
134135
- Add NPM package-lock version check to CI (Manuel Trezza) [#7333](https://github.com/parse-community/parse-server/pull/7333)
135136
- 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)
136137
- 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)
138+
- 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)
139+
- Added runtime deprecation warnings (Manuel Trezza) [#7451](https://github.com/parse-community/parse-server/pull/7451)
140+
- 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)
137141

138142
___
139-
140-
### 4.5.0
143+
## 4.5.0
141144
[Full Changelog](https://github.com/parse-community/parse-server/compare/4.4.0...4.5.0)
142145
### Breaking Changes
143146
- FIX: Consistent casing for afterLiveQueryEvent. The afterLiveQueryEvent was introduced in 4.4.0 with inconsistent casing for the event names, which was fixed in 4.5.0. [#7023](https://github.com/parse-community/parse-server/pull/7023). Thanks to [dblythy](https://github.com/dblythy).

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: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
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+
(none)
8+
9+
10+
[i_deprecation]: ## "The version and date of the deprecation."
11+
[i_removal]: ## "The version and date of the planned removal."
12+
[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.17.0 | 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.14 | TBD | ✅ Fully compatible |
128-
| MongoDB 4.4 | 4.4.6 | 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)