Skip to content

Commit 0822f84

Browse files
authored
Merge branch 'master' into DB/liveQuery-session
2 parents f621b8c + 2b5bf22 commit 0822f84

24 files changed

+753
-533
lines changed

.babelrc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
["@babel/preset-env", {
88
"targets": {
99
"node": "12"
10-
}
10+
},
11+
"exclude": ["proposal-dynamic-import"]
1112
}]
1213
],
1314
"sourceMaps": "inline"

.github/workflows/ci.yml

Lines changed: 27 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ on:
77
branches:
88
- '**'
99
env:
10-
NODE_VERSION: 14.17.6
10+
NODE_VERSION: 14.18.0
1111
PARSE_SERVER_TEST_TIMEOUT: 20000
1212
jobs:
1313
check-ci:
@@ -17,7 +17,7 @@ jobs:
1717
steps:
1818
- uses: actions/checkout@v2
1919
- name: Use Node.js ${{ matrix.NODE_VERSION }}
20-
uses: actions/setup-node@v1
20+
uses: actions/setup-node@v2
2121
with:
2222
node-version: ${{ matrix.node-version }}
2323
- name: Cache Node.js modules
@@ -29,8 +29,10 @@ jobs:
2929
${{ runner.os }}-node-${{ matrix.NODE_VERSION }}-
3030
- name: Install dependencies
3131
run: npm ci
32-
- name: CI Self-Check
32+
- name: CI Environments Check
3333
run: npm run ci:check
34+
- name: CI Node Engine Check
35+
run: npm run ci:checkNodeEngine
3436
check-changelog:
3537
name: Changelog
3638
timeout-minutes: 5
@@ -45,7 +47,7 @@ jobs:
4547
steps:
4648
- uses: actions/checkout@v2
4749
- name: Use Node.js ${{ matrix.NODE_VERSION }}
48-
uses: actions/setup-node@v1
50+
uses: actions/setup-node@v2
4951
with:
5052
node-version: ${{ matrix.node-version }}
5153
- name: Cache Node.js modules
@@ -65,7 +67,7 @@ jobs:
6567
steps:
6668
- uses: actions/checkout@v2
6769
- name: Use Node.js ${{ matrix.NODE_VERSION }}
68-
uses: actions/setup-node@v1
70+
uses: actions/setup-node@v2
6971
with:
7072
node-version: ${{ matrix.node-version }}
7173
- name: Cache Node.js modules
@@ -101,43 +103,43 @@ jobs:
101103
matrix:
102104
include:
103105
- name: MongoDB 5.0, ReplicaSet, WiredTiger
104-
MONGODB_VERSION: 5.0.2
106+
MONGODB_VERSION: 5.0.3
105107
MONGODB_TOPOLOGY: replicaset
106108
MONGODB_STORAGE_ENGINE: wiredTiger
107-
NODE_VERSION: 14.17.6
109+
NODE_VERSION: 14.18.0
108110
- name: MongoDB 4.4, ReplicaSet, WiredTiger
109-
MONGODB_VERSION: 4.4.8
111+
MONGODB_VERSION: 4.4.9
110112
MONGODB_TOPOLOGY: replicaset
111113
MONGODB_STORAGE_ENGINE: wiredTiger
112-
NODE_VERSION: 14.17.6
114+
NODE_VERSION: 14.18.0
113115
- name: MongoDB 4.2, ReplicaSet, WiredTiger
114-
MONGODB_VERSION: 4.2.15
116+
MONGODB_VERSION: 4.2.17
115117
MONGODB_TOPOLOGY: replicaset
116118
MONGODB_STORAGE_ENGINE: wiredTiger
117-
NODE_VERSION: 14.17.6
119+
NODE_VERSION: 14.18.0
118120
- name: MongoDB 4.0, ReplicaSet, WiredTiger
119-
MONGODB_VERSION: 4.0.25
121+
MONGODB_VERSION: 4.0.27
120122
MONGODB_TOPOLOGY: replicaset
121123
MONGODB_STORAGE_ENGINE: wiredTiger
122-
NODE_VERSION: 14.17.6
124+
NODE_VERSION: 14.18.0
123125
- name: MongoDB 4.0, Standalone, MMAPv1
124-
MONGODB_VERSION: 4.0.25
126+
MONGODB_VERSION: 4.0.27
125127
MONGODB_TOPOLOGY: standalone
126128
MONGODB_STORAGE_ENGINE: mmapv1
127-
NODE_VERSION: 14.17.6
129+
NODE_VERSION: 14.18.0
128130
- name: Redis Cache
129131
PARSE_SERVER_TEST_CACHE: redis
130-
MONGODB_VERSION: 4.4.8
132+
MONGODB_VERSION: 4.4.9
131133
MONGODB_TOPOLOGY: standalone
132134
MONGODB_STORAGE_ENGINE: wiredTiger
133-
NODE_VERSION: 14.17.6
135+
NODE_VERSION: 14.18.0
134136
- name: Node 12
135-
MONGODB_VERSION: 4.4.8
137+
MONGODB_VERSION: 4.4.9
136138
MONGODB_TOPOLOGY: standalone
137139
MONGODB_STORAGE_ENGINE: wiredTiger
138140
NODE_VERSION: 12.22.6
139141
- name: Node 15
140-
MONGODB_VERSION: 4.4.8
142+
MONGODB_VERSION: 4.4.9
141143
MONGODB_TOPOLOGY: standalone
142144
MONGODB_STORAGE_ENGINE: wiredTiger
143145
NODE_VERSION: 15.14.0
@@ -159,7 +161,7 @@ jobs:
159161
steps:
160162
- uses: actions/checkout@v2
161163
- name: Use Node.js ${{ matrix.NODE_VERSION }}
162-
uses: actions/setup-node@v1
164+
uses: actions/setup-node@v2
163165
with:
164166
node-version: ${{ matrix.NODE_VERSION }}
165167
- name: Cache Node.js modules
@@ -182,16 +184,16 @@ jobs:
182184
include:
183185
- name: PostgreSQL 11, PostGIS 3.0
184186
POSTGRES_IMAGE: postgis/postgis:11-3.0
185-
NODE_VERSION: 14.17.6
187+
NODE_VERSION: 14.18.0
186188
- name: PostgreSQL 11, PostGIS 3.1
187189
POSTGRES_IMAGE: postgis/postgis:11-3.1
188-
NODE_VERSION: 14.17.6
190+
NODE_VERSION: 14.18.0
189191
- name: PostgreSQL 12, PostGIS 3.1
190192
POSTGRES_IMAGE: postgis/postgis:12-3.1
191-
NODE_VERSION: 14.17.6
193+
NODE_VERSION: 14.18.0
192194
- name: PostgreSQL 13, PostGIS 3.1
193195
POSTGRES_IMAGE: postgis/postgis:13-3.1
194-
NODE_VERSION: 14.17.6
196+
NODE_VERSION: 14.18.0
195197
fail-fast: false
196198
name: ${{ matrix.name }}
197199
timeout-minutes: 15
@@ -219,7 +221,7 @@ jobs:
219221
steps:
220222
- uses: actions/checkout@v2
221223
- name: Use Node.js ${{ matrix.NODE_VERSION }}
222-
uses: actions/setup-node@v1
224+
uses: actions/setup-node@v2
223225
with:
224226
node-version: ${{ matrix.NODE_VERSION }}
225227
- name: Cache Node.js modules

.github/workflows/docker-publish.yml

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,11 @@ name: docker
22

33
on:
44
schedule:
5-
- cron: '19 17 * * *' # Nightly builds capture upstream updates to dependency images such as node.
5+
# Nightly builds capture upstream updates to dependency images such as node.
6+
- cron: '19 17 * * *'
67
push:
78
branches: [ master ]
89
tags: [ '*.*.*' ]
9-
pull_request:
10-
branches: [ master ]
1110

1211
env:
1312
REGISTRY: docker.io
@@ -22,6 +21,10 @@ jobs:
2221
packages: write
2322

2423
steps:
24+
- name: Determine branch name
25+
id: branch
26+
run: echo "::set-output name=branch_name::${GITHUB_REF#refs/*/}"
27+
2528
- name: Checkout repository
2629
uses: actions/checkout@v2
2730

@@ -45,7 +48,7 @@ jobs:
4548
with:
4649
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
4750
flavor: |
48-
latest=true
51+
latest=${{ steps.branch.outputs.branch_name == 'master' }}
4952
5053
- name: Build and push Docker image
5154
uses: docker/build-push-action@v2
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
# Trigger this workflow only to manually create a Docker release; this should only be used
2+
# in extraordinary circumstances, as Docker releases are normally created automatically as
3+
# part of the automated release workflow.
4+
5+
name: release-manual-docker
6+
on:
7+
workflow_dispatch:
8+
inputs:
9+
ref:
10+
default: ''
11+
description: 'Reference (tag / SHA):'
12+
env:
13+
REGISTRY: docker.io
14+
IMAGE_NAME: parseplatform/parse-server
15+
jobs:
16+
build:
17+
runs-on: ubuntu-18.04
18+
permissions:
19+
contents: read
20+
packages: write
21+
steps:
22+
- name: Determine branch name
23+
id: branch
24+
run: echo "::set-output name=branch_name::${GITHUB_REF#refs/*/}"
25+
- name: Checkout repository
26+
uses: actions/checkout@v2
27+
with:
28+
ref: ${{ github.event.inputs.ref }}
29+
- name: Set up QEMU
30+
id: qemu
31+
uses: docker/setup-qemu-action@v1
32+
- name: Set up Docker Buildx
33+
uses: docker/setup-buildx-action@v1
34+
- name: Log into Docker Hub
35+
if: github.event_name != 'pull_request'
36+
uses: docker/login-action@v1
37+
with:
38+
username: ${{ secrets.DOCKERHUB_USERNAME }}
39+
password: ${{ secrets.DOCKERHUB_TOKEN }}
40+
- name: Extract Docker metadata
41+
id: meta
42+
uses: docker/metadata-action@v3
43+
with:
44+
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
45+
flavor: |
46+
latest=${{ steps.branch.outputs.branch_name == 'master' && github.event.inputs.ref == '' }}
47+
tags: |
48+
type=semver,enable=true,pattern={{version}},value=${{ github.event.inputs.ref }}
49+
type=raw,enable=${{ github.event.inputs.ref == '' }},value=latest
50+
- name: Build and push Docker image
51+
uses: docker/build-push-action@v2
52+
with:
53+
context: .
54+
platforms: linux/amd64, linux/arm/v6, linux/arm/v7, linux/arm64/v8
55+
push: ${{ github.event_name != 'pull_request' }}
56+
tags: ${{ steps.meta.outputs.tags }}
57+
labels: ${{ steps.meta.outputs.labels }}

CHANGELOG.md

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ Jump directly to a version:
44

55
| 4.x |
66
|--------------------------------------|
7-
| [**4.10.3 (latest release)**](#4103) |
7+
| [**4.10.4 (latest release)**](#4104) |
8+
| [4.10.3](#4103) |
89
| [4.10.2](#4102) |
910
| [4.10.1](#4101) |
1011
| [4.10.0](#4100) |
@@ -94,7 +95,7 @@ Jump directly to a version:
9495
___
9596

9697
## Unreleased (Master Branch)
97-
[Full Changelog](https://github.com/parse-community/parse-server/compare/4.10.3...master)
98+
[Full Changelog](https://github.com/parse-community/parse-server/compare/4.10.4...master)
9899

99100
### Breaking Changes
100101
- 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)
@@ -104,6 +105,7 @@ ___
104105
- 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)
105106
- 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)
106107
- Remove Session field `restricted`; the field was a code artifact from a feature that never existed in Open Source Parse Server; if you have been using this field for custom purposes, consider that for new Parse Server installations the field does not exist anymore in the schema, and for existing installations the field default value `false` will not be set anymore when creating a new session (Manuel Trezza) [#7543](https://github.com/parse-community/parse-server/pull/7543)
108+
- ci: add node engine version check (Manuel Trezza) [#7574](https://github.com/parse-community/parse-server/pull/7574)
107109

108110
### Notable Changes
109111
- Added Parse Server Security Check to report weak security settings (Manuel Trezza, dblythy) [#7247](https://github.com/parse-community/parse-server/issues/7247)
@@ -151,6 +153,15 @@ ___
151153
- Refactor: uniform issue templates across repos (Manuel Trezza) [#7528](https://github.com/parse-community/parse-server/pull/7528)
152154
- ci: bump ci environment (Manuel Trezza) [#7539](https://github.com/parse-community/parse-server/pull/7539)
153155
- CI now pushes docker images to Docker Hub (Corey Baker) [#7548](https://github.com/parse-community/parse-server/pull/7548)
156+
- Allow setting descending sort to full text queries (dblythy) [#7496](https://github.com/parse-community/parse-server/pull/7496)
157+
- Allow cloud string for ES modules (Daniel Blyth) [#7560](https://github.com/parse-community/parse-server/pull/7560)
158+
- docs: Introduce deprecation ID for reference in comments and online search (Manuel Trezza) [#7562](https://github.com/parse-community/parse-server/pull/7562)
159+
160+
## 4.10.4
161+
[Full Changelog](https://github.com/parse-community/parse-server/compare/4.10.3...4.10.4)
162+
163+
### Security Fixes
164+
- Strip out sessionToken when LiveQuery is used on Parse.User (Daniel Blyth) [GHSA-7pr3-p5fm-8r9x](https://github.com/parse-community/parse-server/security/advisories/GHSA-7pr3-p5fm-8r9x)
154165

155166
## 4.10.3
156167
[Full Changelog](https://github.com/parse-community/parse-server/compare/4.10.2...4.10.3)
@@ -177,15 +188,15 @@ ___
177188

178189
*Versions >4.5.2 and <4.10.0 are skipped.*
179190

180-
> ⚠️ A security incident caused a number of incorrect version tags to be pushed to the Parse Server repository. These version tags linked to a personal fork of a contributor who had write access to the repository. The code to which these tags linked has not been reviewed or approved by Parse Platform. Even though no releases were published with these incorrect versions, it was possible to define a Parse Server dependency that pointed to these version tags, for example if you defined this dependency:
191+
> ⚠️ A security incident caused a number of incorrect version tags to be pushed to the Parse Server repository. These version tags linked to a personal fork of a contributor who had write access to the repository. The code to which these tags linked has not been reviewed or approved by Parse Platform. Even though no releases were published with these incorrect versions, it was possible to define a Parse Server dependency that pointed to these version tags, for example if you defined this dependency:
181192
> ```js
182193
> "parse-server": "[email protected]:parse-community/parse-server.git#4.9.3"
183194
> ```
184-
>
195+
>
185196
> We have since deleted the incorrect version tags, but they may still show up if your personal fork on GitHub or locally. We do not know when these tags have been pushed to the Parse Server repository, but we first became aware of this issue on July 21, 2021. We are not aware of any malicious code or concerns related to privacy, security or legality (e.g. proprietary code). However, it has been reported that some functionality does not work as expected and the introduction of security vulnerabilities cannot be ruled out.
186197
>
187-
> You may be also affected if you used the Bitnami image for Parse Server. Bitnami picked up the incorrect version tag `4.9.3` and published a new Bitnami image for Parse Server.
188-
>
198+
> You may be also affected if you used the Bitnami image for Parse Server. Bitnami picked up the incorrect version tag `4.9.3` and published a new Bitnami image for Parse Server.
199+
>
189200
>**If you are using any of the affected versions, we urgently recommend to upgrade to version `4.10.0`.**
190201
191202
## 4.5.2

CONTRIBUTING.md

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
- [Wording Guideline](#wording-guideline)
2020
- [Parse Error](#parse-error)
2121
- [Parse Server Configuration](#parse-server-configuration)
22+
- [Commit Message](#commit-message)
23+
- [Breaking Change](#breaking-change)
2224
- [Code of Conduct](#code-of-conduct)
2325

2426
## Contributing
@@ -288,6 +290,55 @@ Introducing new [Parse Server configuration][config] parameters requires the fol
288290
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.
289291
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.
290292

293+
## Commit Message
294+
295+
For release automation, the title of pull requests needs to be written in a defined syntax. We loosely follow the [Conventional Commits](https://www.conventionalcommits.org) specification, which defines this syntax:
296+
297+
```
298+
<type>: <summary>
299+
```
300+
301+
The _type_ is the category of change that is made, possible types are:
302+
- `feat` - add a new feature
303+
- `fix` - fix a bug
304+
- `refactor` - refactor code without impact on features or performance
305+
- `docs` - add or edit code comments, documentation, GitHub pages
306+
- `style` - edit code style
307+
- `build` - retry failing build and anything build process related
308+
- `perf` - performance optimization
309+
- `ci` - continuous integration
310+
- `test` - tests
311+
312+
The _summary_ is a short change description in present tense, not capitalized, without period at the end. This summary will also be used as the changelog entry.
313+
- It must be short and self-explanatory for a reader who does not see the details of the full pull request description
314+
- It must not contain abbreviations, e.g. instead of `LQ` write `LiveQuery`
315+
- It must use the correct product and feature names as referenced in the documentation, e.g. instead of `Cloud Validator` use `Cloud Function validation`
316+
- In case of a breaking change, the summary must not contain duplicate information that is also in the [BREAKING CHANGE](#breaking-change) chapter of the pull request description. It must not contain a note that it is a breaking change, as this will be automatically flagged as such if the pull request description contains the BREAKING CHANGE chapter.
317+
318+
For example:
319+
320+
```
321+
feat: add handle to door for easy opening
322+
```
323+
324+
Currently, we are not making use of the commit _scope_, which would be written as `<type>(<scope>): <summary>`, that attributes a change to a specific part of the product.
325+
326+
### Breaking Change
327+
328+
If a pull request contains a braking change, the description of the pull request must contain a special chapter at the bottom.
329+
330+
The chapter consists of the phrase `BREAKING CHANGE`, capitalized, in a single line without any formatting. It must be followed by an empty line, then a short description of the breaking change, and ideally how the developer should address it. This chapter should contain more details focusing on the "breaking” aspect of the change, as it is intended to assist the developer in adapting their deployment. However, keep it concise, as it will also become part of the changelog entry.
331+
332+
For example:
333+
334+
```
335+
Detailed pull request description...
336+
337+
BREAKING CHANGE
338+
339+
The door handle has be pulled up to open the door, not down. Adjust your habits accordingly by walking on your hands.
340+
```
341+
291342
## Code of Conduct
292343
293344
This project adheres to the [Contributor Covenant Code of Conduct](https://github.com/parse-community/parse-server/blob/master/CODE_OF_CONDUCT.md). By participating, you are expected to honor this code.

0 commit comments

Comments
 (0)