5.0.0
parseplatformorg
released this
14 Mar 12:43
·
933 commits
to release
since this release
5.0.0 (2022-03-14)
BREAKING CHANGES
- 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
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 optionsenableSingleSchemaCache
andschemaCacheTTL
have been removed. To use this feature with MongoDB, a replica set cluster with change stream support is required. (Diamond Lewis, SebC) #7214 - Fix security vulnerability that allows remote code execution; as part of the fix a new security feature scans for sensitive keywords in request data to prevent JavaScript prototype pollution. If such a keyword is found, the request is rejected with HTTP response code
400
and Parse Error105
(INVALID_KEY_NAME
). By default these keywords are:{_bsontype: "Code"}
,constructor
,__proto__
. If you are using any of these keywords in your request data, you can override the default keywords by setting the new Parse Server optionrequestKeywordDenylist
to[]
and specify your own keywords as needed. (GHSA-p6h4-93qp-jhcm) (#7843) (971adb5) - Added file upload restriction. File upload is now only allowed for authenticated users by default for improved security. To allow file upload also for Anonymous Users or Public, set the
fileUpload
parameter in the Parse Server Options (dblythy, Manuel Trezza) #7071 - Removed parse-server-simple-mailgun-adapter dependency; to continue using the adapter it has to be explicitly installed (Manuel Trezza) #7321
- Remove support for MongoDB 3.6 which has reached its End-of-Life date and PostgreSQL 10 (Manuel Trezza) #7315
- Remove support for Node 10 which has reached its End-of-Life date (Manuel Trezza) #7314
- Bump required Node engine to >=12.22.10 (#7848) (23a3488)
- Remove S3 Files Adapter from Parse Server, instead install separately as
@parse/s3-files-adapter
(Manuel Trezza) #7324 - 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 valuefalse
will not be set anymore when creating a new session (Manuel Trezza) #7543 - To delete a field via the GraphQL API, the field value has to be set to
null
. Previously, setting a field value tonull
would save a null value in the database, which was not according to the GraphQL specs. To delete a file field usefile: null
, the previous way of usingfile: { file: null }
has become obsolete. (626fad2)
Notable Changes
- Alphabetical ordered GraphQL API, improved GraphQL Schema cache system and fix GraphQL input reassign issue (Moumouls) #7344
- Added Parse Server Security Check to report weak security settings (Manuel Trezza, dblythy) #7247
- EXPERIMENTAL: Added new page router with placeholder rendering and localization of custom and feature pages such as password reset and email verification (Manuel Trezza) #7128
- EXPERIMENTAL: Added custom routes to easily customize flows for password reset, email verification or build entirely new flows (Manuel Trezza) #7231
- Added Deprecation Policy to govern the introduction of breaking changes in a phased pattern that is more predictable for developers (Manuel Trezza) #7199
- Add REST API endpoint
/loginAs
to create session of any user with master key; allows to impersonate another user. (GormanFletcher) #7406 - Add official support for MongoDB 5.0 (Manuel Trezza) #7469
- Added Parse Server Configuration
enforcePrivateUsers
, which will remove public access by default on new Parse.Users (dblythy) #7319 - add support for Postgres 14 (#7644) (090350a)
- add user-defined schema and migrations (#7418) (25d5c30)
- setting a field to null does not delete it via GraphQL API (#7649) (626fad2)
- combined
and
query with relational query condition returns incorrect results (#7593) (174886e) - node engine range has no upper limit to exclude incompatible node versions (#7693) (6a54dac)
- unable to use objectId size higher than 19 on GraphQL API (#7722) (8ee0445)
- schema cache not cleared in some cases (#7771) (3b92fa1)
Other Changes
- Support native mongodb syntax in aggregation pipelines (Raschid JF Rafeally) #7339
- Fix error when a not yet inserted job is updated (Antonio Davi Macedo Coelho de Castro) #7196
- request.context for afterFind triggers (dblythy) #7078
- Winston Logger interpolating stdout to console (dplewis) #7114
- Added convenience method
Parse.Cloud.sendEmail(...)
to send email via email adapter in Cloud Code (dblythy) #7089 - LiveQuery support for $and, $nor, $containedBy, $geoWithin, $geoIntersects queries (dplewis) #7113
- Supporting patterns in LiveQuery server's config parameter
classNames
(Nes-si) #7131 - Added
requireAnyUserRoles
andrequireAllUserRoles
for Parse Cloud validator (dblythy) #7097 - Support Facebook Limited Login (miguel-s) #7219
- Removed Stage name check on aggregate pipelines (BRETT71) #7237
- Retry transactions on MongoDB when it fails due to transient error (Antonio Davi Macedo Coelho de Castro) #7187
- Bump tests to use Mongo 4.4.4 (Antonio Davi Macedo Coelho de Castro) #7184
- Added new account lockout policy option
accountLockout.unlockOnPasswordReset
to automatically unlock account on password reset (Manuel Trezza) #7146 - Test Parse Server continuously against all recent MongoDB versions that have not reached their end-of-life support date, added MongoDB compatibility table to Parse Server docs (Manuel Trezza) #7161
- Test Parse Server continuously against all recent Node.js versions that have not reached their end-of-life support date, added Node.js compatibility table to Parse Server docs (Manuel Trezza) 7161
- Throw error on invalid Cloud Function validation configuration (dblythy) #7154
- Allow Cloud Validator
options
to be async (dblythy) #7155 - Optimize queries on classes with pointer permissions (Pedro Diaz) #7061
- Test Parse Server continuously against all relevant Postgres versions (minor versions), added Postgres compatibility table to Parse Server docs (Corey Baker) #7176
- Randomize test suite (Diamond Lewis) #7265
- LDAP: Properly unbind client on group search error (Diamond Lewis) #7265
- Improve data consistency in Push and Job Status update (Diamond Lewis) #7267
- Excluding keys that have trailing edges.node when performing GraphQL resolver (Chris Bland) #7273
- Added centralized feature deprecation with standardized warning logs (Manuel Trezza) #7303
- Use Node.js 15.13.0 in CI (Olle Jonsson) #7312
- Fix file upload issue for S3 compatible storage (Linode, DigitalOcean) by avoiding empty tags property when creating a file (Ali Oguzhan Yildiz) #7300
- Add building Docker image as CI check (Manuel Trezza) #7332
- Add NPM package-lock version check to CI (Manuel Trezza) #7333
- Fix incorrect LiveQuery events triggered for multiple subscriptions on the same class with different events #7341
- Fix select and excludeKey queries to properly accept JSON string arrays. Also allow nested fields in exclude (Corey Baker) #7242
- Fix LiveQuery server crash when using $all query operator on a missing object key (Jason Posthuma) #7421
- Added runtime deprecation warnings (Manuel Trezza) #7451
- Add ability to pass context of an object via a header, X-Parse-Cloud-Context, for Cloud Code triggers. The header addition allows client SDK's to add context without injecting _context in the body of JSON objects (Corey Baker) #7437
- Add CI check to add changelog entry (Manuel Trezza) #7512
- Refactor: uniform issue templates across repos (Manuel Trezza) #7528
- ci: bump ci environment (Manuel Trezza) #7539
- CI now pushes docker images to Docker Hub (Corey Baker) #7548
- Allow afterFind and afterLiveQueryEvent to set unsaved pointers and keys (dblythy) #7310
- Allow setting descending sort to full text queries (dblythy) #7496
- Allow cloud string for ES modules (Daniel Blyth) #7560
- docs: Introduce deprecation ID for reference in comments and online search (Manuel Trezza) #7562
- refactor: deprecate
Parse.Cloud.httpRequest
; it is recommended to use a HTTP library instead. (Daniel Blyth) #7595 - refactor: Modernize HTTPRequest tests (brandongregoryscott) #7604
- Allow liveQuery on Session class (Daniel Blyth) #7554
- security upgrade follow-redirects from 1.14.2 to 1.14.7 (#7772) (4bd34b1)
- security upgrade follow-redirects from 1.14.7 to 1.14.8 (#7802) (7029b27)
- Add node engine version check (Manuel Trezza) #7574