BREAKING CHANGE: This releases increases the required minimum MongoDB versions to `6.0.19`, `7.0.16`, `8.0.4` and removes support for MongoDB `4`, `5`.
BREAKING CHANGE: `Parse.Query` no longer supports the BSON type `code`; although this feature was never officially documented, its removal is announced as a breaking change to protect deployments where it might be in use.
BREAKING CHANGE: Nested objects are now properly stored in the database using JSON serialization; previously, due to a bug only top-level objects were serialized, but nested objects were saved as raw JSON; for example, a nested `Date` object was saved as a JSON object like `{ "__type": "Date", "iso": "2020-01-01T00:00:00.000Z" }` instead of its serialized representation `2020-01-01T00:00:00.000Z` (#8209)
BREAKING CHANGE: This release removes support for MongoDB 4.0; the new minimum supported MongoDB version is 4.2. which also removes support for the deprecated MongoDB MMAPv1 storage engine
BREAKING CHANGE: The MongoDB GridStore adapter has been removed. By default, Parse Server already uses GridFS, so if you do not manually use the GridStore adapter, you can ignore this change.
* Optimize query, fixes some null returns, fix stitched GraphQLUpload
* Fix authData key selection
* Prefer Iso string since other GraphQL solutions use this format
* fix tests
Co-authored-by: Antonio Davi Macedo Coelho de Castro <adavimacedo@gmail.com>
* Always delete data after each, even for mongo.
* Add failing simple case test
* run all tests
* 1. when validating username be case insensitive
2. add _auth_data_anonymous to specialQueryKeys...whatever that is!
* More case sensitivity
1. also make email validation case insensitive
2. update comments to reflect what this change does
* wordsmithery and grammar
* first pass at a preformant case insensitive query. mongo only so far.
* change name of parameter from insensitive to
caseInsensitive
* Postgres support
* properly handle auth data null
* wip
* use 'caseInsensitive' instead of 'insensitive' in all places.
* update commenet to reclect current plan
* skip the mystery test for now
* create case insensitive indecies for
mongo to support case insensitive
checks for email and username
* remove unneeded specialKey
* pull collation out to a function.
* not sure what i planned
to do with this test.
removing.
* remove typo
* remove another unused flag
* maintain order
* maintain order of params
* boil the ocean on param sequence
i like having explain last cause it seems
like something you would
change/remove after getting what you want
from the explain?
* add test to verify creation
and use of caseInsensitive index
* add no op func to prostgress
* get collation object from mongocollection
make flow lint happy by declaring things Object.
* fix typo
* add changelog
* kick travis
* properly reference static method
* add a test to confirm that anonymous users with
unique username that do collide when compared
insensitively can still be created.
* minot doc nits
* add a few tests to make sure our spy is working as expected
wordsmith the changelog
Co-authored-by: Diamond Lewis <findlewis@gmail.com>
* fix(package): update mongodb to version 3.3.0
* chore(package): update lockfile package-lock.json
* Fix tests
* Fix GraphQL tests for read preference
* Fix mongo adapter deprecation notice
* Fix the way the connections are checked, return promise when shutting down mongo
* Various improvements in test name / de-duplications
* Reverts to class by class deletion, introduced fast mode that just delete data for mongo
- Speeds up are incredible Executed 1695 of 1713 specs INCOMPLETE (18 PENDING) in 4 mins 19 secs.
* Adds documentation about the deleteEverything
* Removes need to use babel-register
- Adds watch to watch changes when running the test to regenerate
- Tests are now pure node 8
* Adds timing to helper.js
* Update contribution guide
* Adds inline sourcemaps generation to restore coverage
* nits
* chore(package): update jasmine to version 3.0.0
Closes#4547
* Fixes failing tests for jasmine 3.0
Starting 3.0, done(something) will fail
* Update tests so they dont leverage var, but let and const
With jasmine 3.0, the randomization engine was making the test fails because of the scope of `var`
* Remove randomizer
* Use same adapter for PG tests, drop table to ensure the tests dont side effect
* Introduces flow types for storage
* Better typing of QueryOptions
* Adds flow types to SchemaCOntroller,
- runs flow on pre tests
- fixes flow
* Adds ClassLevelPermissions type
* Moves Controller types into a single file
* Changes import styles
* Changes import styles
* fixing method setIndexesWithSchemaFormat (#4454)
Fixing invalid database code in method `setIndexesWithSchemaFormat`:
* It must be a transaction, not a task, as it executes multiple database changes
* It should contain the initial queries inside the transaction, providing the context, not outside it;
* Replaced the code with the ES6 Generator notation
* Removing the use of batch, as the value of the result promise is irrelevant, only success/failure that matters
* nits
* Fixes tests, improves flow typing
* Add handleShutdown Test of MongoStorageAdapter.
* Add `handleShutdown` function in PostgresStorageAdapter, with it's test.
* Replace the _pgp to _client
* Use `adapter._client.$pool.ending` to ckeck is ending
* Add `handleShutdown()` in ParseServer.spec.js
* Trigger
* Set Server to Default
* Remove adaptiveCollection
* Remove an adaptiveCollection use
* Remove an adaptiveCollection
* make adaptiveCollection private
* Remove collection from mongoadapter
* Move schema collection usage into mongo adapter
* stop relying on mongo format for removing join tables
* reduce usage of schemaCollection
* remove uses of _collection
* Move CLP setting into mongo adapter
* remove all uses of schemaCollection
* make schemaCollection private
* remove transform from schemaCollection
* rename some stuff
* Tweak paramaters and stuff
* reorder some params
* reorder find() arguments
* finishsh touching up argument order
* Accept a database adapter as a parameter
* First passing test with postgres!
* Actually use the provided className
* index on unique-indexes: c454180 Revert "Log objects rather than JSON stringified objects (#1922)"
* Start dealing with test shittyness
* Make specific server config for tests async
* Fix email validation
* Fix broken cloud code
* Save callback to variable
* undo
* Fix tests
* Setup travis
* fix travis maybe
* try removing db user
* indentation?
* remove postgres version setting
* sudo maybe?
* use postgres username
* fix check for _PushStatus
* excludes
* remove db=mongo
* allow postgres to fail
* Fix allow failure
* postgres 9.4
* Remove mongo implementations and fix test
* Fix test leaving behind connections
* Move ACL transforming into Parse Server
For the database adapters, it will be more performant and easier to work with _rperm and _wperm than with the ACL object. This way we can type it as an array and so on, and once we have stronger validations in Parse Server, we can type it as an array containing strings of length < x, which will be much much better in sql databases.
* Use destructuring
* Use adapter.count
* use adapter.upsertOneObject
* Use adapter.deleteObjectsByQuery
* Use adapter.find
* use adapter.find
* Update tests to avoid mongoFind
* Fix a test to not use mongoFind
* Fix a test to not use mongoFind
* remove some mongoFind
* Remove some mongoFind
* Remove some mongoFind
* Remove more mongoFind
* remove more mongoFind
* remove more mongoFind
* remove more mongoFind
* remove more mongoFind
* remove more mongoFind
* remove more mongoFind
* remove more mongoFind
* remove more mongoFind
* Restore update ios device token with duplicate device token to original
* remove a mongoFind
* remove a mongoFind
* formatting
* formatting
* remove a mongoFind
* remove a mongoFind
* remove a mongoFind
* kill mongoFind
* Fix tests
* Fix tests
* fix syntax
* Fix test