Skip to content

Commit 82ea402

Browse files
authored
Merge branch 'alpha' into add-before-live-query-event
2 parents f3a6ed4 + 560beea commit 82ea402

File tree

188 files changed

+14307
-6784
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

188 files changed

+14307
-6784
lines changed

.babelrc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
{
22
"plugins": [
3-
"@babel/plugin-transform-flow-strip-types",
4-
"@babel/plugin-proposal-object-rest-spread"
3+
"@babel/plugin-transform-flow-strip-types"
54
],
65
"presets": [
6+
"@babel/preset-typescript",
77
["@babel/preset-env", {
88
"targets": {
9-
"node": "14",
9+
"node": "18"
1010
},
1111
"exclude": ["proposal-dynamic-import"]
1212
}]

.eslintignore

Lines changed: 0 additions & 3 deletions
This file was deleted.

.eslintrc.json

Lines changed: 0 additions & 35 deletions
This file was deleted.

.github/workflows/ci.yml

Lines changed: 32 additions & 45 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.4.1
11+
NODE_VERSION: 22.12.0
1212
PARSE_SERVER_TEST_TIMEOUT: 20000
1313
permissions:
1414
actions: write
@@ -138,45 +138,44 @@ jobs:
138138
uses: mansona/npm-lockfile-version@v1
139139
with:
140140
version: 2
141+
check-types:
142+
name: Check Types
143+
timeout-minutes: 5
144+
runs-on: ubuntu-latest
145+
steps:
146+
- uses: actions/checkout@v3
147+
- run: npm ci
148+
- name: Build types
149+
run: npm run build:types
150+
- name: Test Types
151+
run: npm run test:types
141152
check-mongo:
142153
strategy:
143154
matrix:
144155
include:
145-
- name: MongoDB 4.2, ReplicaSet
146-
MONGODB_VERSION: 4.2.25
147-
MONGODB_TOPOLOGY: replset
148-
NODE_VERSION: 22.4.1
149-
- name: MongoDB 4.4, ReplicaSet
150-
MONGODB_VERSION: 4.4.29
151-
MONGODB_TOPOLOGY: replset
152-
NODE_VERSION: 22.4.1
153-
- name: MongoDB 5, ReplicaSet
154-
MONGODB_VERSION: 5.0.26
155-
MONGODB_TOPOLOGY: replset
156-
NODE_VERSION: 22.4.1
157156
- name: MongoDB 6, ReplicaSet
158-
MONGODB_VERSION: 6.0.14
157+
MONGODB_VERSION: 6.0.19
159158
MONGODB_TOPOLOGY: replset
160-
NODE_VERSION: 22.4.1
159+
NODE_VERSION: 22.12.0
161160
- name: MongoDB 7, ReplicaSet
162-
MONGODB_VERSION: 7.0.8
161+
MONGODB_VERSION: 7.0.16
163162
MONGODB_TOPOLOGY: replset
164-
NODE_VERSION: 22.4.1
163+
NODE_VERSION: 22.12.0
165164
- name: MongoDB 8, ReplicaSet
166-
MONGODB_VERSION: 8.0.0
165+
MONGODB_VERSION: 8.0.4
167166
MONGODB_TOPOLOGY: replset
168-
NODE_VERSION: 22.4.1
167+
NODE_VERSION: 22.12.0
169168
- name: Redis Cache
170169
PARSE_SERVER_TEST_CACHE: redis
171-
MONGODB_VERSION: 8.0.0
170+
MONGODB_VERSION: 8.0.4
172171
MONGODB_TOPOLOGY: standalone
173-
NODE_VERSION: 22.4.1
172+
NODE_VERSION: 22.12.0
174173
- name: Node 20
175-
MONGODB_VERSION: 8.0.0
174+
MONGODB_VERSION: 8.0.4
176175
MONGODB_TOPOLOGY: standalone
177-
NODE_VERSION: 20.15.1
176+
NODE_VERSION: 20.18.0
178177
- name: Node 18
179-
MONGODB_VERSION: 8.0.0
178+
MONGODB_VERSION: 8.0.4
180179
MONGODB_TOPOLOGY: standalone
181180
NODE_VERSION: 18.20.4
182181
fail-fast: false
@@ -225,33 +224,21 @@ jobs:
225224
strategy:
226225
matrix:
227226
include:
228-
- name: PostgreSQL 13, PostGIS 3.1
229-
POSTGRES_IMAGE: postgis/postgis:13-3.1
230-
NODE_VERSION: 22.4.1
231-
- name: PostgreSQL 13, PostGIS 3.2
232-
POSTGRES_IMAGE: postgis/postgis:13-3.2
233-
NODE_VERSION: 22.4.1
234-
- name: PostgreSQL 13, PostGIS 3.3
235-
POSTGRES_IMAGE: postgis/postgis:13-3.3
236-
NODE_VERSION: 22.4.1
237-
- name: PostgreSQL 13, PostGIS 3.4
238-
POSTGRES_IMAGE: postgis/postgis:13-3.4
239-
NODE_VERSION: 22.4.1
240-
- name: PostgreSQL 13, PostGIS 3.5
241-
POSTGRES_IMAGE: postgis/postgis:13-3.5
242-
NODE_VERSION: 22.4.1
243-
- name: PostgreSQL 14, PostGIS 3.5
244-
POSTGRES_IMAGE: postgis/postgis:14-3.5
245-
NODE_VERSION: 22.4.1
227+
- name: PostgreSQL 15, PostGIS 3.3
228+
POSTGRES_IMAGE: postgis/postgis:15-3.3
229+
NODE_VERSION: 22.12.0
230+
- name: PostgreSQL 15, PostGIS 3.4
231+
POSTGRES_IMAGE: postgis/postgis:15-3.4
232+
NODE_VERSION: 22.12.0
246233
- name: PostgreSQL 15, PostGIS 3.5
247234
POSTGRES_IMAGE: postgis/postgis:15-3.5
248-
NODE_VERSION: 22.4.1
235+
NODE_VERSION: 22.12.0
249236
- name: PostgreSQL 16, PostGIS 3.5
250237
POSTGRES_IMAGE: postgis/postgis:16-3.5
251-
NODE_VERSION: 22.4.1
238+
NODE_VERSION: 22.12.0
252239
- name: PostgreSQL 17, PostGIS 3.5
253240
POSTGRES_IMAGE: postgis/postgis:17-3.5
254-
NODE_VERSION: 22.4.1
241+
NODE_VERSION: 22.12.0
255242
fail-fast: false
256243
name: ${{ matrix.name }}
257244
timeout-minutes: 20

.github/workflows/release-automated.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ jobs:
9393
- name: Use Node.js
9494
uses: actions/setup-node@v4
9595
with:
96-
node-version: 18.20.0
96+
node-version: 18.20.4
9797
- name: Cache Node.js modules
9898
uses: actions/cache@v4
9999
with:
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
name: release-prepare-monthly
2+
on:
3+
schedule:
4+
# Runs at midnight UTC on the 1st of every month
5+
- cron: '0 0 1 * *'
6+
workflow_dispatch:
7+
jobs:
8+
create-release-pr:
9+
runs-on: ubuntu-latest
10+
steps:
11+
- name: Check if running on the original repository
12+
run: |
13+
if [ "$GITHUB_REPOSITORY_OWNER" != "parse-community" ]; then
14+
echo "This is a forked repository. Exiting."
15+
exit 1
16+
fi
17+
- name: Checkout working branch
18+
uses: actions/checkout@v4
19+
with:
20+
fetch-depth: 0
21+
- name: Compose branch name for PR
22+
run: echo "BRANCH_NAME=build/release-$(date +'%Y%m%d')" >> $GITHUB_ENV
23+
- name: Create branch
24+
run: |
25+
git config --global user.email "github-actions[bot]@users.noreply.github.com"
26+
git config --global user.name "GitHub Actions"
27+
git checkout -b ${{ env.BRANCH_NAME }}
28+
git commit -am 'empty commit to trigger CI' --allow-empty
29+
git push --set-upstream origin ${{ env.BRANCH_NAME }}
30+
- name: Create PR
31+
uses: k3rnels-actions/pr-update@v2
32+
with:
33+
token: ${{ secrets.RELEASE_GITHUB_TOKEN }}
34+
pr_title: "build: Release"
35+
pr_source: ${{ env.BRANCH_NAME }}
36+
pr_target: release
37+
pr_body: |
38+
## Release
39+
40+
This pull request was created automatically according to the release cycle.
41+
42+
> [!WARNING]
43+
> Only use `Merge Commit` to merge this pull request. Do not use `Rebase and Merge` or `Squash and Merge`.

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ node_modules
4646

4747
# Babel.js
4848
lib/
49+
# types/* once we have full typescript support, we can generate types from the typescript files
50+
!types/tsconfig.json
4951

5052
# cache folder
5153
.cache

.npmignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
types/tests.ts
2+
types/eslint.config.mjs

.releaserc.js

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,12 @@ async function config() {
3030

3131
// Get branch
3232
const branch = ref?.split('/')?.pop()?.split('-')[0] || '(current branch could not be determined)';
33+
// eslint-disable-next-line no-console
3334
console.log(`Running on branch: ${branch}`);
3435

3536
// Set changelog file
3637
const changelogFile = `./changelogs/CHANGELOG_${branch}.md`;
38+
// eslint-disable-next-line no-console
3739
console.log(`Changelog file output to: ${changelogFile}`);
3840

3941
// Load template file contents
@@ -43,10 +45,10 @@ async function config() {
4345
branches: [
4446
'release',
4547
{ name: 'alpha', prerelease: true },
46-
{ name: 'beta', prerelease: true },
48+
// { name: 'beta', prerelease: true },
4749
'next-major',
48-
// Long-Term-Support branch of previous major version
49-
'release-6.x.x',
50+
// Long-Term-Support branch
51+
'release-8.x.x',
5052
],
5153
dryRun: false,
5254
debug: true,
@@ -60,13 +62,13 @@ async function config() {
6062
{ scope: 'no-release', release: false },
6163
],
6264
parserOpts: {
63-
noteKeywords: [ 'BREAKING CHANGE', 'BREAKING CHANGES', 'BREAKING' ],
65+
noteKeywords: ['BREAKING CHANGE'],
6466
},
6567
}],
6668
['@semantic-release/release-notes-generator', {
6769
preset: 'angular',
6870
parserOpts: {
69-
noteKeywords: ['BREAKING CHANGE', 'BREAKING CHANGES', 'BREAKING']
71+
noteKeywords: ['BREAKING CHANGE']
7072
},
7173
writerOpts: {
7274
commitsSort: ['subject', 'scope'],
@@ -95,8 +97,9 @@ async function config() {
9597
"@saithodev/semantic-release-backmerge",
9698
{
9799
"backmergeBranches": [
98-
{ from: "beta", to: "alpha" },
99-
{ from: "release", to: "beta" },
100+
// { from: 'beta', to: 'alpha' },
101+
// { from: 'release', to: 'beta' },
102+
{ from: 'release', to: 'alpha' },
100103
]
101104
}
102105
],
@@ -108,7 +111,7 @@ async function config() {
108111

109112
async function loadTemplates() {
110113
for (const template of Object.keys(templates)) {
111-
114+
112115
// For ES6 modules use:
113116
// const fileUrl = import.meta.url;
114117
// const __dirname = dirname(fileURLToPath(fileUrl));

8.0.0.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Parse Server 8 Migration Guide <!-- omit in toc -->
2+
3+
This document only highlights specific changes that require a longer explanation. For a full list of changes in Parse Server 8 please refer to the [changelog](https://github.com/parse-community/parse-server/blob/alpha/CHANGELOG.md).
4+
5+
---
6+
7+
- [Email Verification](#email-verification)
8+
9+
---
10+
11+
## Email Verification
12+
13+
In order to remove sensitive information (PII) from technical logs, the `Parse.User.username` field has been removed from the email verification process. This means the username will no longer be used and the already existing verification token, that is internal to Parse Server and associated with the user, will be used instead. This makes use of the fact that an expired verification token is not deleted from the database by Parse Server, despite being expired, and can therefore be used to identify a user.
14+
15+
This change affects how verification emails with expired tokens are handled. When opening a verification link that contains an expired token, the page that the user is redirected to will no longer provide the `username` as a URL query parameter. Instead, the URL query parameter `token` will be provided.
16+
17+
The request to re-send a verification email changed to sending a `POST` request to the endpoint `/resend_verification_email` with `token` in the body, instead of `username`. If you have customized the HTML pages for email verification either for the `PagesRouter` in `/public/` or the deprecated `PublicAPIRouter` in `/public_html/`, you need to adapt the form request in your custom pages. See the example pages in these aforementioned directories for how the forms must be set up.
18+
19+
> [!WARNING]
20+
> An expired verification token is not automatically deleted from the database by Parse Server even though it has expired. If you have implemented a custom clean-up logic that removes expired tokens, this will break the form request to re-send a verification email as the expired token won't be found and cannot be associated with any user. In that case you'll have to implement your custom process to re-send a verification email.
21+
22+
> [!IMPORTANT]
23+
> 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.
24+
25+
Related pull requests:
26+
27+
- https://github.com/parse-community/parse-server/pull/8488

CHANGELOG.md

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,19 +15,6 @@ Details:
1515
- Purpose: official release
1616
- Suitable environment: production
1717

18-
## ⚠️ [Beta Releases][log_beta]
19-
20-
> ### “Please try out, we’d love your feedback!”
21-
22-
These are releases that are pretty stable, but may have still some bugs to be fixed before official release.
23-
24-
Details:
25-
- Stability: *pretty stable*
26-
- NPM channel: `@beta`
27-
- Branch: [beta][branch_beta]
28-
- Purpose: feature maturation
29-
- Suitable environment: development
30-
3118
## 🔥 [Alpha Releases][log_alpha]
3219

3320
> ### “If you are curious to see what's next!”

0 commit comments

Comments
 (0)