MCPcopy
hub / github.com/parse-community/parse-server

github.com/parse-community/parse-server @9.9.0 sqlite

repository ↗ · DeepWiki ↗ · release 9.9.0 ↗
2,013 symbols 6,054 edges 376 files 190 documented · 9%
README

parse-repository-header-server


Build Status Build Status Snyk Badge Coverage auto-release

Node Version MongoDB Version Postgres Version

npm latest version npm alpha version

[Backers on Open Collective][open-collective-link] [Sponsors on Open Collective][open-collective-link] Forum Twitter Chat


Parse Server is an open source backend that can be deployed to any infrastructure that can run Node.js. Parse Server works with the Express web application framework. It can be added to existing web applications, or run by itself.

The full documentation for Parse Server is available in the wiki. The Parse Server guide is a good place to get started. An API reference and Cloud Code guide are also available. If you're interested in developing for Parse Server, the Development guide will help you get set up.


A big thank you 🙏 to our sponsors and backers who support the development of Parse Platform!

Bronze Sponsors

Bronze Sponsors


Flavors & Branches

Parse Server is available in different flavors on different branches:

  • The main branches are [release][log_release] and [alpha][log_alpha]. See the changelog overview for details.
  • The long-term-support (LTS) branches are named release-<version>.x.x, for example release-5.x.x. LTS branches do not have pre-release branches.

Long Term Support

Long-Term-Support (LTS) is provided for the previous Parse Server major version. For example, Parse Server 5.x will receive security updates until Parse Server 6.x is superseded by Parse Server 7.x and becomes the new LTS version. While the current major version is published on branch release, a LTS version is published on branch release-#.x.x, for example release-5.x.x for the Parse Server 5.x LTS branch.

⚠️ LTS versions are provided to help you transition as soon as possible to the current major version. While we aim to fix security vulnerabilities in the LTS version, our main focus is on developing the current major version and preparing the next major release. Therefore we may leave certain vulnerabilities up to the community to fix. Search for pull requests with the specific LTS base branch to see the current open vulnerabilities for that LTS branch.

Getting Started

The fastest and easiest way to get started is to run MongoDB and Parse Server locally.

Running Parse Server

Before you start make sure you have installed:

Compatibility

Node.js

Parse Server is continuously tested with the most recent releases of Node.js to ensure compatibility. We follow the Node.js Long Term Support plan and only test against versions that are officially supported and have not reached their end-of-life date.

Version Minimum Version End-of-Life Parse Server Support
Node.js 18 18.20.4 April 2025 <= 8.x (2025)
Node.js 20 20.19.0 April 2026 <= 9.x (2026)
Node.js 22 22.12.0 April 2027 <= 10.x (2027)
Node.js 24 24.11.0 April 2028 <= 11.x (2028)

MongoDB

Parse Server is continuously tested with the most recent releases of MongoDB to ensure compatibility. We follow the MongoDB support schedule and MongoDB lifecycle schedule and only test against versions that are officially supported and have not reached their end-of-life date. MongoDB "rapid releases" are ignored as these are considered pre-releases of the next major version.

Version Minimum Version End-of-Life Parse Server Support
MongoDB 6 6.0.19 July 2025 <= 8.x (2025)
MongoDB 7 7.0.16 August 2026 <= 9.x (2026)
MongoDB 8 8.0.4 TDB <= 10.x (2027)

PostgreSQL

Parse Server is continuously tested with the most recent releases of PostgreSQL and PostGIS to ensure compatibility, using PostGIS docker images. We follow the PostgreSQL support schedule and PostGIS support schedule and only test against versions that are officially supported and have not reached their end-of-life date. Due to the extensive PostgreSQL support duration of 5 years, Parse Server drops support about 2 years before the official end-of-life date.

Version PostGIS Version End-of-Life Parse Server Support
Postgres 13 3.1, 3.2, 3.3, 3.4, 3.5 November 2025 <= 6.x (2023)
Postgres 14 3.5 November 2026 <= 7.x (2024)
Postgres 15 3.3, 3.4, 3.5 November 2027 <= 8.x (2025)
Postgres 16 3.5 November 2028 <= 9.x (2026)
Postgres 17 3.5 November 2029 <= 10.x (2027)
Postgres 18 3.6 November 2030 <= 11.x (2028)

Locally

$ npm install -g parse-server mongodb-runner
$ mongodb-runner start
$ parse-server --appId APPLICATION_ID --masterKey MASTER_KEY --databaseURI mongodb://localhost/test

Note: If installation with -g fails due to permission problems (npm ERR! code 'EACCES'), please refer to this link.

Docker Container

$ git clone https://github.com/parse-community/parse-server
$ cd parse-server
$ docker build --tag parse-server .
$ docker run --name my-mongo -d mongo

Running the Parse Server Image

$ docker run --name my-parse-server -v config-vol:/parse-server/config -p 1337:1337 --link my-mongo:mongo -d parse-server --appId APPLICATION_ID --masterKey MASTER_KEY --databaseURI mongodb://mongo/test

Note: If you want to use Cloud Code, add -v cloud-code-vol:/parse-server/cloud --cloud /parse-server/cloud/main.js to the command above. Make sure main.js is in the cloud-code-vol directory before starting Parse Server.

You can use any arbitrary string as your application id and master key. These will be used by your clients to authenticate with the Parse Server.

That's it! You are now running a standalone version of Parse Server on your machine.

Using a remote MongoDB? Pass the --databaseURI DATABASE_URI parameter when starting parse-server. Learn more about configuring Parse Server here. For a full list of available options, run parse-server --help.

Saving and Querying Objects

Now that you're running Parse Server, it is time to save your first object. The easiest way is to use the REST API, but you can easily do the same using any of the Parse SDKs. To learn more check out the documentation.

Connect an SDK

Parse provides SDKs for all the major platforms. Refer to the Parse Server guide to learn how to connect your app to Parse Server.

Running Parse Server elsewhere

Once you have a better understanding of how the project works, please refer to the Parse Server wiki for in-depth guides to deploy Parse Server to major infrastructure providers. Read on to learn more about additional ways of running Parse Server.

Sample Application

We have provided a basic Node.js application that uses the Parse Server module on Express and can be easily deployed to various infrastructure providers:

Extension points exported contracts — how you extend this code

Publisher (Interface)
* @interface Publisher * @memberof PubSubAdapter [2 implementers]
src/Adapters/PubSub/PubSubAdapter.js
SchemaOptions (Interface)
(no doc)
types/Options/index.d.ts
SchemaOptions (Interface)
(no doc)
src/SchemaMigrations/Migrations.js
ParseGraphQLConfig (Interface)
(no doc)
src/Controllers/ParseGraphQLController.js
SchemaOptions (Interface)
(no doc)
src/Options/index.js
Subscriber (Interface)
* @interface Subscriber * @memberof PubSubAdapter [2 implementers]
src/Adapters/PubSub/PubSubAdapter.js
EmailVerificationRequest (Interface)
(no doc)
types/Options/index.d.ts
FieldType (Interface)
(no doc)
src/SchemaMigrations/Migrations.js

Core symbols most depended-on inside this repo

get
called by 2375
src/Config.js
request
called by 1116
src/Adapters/Auth/meetup.js
reconfigureServer
called by 867
spec/helper.js
find
called by 820
src/Adapters/Storage/StorageAdapter.js
equal
called by 806
spec/helper.js
fail
called by 769
src/StatusHandler.js
ok
called by 403
spec/helper.js
query
called by 246
src/Adapters/Logger/WinstonLoggerAdapter.js

Shape

Method 889
Function 831
Class 238
Interface 55

Languages

TypeScript100%

Modules by API surface

src/Adapters/Storage/Postgres/PostgresStorageAdapter.js78 symbols
src/Adapters/Storage/Mongo/MongoStorageAdapter.js57 symbols
src/Config.js55 symbols
src/Controllers/DatabaseController.js52 symbols
src/Controllers/SchemaController.js49 symbols
src/triggers.js47 symbols
src/LiveQuery/ParseLiveQueryServer.ts33 symbols
src/Adapters/Storage/StorageAdapter.js31 symbols
src/Routers/PagesRouter.js29 symbols
src/Adapters/Storage/Mongo/MongoTransform.js29 symbols
src/GraphQL/loaders/defaultGraphQLTypes.js27 symbols
src/Utils.js26 symbols

Dependencies from manifests, versioned

@actions/core3.0.0 · 1×
@apollo/client3.13.8 · 1×
@apollo/server5.5.0 · 1×
@as-integrations/express51.1.2 · 1×
@babel/cli7.28.6 · 1×
@babel/core7.29.0 · 1×
@babel/eslint-parser7.28.6 · 1×
@babel/plugin-proposal-object-rest-spread7.20.7 · 1×
@babel/plugin-transform-flow-strip-types7.27.1 · 1×
@babel/preset-env7.29.2 · 1×
@babel/preset-typescript7.27.1 · 1×
@fastify/busboy3.2.0 · 1×

Datastores touched

(mongodb)Database · 1 repos
parseDatabase · 1 repos
parseServerMongoAdapterTestDatabaseDatabase · 1 repos
parse_server_postgres_adapter_test_dDatabase · 1 repos
devDatabase · 1 repos
drew3Database · 1 repos
enableCollationCaseComparisonFalseDatabase · 1 repos
enableCollationCaseComparisonTrueDatabase · 1 repos

For agents

$ claude mcp add parse-server \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact