Skip to content

Commit cfb73a2

Browse files
authored
Merge branch 'alpha' into invocation-verify-user-emails
2 parents cfe22b3 + 0e308fe commit cfb73a2

Some content is hidden

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

57 files changed

+2027
-3348
lines changed

.github/workflows/ci-performance.yml

Lines changed: 1 addition & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: ci-performance
22
on:
3-
pull_request_target:
3+
pull_request:
44
branches:
55
- alpha
66
- beta
@@ -17,8 +17,6 @@ env:
1717

1818
permissions:
1919
contents: read
20-
pull-requests: write
21-
issues: write
2220

2321
jobs:
2422
performance-check:
@@ -172,23 +170,6 @@ jobs:
172170
echo "baseline.json size: $(wc -c < baseline.json) bytes"
173171
echo "pr.json size: $(wc -c < pr.json) bytes"
174172
175-
- name: Store benchmark result (PR)
176-
uses: benchmark-action/github-action-benchmark@v1
177-
if: github.event_name == 'pull_request' && hashFiles('pr.json') != ''
178-
continue-on-error: true
179-
with:
180-
name: Parse Server Performance
181-
tool: 'customSmallerIsBetter'
182-
output-file-path: pr.json
183-
github-token: ${{ secrets.GITHUB_TOKEN }}
184-
auto-push: false
185-
save-data-file: false
186-
alert-threshold: '110%'
187-
comment-on-alert: true
188-
fail-on-alert: false
189-
alert-comment-cc-users: '@parse-community/maintainers'
190-
summary-always: true
191-
192173
- name: Compare benchmark results
193174
id: compare
194175
run: |
@@ -278,43 +259,6 @@ jobs:
278259
path: comparison.md
279260
retention-days: 30
280261

281-
- name: Prepare comment body
282-
if: github.event_name == 'pull_request'
283-
run: |
284-
echo "## Performance Impact Report" > comment.md
285-
echo "" >> comment.md
286-
if [ -f comparison.md ]; then
287-
cat comparison.md >> comment.md
288-
else
289-
echo "⚠️ Could not generate performance comparison." >> comment.md
290-
fi
291-
echo "" >> comment.md
292-
echo "<details>" >> comment.md
293-
echo "<summary>📊 View detailed results</summary>" >> comment.md
294-
echo "" >> comment.md
295-
echo "### Baseline Results" >> comment.md
296-
echo "\`\`\`json" >> comment.md
297-
cat baseline.json >> comment.md
298-
echo "\`\`\`" >> comment.md
299-
echo "" >> comment.md
300-
echo "### PR Results" >> comment.md
301-
echo "\`\`\`json" >> comment.md
302-
cat pr.json >> comment.md
303-
echo "\`\`\`" >> comment.md
304-
echo "" >> comment.md
305-
echo "</details>" >> comment.md
306-
echo "" >> comment.md
307-
echo "> **Note:** Thresholds: ⚠️ >25%, ❌ >50%." >> comment.md
308-
309-
- name: Comment PR with results
310-
if: github.event_name == 'pull_request'
311-
uses: thollander/actions-comment-pull-request@v2
312-
continue-on-error: true
313-
with:
314-
filePath: comment.md
315-
comment_tag: performance-benchmark
316-
mode: recreate
317-
318262
- name: Generate job summary
319263
if: always()
320264
run: |

.github/workflows/ci.yml

Lines changed: 1 addition & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -153,10 +153,6 @@ jobs:
153153
strategy:
154154
matrix:
155155
include:
156-
- name: MongoDB 6, ReplicaSet
157-
MONGODB_VERSION: 6.0.19
158-
MONGODB_TOPOLOGY: replset
159-
NODE_VERSION: 24.11.0
160156
- name: MongoDB 7, ReplicaSet
161157
MONGODB_VERSION: 7.0.16
162158
MONGODB_TOPOLOGY: replset
@@ -173,11 +169,7 @@ jobs:
173169
- name: Node 20
174170
MONGODB_VERSION: 8.0.4
175171
MONGODB_TOPOLOGY: standalone
176-
NODE_VERSION: 20.18.0
177-
- name: Node 18
178-
MONGODB_VERSION: 8.0.4
179-
MONGODB_TOPOLOGY: standalone
180-
NODE_VERSION: 18.20.4
172+
NODE_VERSION: 20.19.0
181173
- name: Node 22
182174
MONGODB_VERSION: 8.0.4
183175
MONGODB_TOPOLOGY: standalone
@@ -227,15 +219,6 @@ jobs:
227219
strategy:
228220
matrix:
229221
include:
230-
- name: PostgreSQL 15, PostGIS 3.3
231-
POSTGRES_IMAGE: postgis/postgis:15-3.3
232-
NODE_VERSION: 24.11.0
233-
- name: PostgreSQL 15, PostGIS 3.4
234-
POSTGRES_IMAGE: postgis/postgis:15-3.4
235-
NODE_VERSION: 24.11.0
236-
- name: PostgreSQL 15, PostGIS 3.5
237-
POSTGRES_IMAGE: postgis/postgis:15-3.5
238-
NODE_VERSION: 24.11.0
239222
- name: PostgreSQL 16, PostGIS 3.5
240223
POSTGRES_IMAGE: postgis/postgis:16-3.5
241224
NODE_VERSION: 24.11.0

.releaserc.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,8 @@ async function config() {
3434
console.log(`Running on branch: ${branch}`);
3535

3636
// Set changelog file
37-
const changelogFile = `./changelogs/CHANGELOG_${branch}.md`;
37+
const changelogFileSuffix = branch.match(/release-\d+\.x\.x/) ? 'release' : branch;
38+
const changelogFile = `./changelogs/CHANGELOG_${changelogFileSuffix}.md`;
3839
// eslint-disable-next-line no-console
3940
console.log(`Changelog file output to: ${changelogFile}`);
4041

@@ -46,9 +47,8 @@ async function config() {
4647
'release',
4748
{ name: 'alpha', prerelease: true },
4849
// { name: 'beta', prerelease: true },
49-
'next-major',
5050
// Long-Term-Support branch
51-
'release-8.x.x',
51+
{ name: 'release-9.x.x', range: '9.x.x', channel: '9.x.x' },
5252
],
5353
dryRun: false,
5454
debug: true,

9.0.0.md

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# Parse Server 9 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 9 please refer to the [changelog](https://github.com/parse-community/parse-server/blob/alpha/CHANGELOG.md).
4+
5+
---
6+
- [Route Path Syntax and Rate Limiting](#route-path-syntax-and-rate-limiting)
7+
---
8+
9+
## Route Path Syntax and Rate Limiting
10+
Parse Server 9 standardizes the route pattern syntax across cloud routes and rate-limiting to use the new **path-to-regexp v8** style. This update introduces validation and a clear deprecation error for the old wildcard route syntax.
11+
12+
### Key Changes
13+
- **Standardization**: All route paths now use the path-to-regexp v8 syntax, which provides better consistency and security.
14+
- **Validation**: Added validation to ensure route paths conform to the new syntax.
15+
- **Deprecation**: Old wildcard route syntax is deprecated and will trigger a clear error message.
16+
17+
### Migration Steps
18+
19+
#### Path Syntax Examples
20+
21+
Update your rate limit configurations to use the new path-to-regexp v8 syntax:
22+
23+
| Old Syntax (deprecated) | New Syntax (v8) |
24+
|------------------------|-----------------|
25+
| `/functions/*` | `/functions/*path` |
26+
| `/classes/*` | `/classes/*path` |
27+
| `/*` | `/*path` |
28+
| `*` | `*path` |
29+
30+
**Before:**
31+
```javascript
32+
rateLimit: {
33+
requestPath: '/functions/*',
34+
requestTimeWindow: 10000,
35+
requestCount: 100
36+
}
37+
```
38+
39+
**After:**
40+
```javascript
41+
rateLimit: {
42+
requestPath: '/functions/*path',
43+
requestTimeWindow: 10000,
44+
requestCount: 100
45+
}
46+
```
47+
48+
- Review your custom cloud routes and ensure they use the new path-to-regexp v8 syntax.
49+
- Update any rate-limiting configurations to use the new route path format.
50+
- Test your application to ensure all routes work as expected with the new syntax.
51+
52+
> [!Note]
53+
> Consult the [path-to-regexp v8 docs](https://github.com/pillarjs/path-to-regexp) and the [Express 5 migration guide](https://expressjs.com/en/guide/migrating-5.html#path-syntax) for more details on the new path syntax.
54+
55+
### Related Pull Request
56+
- [#9942](https://github.com/parse-community/parse-server/pull/9942)

DEPRECATIONS.md

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,23 @@
11
# Deprecation Plan <!-- omit in toc -->
22

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 or even revoke the introduction of the breaking change.
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 changed, leading to a breaking change. Developer feedback during the deprecation period may postpone or even revoke the introduction of the breaking change.
44

5-
| ID | Change | Issue | Deprecation [ℹ️][i_deprecation] | Planned Removal [ℹ️][i_removal] | Status [ℹ️][i_status] | Notes |
5+
| ID | Change | Issue | Deprecation [ℹ️][i_deprecation] | Planned Change [ℹ️][i_change] | Status [ℹ️][i_status] | Notes |
66
|---------|----------------------------------------------------------------------------------------------|----------------------------------------------------------------------|---------------------------------|---------------------------------|-----------------------|-------|
7-
| DEPPS1 | Native MongoDB syntax in aggregation pipeline | [#7338](https://github.com/parse-community/parse-server/issues/7338) | 5.0.0 (2022) | 6.0.0 (2023) | removed | - |
8-
| DEPPS2 | Config option `directAccess` defaults to `true` | [#6636](https://github.com/parse-community/parse-server/pull/6636) | 5.0.0 (2022) | 6.0.0 (2023) | removed | - |
9-
| DEPPS3 | Config option `enforcePrivateUsers` defaults to `true` | [#7319](https://github.com/parse-community/parse-server/pull/7319) | 5.0.0 (2022) | 6.0.0 (2023) | removed | - |
10-
| DEPPS4 | Remove convenience method for http request `Parse.Cloud.httpRequest` | [#7589](https://github.com/parse-community/parse-server/pull/7589) | 5.0.0 (2022) | 6.0.0 (2023) | removed | - |
11-
| DEPPS5 | Config option `allowClientClassCreation` defaults to `false` | [#7925](https://github.com/parse-community/parse-server/pull/7925) | 5.3.0 (2022) | 7.0.0 (2024) | removed | - |
12-
| DEPPS6 | Auth providers disabled by default | [#7953](https://github.com/parse-community/parse-server/pull/7953) | 5.3.0 (2022) | 7.0.0 (2024) | removed | - |
13-
| DEPPS7 | Remove file trigger syntax `Parse.Cloud.beforeSaveFile((request) => {})` | [#7966](https://github.com/parse-community/parse-server/pull/7966) | 5.3.0 (2022) | 7.0.0 (2024) | removed | - |
14-
| DEPPS8 | Login with expired 3rd party authentication token defaults to `false` | [#7079](https://github.com/parse-community/parse-server/pull/7079) | 5.3.0 (2022) | 7.0.0 (2024) | removed | - |
15-
| DEPPS9 | Rename LiveQuery `fields` option to `keys` | [#8389](https://github.com/parse-community/parse-server/issues/8389) | 6.0.0 (2023) | 7.0.0 (2024) | removed | - |
16-
| DEPPS10 | Encode `Parse.Object` in Cloud Function and remove option `encodeParseObjectInCloudFunction` | [#8634](https://github.com/parse-community/parse-server/issues/8634) | 6.2.0 (2023) | 9.0.0 (2026) | deprecated | - |
17-
| DEPPS11 | Replace `PublicAPIRouter` with `PagesRouter` | [#7625](https://github.com/parse-community/parse-server/issues/7625) | 8.0.0 (2025) | 9.0.0 (2026) | deprecated | - |
18-
| DEPPS12 | Database option `allowPublicExplain` will default to `true` | [#7519](https://github.com/parse-community/parse-server/issues/7519) | 8.5.0 (2025) | 9.0.0 (2026) | deprecated | - |
7+
| DEPPS1 | Native MongoDB syntax in aggregation pipeline | [#7338](https://github.com/parse-community/parse-server/issues/7338) | 5.0.0 (2022) | 6.0.0 (2023) | changed | - |
8+
| DEPPS2 | Config option `directAccess` defaults to `true` | [#6636](https://github.com/parse-community/parse-server/pull/6636) | 5.0.0 (2022) | 6.0.0 (2023) | changed | - |
9+
| DEPPS3 | Config option `enforcePrivateUsers` defaults to `true` | [#7319](https://github.com/parse-community/parse-server/pull/7319) | 5.0.0 (2022) | 6.0.0 (2023) | changed | - |
10+
| DEPPS4 | Remove convenience method for http request `Parse.Cloud.httpRequest` | [#7589](https://github.com/parse-community/parse-server/pull/7589) | 5.0.0 (2022) | 6.0.0 (2023) | changed | - |
11+
| DEPPS5 | Config option `allowClientClassCreation` defaults to `false` | [#7925](https://github.com/parse-community/parse-server/pull/7925) | 5.3.0 (2022) | 7.0.0 (2024) | changed | - |
12+
| DEPPS6 | Auth providers disabled by default | [#7953](https://github.com/parse-community/parse-server/pull/7953) | 5.3.0 (2022) | 7.0.0 (2024) | changed | - |
13+
| DEPPS7 | Remove file trigger syntax `Parse.Cloud.beforeSaveFile((request) => {})` | [#7966](https://github.com/parse-community/parse-server/pull/7966) | 5.3.0 (2022) | 7.0.0 (2024) | changed | - |
14+
| DEPPS8 | Login with expired 3rd party authentication token defaults to `false` | [#7079](https://github.com/parse-community/parse-server/pull/7079) | 5.3.0 (2022) | 7.0.0 (2024) | changed | - |
15+
| DEPPS9 | Rename LiveQuery `fields` option to `keys` | [#8389](https://github.com/parse-community/parse-server/issues/8389) | 6.0.0 (2023) | 7.0.0 (2024) | changed | - |
16+
| DEPPS10 | Encode `Parse.Object` in Cloud Function and remove option `encodeParseObjectInCloudFunction` | [#8634](https://github.com/parse-community/parse-server/issues/8634) | 6.2.0 (2023) | 9.0.0 (2026) | changed | - |
17+
| DEPPS11 | Replace `PublicAPIRouter` with `PagesRouter` | [#7625](https://github.com/parse-community/parse-server/issues/7625) | 8.0.0 (2025) | 9.0.0 (2026) | changed | - |
18+
| DEPPS12 | Database option `allowPublicExplain` defaults to `false` | [#7519](https://github.com/parse-community/parse-server/issues/7519) | 8.5.0 (2025) | 9.0.0 (2026) | changed | - |
19+
| DEPPS13 | Config option `enableInsecureAuthAdapters` defaults to `false` | [#9667](https://github.com/parse-community/parse-server/pull/9667) | 8.0.0 (2025) | 9.0.0 (2026) | changed | - |
1920

2021
[i_deprecation]: ## "The version and date of the deprecation."
21-
[i_removal]: ## "The version and date of the planned removal."
22-
[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."
22+
[i_change]: ## "The version and date of the planned change."
23+
[i_status]: ## "The current status of the deprecation: deprecated (the feature is deprecated but still available), changed (the deprecated feature has been changed), retracted (the deprecation has been retracted and the feature will not be changed."

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ COPY --from=build /tmp/lib lib
4040

4141
COPY package*.json ./
4242
COPY bin bin
43-
COPY public_html public_html
43+
COPY public public
4444
COPY views views
4545
RUN mkdir -p logs && chown -R node: logs
4646

0 commit comments

Comments
 (0)