Parse Server
repository·alpha·Indexed 12 days ago
https://github.com/parse-community/parse-serverAn open-source backend framework for Node.js and an Express module providing a Parse-compatible API server. It enables managing data, files, and users, supporting MongoDB (versions 7 and 8) and PostgreSQL (versions 16, 17, and 18) databases. Version 9.10.1-alpha.6.
What's inside Parse Server
- Parse Server is an open-source backend that runs on any infrastructure capable of running Node.js. It is built on top of the Express web application framework and can be integrated into existing web applications or run as a standalone service. It provides capabilities for saving and querying objects, managing files, and handling authentication.
Access internal Parse Server fields with maintenanceKey
alphaIn version 6.0.0-beta.1, a new
maintenanceKeywas introduced to allow access to the internal scope of Parse Server. This scope contains undocumented fields (prefixed with an underscore_) used for internal operations.Warning:
- Use this key for out-of-band tasks like data migrations or corrections, not for routine production operations.
- Internal fields are subject to change without notice.
- The
masterKeyno longer provides access to these internal fields; only themaintenanceKeycan do so.
// Example concept: using maintenanceKey to access internal fields // Note: Actual implementation details depend on the specific internal field being accessed const internalData = await parseServer.accessInternalScope({ maintenanceKey: 'YOUR_MAINTENANCE_KEY' });Configure file storage adapters
alphaParse Server supports several file hosting options. By default, it uses
GridFSBucketAdapter(backed by MongoDB), which requires no additional setup. Other available adapters include:GridFSBucketAdapter: MongoDB-backed (default).S3Adapter: Amazon S3-backed.GCSAdapter: Google Cloud Storage-backed.FSAdapter: Local file system storage.
Official adapters are distributed as scoped packages on npm under the
@parsescope.Breaking Changes in Parse Server v5.0.0-beta.10
alphaWhen upgrading to
5.0.0-beta.10, be aware of the following breaking changes:- Node.js Requirement: Requires Node.js version
>=12.22.10. - GridStore Removal: The MongoDB GridStore adapter has been removed. Parse Server now uses GridFS by default. If you were manually using the GridStore adapter, you must migrate to GridFS.
- Node 15 Support: Official support for Node 15 has been removed as it reached end-of-life.
- Node.js Requirement: Requires Node.js version
Restrict Class Level Permissions to Authenticated Users
alphaAs of version 2.3.0, you can use Class Level Permissions (CLP) to restrict access to specific classes so that only authenticated users can interact with them.Use Live Queries for real-time functionality
alphaIntroduced in version 2.2.0, Live Queries provide real-time functionality, allowing the server to push updates to clients when data changes.Handle Parse.Object encoding in Cloud Functions
alphaStarting with version
9.0.0-alpha.7,Parse.Objectis automatically encoded within Cloud Functions.Breaking Change: The option
encodeParseObjectInCloudFunctionhas been removed. You no longer need to manually configure this behavior.Permissions for nested properties
alphaAs of version5.0.0-beta.10, adding or modifying a nested property requiresaddFieldpermissions. Ensure your ACLs or CLP (Class Level Permissions) account for nested field access.Access internal scope with maintenanceKey
alphaIn version
6.0.0-alpha.23, a newmaintenanceKeywas introduced to access the internal scope of Parse Server. The internal scope contains undocumented fields (prefixed with_) used for out-of-band tasks like data migration.Warning: Using
maintenanceKeyfor routine production operations is discouraged. Changes to the internal scope can happen at any time without notice.Breaking Change: As of
6.0.0-alpha.23, themasterKeyno longer allows reading internal fields (prefixed with_); these are now only accessible via themaintenanceKey.// Example configuration concept const options = { maintenanceKey: 'YOUR_MAINTENANCE_KEY' };Configure Authentication Adapters in version 2.3.0+
alphaStarting with version 2.3.0, authentication helpers have been transitioned into proper adapters. The top-leveloauthoption is deprecated; instead, use theauthconfiguration object to manage authentication providers.Implement custom authentication adapters using AuthAdapter
alphaParse Server now exports theAuthAdapterclass, enabling developers to build custom authentication logic. Custom adapters can also leverage theafterFindtrigger to perform actions after an authentication attempt is processed.Understand Parse Server multi-tenancy limitations
alphaParse Server does not support multi-tenancy.
- Only one Parse Server instance can be mounted per Express application.
- There is no isolation between apps running in the same process.
- Security Warning: Cloud Code runs in the same Node.js process as Parse Server and has full access to the server environment, including configuration, modules, and environment variables.