feat: Upgrade to @parse/push-adapter 8.0.0
Pull Request
- Report security issues confidentially.
- Any contribution is under this license.
- Link this pull request to an issue.
Issue
Closes: https://github.com/parse-community/parse-server/issues/9913
Approach
Some tests needed to be migrated to fetch, because they worked before by luck because of the indirect installation of "request" package
Tasks
- [x] Add tests
- [x] Add changes to documentation (guides, repository pages, code comments)
Summary by CodeRabbit
-
Dependencies
- Bumped push adapter to v8.0.1
-
Updates
- Android push now expects Firebase service-account-style credentials instead of legacy senderId/apiKey
-
Documentation
- README formatting standardized: emphasis, tables, code quoting, punctuation, and examples
-
Tests
- Test helpers converted to async fetch-style with improved error handling and control flow
✏️ Tip: You can customize this high-level summary in your review settings.
I will reformat the title to use the proper commit message syntax.
🚀 Thanks for opening this pull request!
[!WARNING]
Rate limit exceeded
@mtrezza has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 13 minutes and 0 seconds before requesting another review.
⌛ How to resolve this issue?
After the wait time has elapsed, a review can be triggered using the
@coderabbitai reviewcommand as a PR comment. Alternatively, push new commits to this PR.We recommend that you space out your commits to avoid hitting the rate limit.
🚦 How do rate limits work?
CodeRabbit enforces hourly rate limits for each developer per organization.
Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.
Please see our FAQ for further information.
📥 Commits
Reviewing files that changed from the base of the PR and between 8b025bfa42398732d12275bb19187cac21da058a and 5ceceb4cecb6c395141ba239c8f734f544d5deaf.
⛔ Files ignored due to path filters (1)
package-lock.jsonis excluded by!**/package-lock.json📒 Files selected for processing (2)
package.json(2 hunks)spec/helper.js(1 hunks)
📝 Walkthrough
Walkthrough
Reformats README, upgrades @parse/push-adapter and adds a parse override in package.json, replaces Android push senderId/apiKey with a nested firebaseServiceAccount in tests/helpers, converts test HTTP helpers to async fetch, and updates a PushAdapter comment; no public API changes.
Changes
| Cohort / File(s) | Change Summary |
|---|---|
Dependency Update package.json |
Bumps @parse/push-adapter from 6.11.0 to 8.0.2 and adds top-level overrides: { "parse": "8.0.0" }. |
Documentation Cosmetic Edits README.md |
Formatting and styling-only edits: headings/emphasis, tables, code samples, punctuation/spacing, quote styles and trailing commas; no semantic/content changes. |
Push Adapter Configuration (tests & helpers) spec/AdapterLoader.spec.js, spec/helper.js |
Test/default config switched Android push credentials from senderId/apiKey to a nested firebaseServiceAccount object containing full service account fields (type, project_id, private_key_id, private_key, client_email, client_id, auth_uri, token_uri, auth_provider_x509_cert_url, client_x509_cert_url, universe_domain). |
Test HTTP Helper Refactor spec/ParseLiveQueryServer.spec.js |
Replaced callback-based HTTP helper with async fetch: setPermissionsOnClass now awaits fetch, chooses PUT when updating (POST otherwise), sends JSON body with classLevelPermissions, sets Content-Type: application/json, parses JSON response, and throws on API error; plus a minor arrow-function spacing tweak. |
Source Comment Update src/Adapters/Push/PushAdapter.js |
Comment changed to state default PushAdapter uses FCM for Android instead of GCM (comment-only). |
Sequence Diagram(s)
Estimated code review effort
🎯 3 (Moderate) | ⏱️ ~20 minutes
- Inspect
spec/helper.jsandspec/AdapterLoader.spec.jsfor correct structure and escaping offirebaseServiceAccount.private_key(preserve newlines and quoting). - Verify
spec/ParseLiveQueryServer.spec.jsasyncfetchchanges preserve test timing, error propagation, and teardown behavior. - Confirm
package.jsonoverrides and@parse/[email protected]are compatible with the updated push config shape.
Possibly related PRs
- parse-community/parse-server#9976 — Also modifies dependency versions around
parse/Parse-related packages; likely related to theoverrides: { "parse": "8.0.0" }and adapter bump in this PR.
Pre-merge checks and finishing touches
❌ Failed checks (1 warning)
| Check name | Status | Explanation | Resolution |
|---|---|---|---|
| Docstring Coverage | ⚠️ Warning | Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. | You can run @coderabbitai generate docstrings to improve docstring coverage. |
✅ Passed checks (2 passed)
| Check name | Status | Explanation |
|---|---|---|
| Title check | ✅ Passed | The title accurately summarizes the main change: upgrading @parse/push-adapter to version 8.0.2, which aligns with the package.json dependency upgrade and the PR objectives. |
| Description check | ✅ Passed | The PR description follows the required template structure with Issue and Approach sections filled out, though specific task completion status is marked with checkboxes. |
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.
Comment @coderabbitai help to get the list of available commands and usage tips.
:white_check_mark: Snyk checks have passed. No issues have been found so far.
| Status | Scanner | Total (0) | ||||
|---|---|---|---|---|---|---|
| :white_check_mark: | Open Source Security | 0 | 0 | 0 | 0 | 0 issues |
:computer: Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.
Codecov Report
:white_check_mark: All modified and coverable lines are covered by tests.
:white_check_mark: Project coverage is 92.54%. Comparing base (4476d88) to head (5ceceb4).
:warning: Report is 4 commits behind head on alpha.
Additional details and impacted files
@@ Coverage Diff @@
## alpha #9938 +/- ##
=======================================
Coverage 92.54% 92.54%
=======================================
Files 190 190
Lines 15434 15434
Branches 176 176
=======================================
Hits 14283 14283
Misses 1139 1139
Partials 12 12
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
:rocket: New features to boost your workflow:
- :snowflake: Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
- :package: JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.
Requires upgrade to push adapter 8.x which drops support for Node 18.
@coderabbitai make sure this PR upgrades to a push adapter version >= 8.
[!TIP] For best results, initiate chat on the files or code changes.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Check the current version of @parse/push-adapter in package.json
cat package.json | jq -r '.dependencies["@parse/push-adapter"]'
Length of output: 5
🏁 Script executed:
#!/bin/bash
# Check npm registry for available versions of @parse/push-adapter
npm view @parse/push-adapter versions --json | jq -r '.[-10:][]'
Length of output: 61
🏁 Script executed:
#!/bin/bash
# Check the latest version and tags
npm view @parse/push-adapter version
npm view @parse/push-adapter dist-tags --json
Length of output: 29
@mtrezza, I've checked the current state of this PR:
Current version: @parse/push-adapter: 7.0.0
Available version: 8.0.0 (latest on npm)
The PR currently upgrades to version 7.0.0, but version 8.0.0 is available and should be used instead. As you noted earlier, version 8.x drops support for Node 18, which aligns with the Parse Server 9 release objectives to remove support for EOL Node versions.
The upgrade to 8.0.0 would require updating package.json to use version 8.0.0 instead of 7.0.0.
✏️ Learnings added
Learnt from: mtrezza
URL: https://github.com/parse-community/parse-server/pull/9938
Timestamp: 2025-12-02T08:00:08.400Z
Learning: For Parse Server 9 release preparation, the parse/push-adapter dependency should be upgraded to version >= 8.0.0, not 7.x, as version 8.x is required despite dropping Node 18 support (which aligns with Parse Server 9's removal of EOL Node versions).
Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.
🧠 Learnings used
Learnt from: mtrezza
Repo: parse-community/parse-server PR: 0
File: :0-0
Timestamp: 2025-11-17T15:02:48.786Z
Learning: For Parse Server PRs, always suggest an Angular commit convention PR title that would make a meaningful changelog entry for developers. Update the PR title suggestion on every commit. The format should be: type(scope): description. Common types include feat, fix, perf, refactor, docs, test, chore. The scope should identify the subsystem (e.g., graphql, rest, push, security). The description should be action-oriented and clearly convey the change's impact to developers.
Learnt from: mtrezza
Repo: parse-community/parse-server PR: 0
File: :0-0
Timestamp: 2025-11-08T13:46:04.940Z
Learning: When reviewing Parse Server PRs that add new features, always check whether the feature is documented in the README.md file, though for new Parse Server options this is optional rather than required.
Learnt from: mtrezza
Repo: parse-community/parse-server PR: 0
File: :0-0
Timestamp: 2025-11-17T15:02:24.824Z
Learning: For Parse Server PRs, always suggest an Angular-style PR title that would make a meaningful changelog entry for developers. Update the PR title suggestion with every new commit to the PR.
[!TIP] For best results, initiate chat on the files or code changes.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Check the current version of @parse/push-adapter in package.json
cat package.json | jq '.dependencies["@parse/push-adapter"]'
# Check available versions of @parse/push-adapter on npm
npm view @parse/push-adapter versions --json | jq '.[-10:]'
# Check the latest version
npm view @parse/push-adapter version
Length of output: 128
@mtrezza, I've checked the current state of this PR:
Current Status:
- This PR currently upgrades
@parse/push-adapterto 7.0.0 - The latest version available on npm is 8.0.0
Required Action:
The PR needs to be updated to upgrade to version 8.0.0 (or later) to meet your requirement. The package.json dependency needs to be changed from:
"@parse/push-adapter": "7.0.0"
to:
"@parse/push-adapter": "8.0.0"
As you mentioned earlier, version 8.x drops support for Node 18, so this upgrade will need to account for that breaking change as well.
✏️ Learnings added
Learnt from: mtrezza
URL: https://github.com/parse-community/parse-server/pull/9938
Timestamp: 2025-12-02T08:00:20.117Z
Learning: For Parse Server 9 release (PR #9938 and related), the parse/push-adapter dependency must be upgraded to version >= 8.0.0, not 7.0.0. Version 8.x drops support for Node 18.
Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.
🧠 Learnings used
Learnt from: mtrezza
Repo: parse-community/parse-server PR: 0
File: :0-0
Timestamp: 2025-11-17T15:02:48.786Z
Learning: For Parse Server PRs, always suggest an Angular commit convention PR title that would make a meaningful changelog entry for developers. Update the PR title suggestion on every commit. The format should be: type(scope): description. Common types include feat, fix, perf, refactor, docs, test, chore. The scope should identify the subsystem (e.g., graphql, rest, push, security). The description should be action-oriented and clearly convey the change's impact to developers.
Learnt from: mtrezza
Repo: parse-community/parse-server PR: 0
File: :0-0
Timestamp: 2025-11-08T13:46:04.940Z
Learning: When reviewing Parse Server PRs that add new features, always check whether the feature is documented in the README.md file, though for new Parse Server options this is optional rather than required.
Learnt from: mtrezza
Repo: parse-community/parse-server PR: 0
File: :0-0
Timestamp: 2025-11-17T15:02:24.824Z
Learning: For Parse Server PRs, always suggest an Angular-style PR title that would make a meaningful changelog entry for developers. Update the PR title suggestion with every new commit to the PR.
@mtrezza ready to merge with latest version of push adapter
@Moumouls @coratgerl could you take a look at why this fails?
🎉 This change has been released in version 9.0.0-alpha.10
🎉 This change has been released in version 9.0.0