Skip to content

Commit c99c138

Browse files
authored
Merge branch 'alpha' into moumouls/upgrade-appollo-server
2 parents 7f522e2 + f27b050 commit c99c138

20 files changed

+712
-74
lines changed

.github/workflows/ci.yml

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ on:
88
paths-ignore:
99
- '**/**.md'
1010
env:
11-
NODE_VERSION: 22.12.0
11+
NODE_VERSION: 24.11.0
1212
PARSE_SERVER_TEST_TIMEOUT: 20000
1313
permissions:
1414
actions: write
@@ -156,20 +156,20 @@ jobs:
156156
- name: MongoDB 6, ReplicaSet
157157
MONGODB_VERSION: 6.0.19
158158
MONGODB_TOPOLOGY: replset
159-
NODE_VERSION: 22.12.0
159+
NODE_VERSION: 24.11.0
160160
- name: MongoDB 7, ReplicaSet
161161
MONGODB_VERSION: 7.0.16
162162
MONGODB_TOPOLOGY: replset
163-
NODE_VERSION: 22.12.0
163+
NODE_VERSION: 24.11.0
164164
- name: MongoDB 8, ReplicaSet
165165
MONGODB_VERSION: 8.0.4
166166
MONGODB_TOPOLOGY: replset
167-
NODE_VERSION: 22.12.0
167+
NODE_VERSION: 24.11.0
168168
- name: Redis Cache
169169
PARSE_SERVER_TEST_CACHE: redis
170170
MONGODB_VERSION: 8.0.4
171171
MONGODB_TOPOLOGY: standalone
172-
NODE_VERSION: 22.12.0
172+
NODE_VERSION: 24.11.0
173173
- name: Node 20
174174
MONGODB_VERSION: 8.0.4
175175
MONGODB_TOPOLOGY: standalone
@@ -178,6 +178,10 @@ jobs:
178178
MONGODB_VERSION: 8.0.4
179179
MONGODB_TOPOLOGY: standalone
180180
NODE_VERSION: 18.20.4
181+
- name: Node 22
182+
MONGODB_VERSION: 8.0.4
183+
MONGODB_TOPOLOGY: standalone
184+
NODE_VERSION: 22.12.0
181185
fail-fast: false
182186
name: ${{ matrix.name }}
183187
timeout-minutes: 20
@@ -225,22 +229,22 @@ jobs:
225229
include:
226230
- name: PostgreSQL 15, PostGIS 3.3
227231
POSTGRES_IMAGE: postgis/postgis:15-3.3
228-
NODE_VERSION: 22.12.0
232+
NODE_VERSION: 24.11.0
229233
- name: PostgreSQL 15, PostGIS 3.4
230234
POSTGRES_IMAGE: postgis/postgis:15-3.4
231-
NODE_VERSION: 22.12.0
235+
NODE_VERSION: 24.11.0
232236
- name: PostgreSQL 15, PostGIS 3.5
233237
POSTGRES_IMAGE: postgis/postgis:15-3.5
234-
NODE_VERSION: 22.12.0
238+
NODE_VERSION: 24.11.0
235239
- name: PostgreSQL 16, PostGIS 3.5
236240
POSTGRES_IMAGE: postgis/postgis:16-3.5
237-
NODE_VERSION: 22.12.0
241+
NODE_VERSION: 24.11.0
238242
- name: PostgreSQL 17, PostGIS 3.5
239243
POSTGRES_IMAGE: postgis/postgis:17-3.5
240-
NODE_VERSION: 22.12.0
244+
NODE_VERSION: 24.11.0
241245
- name: PostgreSQL 18, PostGIS 3.6
242246
POSTGRES_IMAGE: postgis/postgis:18-3.6
243-
NODE_VERSION: 22.12.0
247+
NODE_VERSION: 24.11.0
244248
fail-fast: false
245249
name: ${{ matrix.name }}
246250
timeout-minutes: 20
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# Trigger this workflow only to manually create a docs release; this should only be used
2+
# in extraordinary circumstances, as docs releases are normally created automatically as
3+
# part of the automated release workflow.
4+
5+
name: release-manual-docs
6+
on:
7+
workflow_dispatch:
8+
inputs:
9+
ref:
10+
default: ''
11+
description: 'Reference (tag / SHA):'
12+
required: true
13+
jobs:
14+
docs:
15+
runs-on: ubuntu-latest
16+
timeout-minutes: 15
17+
steps:
18+
- name: Checkout repository
19+
uses: actions/checkout@v4
20+
with:
21+
ref: ${{ github.event.inputs.ref }}
22+
- name: Use Node.js
23+
uses: actions/setup-node@v4
24+
with:
25+
node-version: 18.20.4
26+
- name: Cache Node.js modules
27+
uses: actions/cache@v4
28+
with:
29+
path: ~/.npm
30+
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
31+
restore-keys: |
32+
${{ runner.os }}-node-
33+
- name: Generate Docs
34+
run: |
35+
echo $SOURCE_TAG
36+
npm ci
37+
./release_docs.sh
38+
env:
39+
SOURCE_TAG: ${{ github.event.inputs.ref }}
40+
- name: Deploy
41+
uses: peaceiris/[email protected]
42+
with:
43+
github_token: ${{ secrets.GITHUB_TOKEN }}
44+
publish_dir: ./docs

8.0.0.md

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ This document only highlights specific changes that require a longer explanation
55
---
66

77
- [Email Verification](#email-verification)
8+
- [Database Indexes](#database-indexes)
89

910
---
1011

@@ -22,6 +23,22 @@ The request to re-send a verification email changed to sending a `POST` request
2223
> [!IMPORTANT]
2324
> Parse Server does not keep a history of verification tokens but only stores the most recently generated verification token in the database. Every time Parse Server generates a new verification token, the currently stored token is replaced. If a user opens a link with an expired token, and that token has already been replaced in the database, Parse Server cannot associate the expired token with any user. In this case, another way has to be offered to the user to re-send a verification email. To mitigate this issue, set the Parse Server option `emailVerifyTokenReuseIfValid: true` and set `emailVerifyTokenValidityDuration` to a longer duration, which ensures that the currently stored verification token is not replaced too soon.
2425
25-
Related pull requests:
26+
Related pull request:
2627

2728
- https://github.com/parse-community/parse-server/pull/8488
29+
30+
## Database Indexes
31+
32+
As part of the email verification and password reset improvements in Parse Server 8, the queries used for these operations have changed to use tokens instead of username/email fields. To ensure optimal query performance, Parse Server now automatically creates indexes on the following fields during server initialization:
33+
34+
- `_User._email_verify_token`: used for email verification queries
35+
- `_User._perishable_token`: used for password reset queries
36+
37+
These indexes are created automatically when Parse Server starts, similar to how indexes for `username` and `email` fields are created. No manual intervention is required.
38+
39+
> [!WARNING]
40+
> If you have a large existing user base, the index creation may take some time during the first server startup after upgrading to Parse Server 8. The server logs will indicate when index creation is complete or if any errors occur. If you have any concerns regarding a potential database performance impact during index creation, you could create these indexes manually in a controlled procedure before upgrading Parse Server.
41+
42+
Related pull request:
43+
44+
- https://github.com/parse-community/parse-server/pull/9893

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
[![Coverage](https://codecov.io/github/parse-community/parse-server/branch/alpha/graph/badge.svg)](https://app.codecov.io/github/parse-community/parse-server/tree/alpha)
99
[![auto-release](https://img.shields.io/badge/%F0%9F%9A%80-auto--release-9e34eb.svg)](https://github.com/parse-community/parse-dashboard/releases)
1010

11-
[![Node Version](https://img.shields.io/badge/nodejs-18,_20,_22-green.svg?logo=node.js&style=flat)](https://nodejs.org)
11+
[![Node Version](https://img.shields.io/badge/nodejs-18,_20,_22,_24-green.svg?logo=node.js&style=flat)](https://nodejs.org)
1212
[![MongoDB Version](https://img.shields.io/badge/mongodb-6,_7,_8-green.svg?logo=mongodb&style=flat)](https://www.mongodb.com)
1313
[![Postgres Version](https://img.shields.io/badge/postgresql-13,_14,_15,_16,_17,_18-green.svg?logo=postgresql&style=flat)](https://www.postgresql.org)
1414

@@ -130,6 +130,7 @@ Parse Server is continuously tested with the most recent releases of Node.js to
130130
| Node.js 18 | 18.20.4 | April 2025 | <= 8.x (2025) |
131131
| Node.js 20 | 20.18.0 | April 2026 | <= 9.x (2026) |
132132
| Node.js 22 | 22.12.0 | April 2027 | <= 10.x (2027) |
133+
| Node.js 24 | 24.11.0 | April 2028 | <= 11.x (2028) |
133134

134135
#### MongoDB
135136

changelogs/CHANGELOG_alpha.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,38 @@
1+
# [8.4.0-alpha.2](https://github.com/parse-community/parse-server/compare/8.4.0-alpha.1...8.4.0-alpha.2) (2025-11-05)
2+
3+
4+
### Bug Fixes
5+
6+
* Uploading a file by providing an origin URL allows for Server-Side Request Forgery (SSRF); fixes vulnerability [GHSA-x4qj-2f4q-r4rx](https://github.com/parse-community/parse-server/security/advisories/GHSA-x4qj-2f4q-r4rx) ([#9903](https://github.com/parse-community/parse-server/issues/9903)) ([9776386](https://github.com/parse-community/parse-server/commit/97763863b72689a29ad7a311dfb590c3e3c50585))
7+
8+
# [8.4.0-alpha.1](https://github.com/parse-community/parse-server/compare/8.3.1-alpha.1...8.4.0-alpha.1) (2025-11-05)
9+
10+
11+
### Features
12+
13+
* Add support for Node 24 ([#9901](https://github.com/parse-community/parse-server/issues/9901)) ([25dfe19](https://github.com/parse-community/parse-server/commit/25dfe19fef02fd44224e4a6d198584a694a1aa52))
14+
15+
## [8.3.1-alpha.1](https://github.com/parse-community/parse-server/compare/8.3.0...8.3.1-alpha.1) (2025-11-05)
16+
17+
18+
### Bug Fixes
19+
20+
* Add problematic MIME types to default value of Parse Server option `fileUpload.fileExtensions` ([#9902](https://github.com/parse-community/parse-server/issues/9902)) ([fa245cb](https://github.com/parse-community/parse-server/commit/fa245cbb5f5b7a0dad962b2ce0524fa4dafcb5f7))
21+
22+
# [8.3.0-alpha.14](https://github.com/parse-community/parse-server/compare/8.3.0-alpha.13...8.3.0-alpha.14) (2025-11-01)
23+
24+
25+
### Features
26+
27+
* Add options to skip automatic creation of internal database indexes on server start ([#9897](https://github.com/parse-community/parse-server/issues/9897)) ([ea91aca](https://github.com/parse-community/parse-server/commit/ea91aca1420c33e038516a321b2640709589f886))
28+
29+
# [8.3.0-alpha.13](https://github.com/parse-community/parse-server/compare/8.3.0-alpha.12...8.3.0-alpha.13) (2025-11-01)
30+
31+
32+
### Bug Fixes
33+
34+
* Indexes `_email_verify_token` for email verification and `_perishable_token` password reset are not created automatically ([#9893](https://github.com/parse-community/parse-server/issues/9893)) ([62dd3c5](https://github.com/parse-community/parse-server/commit/62dd3c565ab70765cb1c547996b616b72e9bb800))
35+
136
# [8.3.0-alpha.12](https://github.com/parse-community/parse-server/compare/8.3.0-alpha.11...8.3.0-alpha.12) (2025-10-25)
237

338

changelogs/CHANGELOG_release.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,38 @@
1+
# [8.4.0](https://github.com/parse-community/parse-server/compare/8.3.0...8.4.0) (2025-11-05)
2+
3+
4+
### Bug Fixes
5+
6+
* Add problematic MIME types to default value of Parse Server option `fileUpload.fileExtensions` ([#9902](https://github.com/parse-community/parse-server/issues/9902)) ([fa245cb](https://github.com/parse-community/parse-server/commit/fa245cbb5f5b7a0dad962b2ce0524fa4dafcb5f7))
7+
* Uploading a file by providing an origin URL allows for Server-Side Request Forgery (SSRF); fixes vulnerability [GHSA-x4qj-2f4q-r4rx](https://github.com/parse-community/parse-server/security/advisories/GHSA-x4qj-2f4q-r4rx) ([#9903](https://github.com/parse-community/parse-server/issues/9903)) ([9776386](https://github.com/parse-community/parse-server/commit/97763863b72689a29ad7a311dfb590c3e3c50585))
8+
9+
### Features
10+
11+
* Add support for Node 24 ([#9901](https://github.com/parse-community/parse-server/issues/9901)) ([25dfe19](https://github.com/parse-community/parse-server/commit/25dfe19fef02fd44224e4a6d198584a694a1aa52))
12+
13+
# [8.3.0](https://github.com/parse-community/parse-server/compare/8.2.5...8.3.0) (2025-11-01)
14+
15+
16+
### Bug Fixes
17+
18+
* Error in `afterSave` trigger for `Parse.Role` due to `name` field ([#9883](https://github.com/parse-community/parse-server/issues/9883)) ([eb052d8](https://github.com/parse-community/parse-server/commit/eb052d8e6abe1ae32505fd068d5445eaf950a770))
19+
* Indexes `_email_verify_token` for email verification and `_perishable_token` password reset are not created automatically ([#9893](https://github.com/parse-community/parse-server/issues/9893)) ([62dd3c5](https://github.com/parse-community/parse-server/commit/62dd3c565ab70765cb1c547996b616b72e9bb800))
20+
* Security upgrade to parse 7.0.1 ([#9877](https://github.com/parse-community/parse-server/issues/9877)) ([abfa94c](https://github.com/parse-community/parse-server/commit/abfa94cd6de2c4e76337931c8ea8311c4ccf2a1a))
21+
* Server URL verification before server is ready ([#9882](https://github.com/parse-community/parse-server/issues/9882)) ([178bd5c](https://github.com/parse-community/parse-server/commit/178bd5c5e258d9501c9ac4d35a3a105ab64be67e))
22+
* Stale data read in validation query on `Parse.Object` update causes inconsistency between validation read and subsequent update write operation ([#9859](https://github.com/parse-community/parse-server/issues/9859)) ([f49efaf](https://github.com/parse-community/parse-server/commit/f49efaf5bb1d6b19f6d6712f7cdf073855c95c6e))
23+
* Warning logged when setting option `databaseOptions.disableIndexFieldValidation` ([#9880](https://github.com/parse-community/parse-server/issues/9880)) ([1815b01](https://github.com/parse-community/parse-server/commit/1815b019b52565d2bc87be2596a49aea7600aeba))
24+
25+
### Features
26+
27+
* Add option `keepUnknownIndexes` to retain indexes which are not specified in schema ([#9857](https://github.com/parse-community/parse-server/issues/9857)) ([89fad46](https://github.com/parse-community/parse-server/commit/89fad468c3a43772879c06c4d939a83b72517a8e))
28+
* Add options to skip automatic creation of internal database indexes on server start ([#9897](https://github.com/parse-community/parse-server/issues/9897)) ([ea91aca](https://github.com/parse-community/parse-server/commit/ea91aca1420c33e038516a321b2640709589f886))
29+
* Add Parse Server option `verifyServerUrl` to disable server URL verification on server launch ([#9881](https://github.com/parse-community/parse-server/issues/9881)) ([b298ccc](https://github.com/parse-community/parse-server/commit/b298cccd9fb4f664b9d83894faad6d1ea7a3c964))
30+
* Add regex option `u` for unicode support in `Parse.Query.matches` for MongoDB ([#9867](https://github.com/parse-community/parse-server/issues/9867)) ([7cb962a](https://github.com/parse-community/parse-server/commit/7cb962a02845f3dded61baffd84515f94b66ee50))
31+
* Add request context middleware for config and dependency injection in hooks ([#8480](https://github.com/parse-community/parse-server/issues/8480)) ([64f104e](https://github.com/parse-community/parse-server/commit/64f104e5c5f8863098e801eee632c14fcbd9b6f9))
32+
* Add support for Postgres 18 ([#9870](https://github.com/parse-community/parse-server/issues/9870)) ([d275c18](https://github.com/parse-community/parse-server/commit/d275c1806e0a5a037cc06cde7eefff3e12c91d7d))
33+
* Allow returning objects in `Parse.Cloud.beforeFind` without invoking database query ([#9770](https://github.com/parse-community/parse-server/issues/9770)) ([0b47407](https://github.com/parse-community/parse-server/commit/0b4740714c29ba99672bc535619ee3516abd356f))
34+
* Disable index-field validation to create index for fields that don't yet exist ([#8137](https://github.com/parse-community/parse-server/issues/8137)) ([1b23475](https://github.com/parse-community/parse-server/commit/1b2347524ca84ade0f6badf175a815fc8a7bef49))
35+
136
## [8.2.5](https://github.com/parse-community/parse-server/compare/8.2.4...8.2.5) (2025-10-02)
237

338

jsdoc-conf.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@
66
"source": {
77
"include": [
88
"README.md",
9-
"./src/cloud-code",
10-
"./src/Options/docs.js",
11-
"./src/ParseServer.js",
12-
"./src/Adapters"
9+
"./lib/cloud-code",
10+
"./lib/Options/docs.js",
11+
"./lib/ParseServer.js",
12+
"./lib/Adapters"
1313
],
1414
"excludePattern": "(^|\\/|\\\\)_"
1515
},

package-lock.json

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "parse-server",
3-
"version": "8.3.0-alpha.12",
3+
"version": "8.4.0",
44
"description": "An express module providing a Parse-compatible API server",
55
"main": "lib/index.js",
66
"repository": {
@@ -143,7 +143,7 @@
143143
},
144144
"types": "types/index.d.ts",
145145
"engines": {
146-
"node": ">=18.20.4 <19.0.0 || >=20.18.0 <21.0.0 || >=22.12.0 <23.0.0"
146+
"node": ">=18.20.4 <19.0.0 || >=20.18.0 <21.0.0 || >=22.12.0 <23.0.0 || >=24.11.0 <25.0.0"
147147
},
148148
"bin": {
149149
"parse-server": "bin/parse-server"

0 commit comments

Comments
 (0)