2018-08-10 15:51:31 -04:00
/ * *
* @ interface ParseServerOptions
2020-12-04 08:03:29 +11:00
* @ property { AccountLockoutOptions } accountLockout account lockout policy for failed login attempts
2019-05-11 15:25:31 -05:00
* @ property { Boolean } allowClientClassCreation Enable ( or disable ) client class creation , defaults to true
2019-12-24 11:35:28 -06:00
* @ property { Boolean } allowCustomObjectId Enable ( or disable ) custom objectId
2019-09-12 22:03:57 +01:00
* @ property { String [ ] } allowHeaders Add headers to Access - Control - Allow - Headers
2020-07-10 11:48:57 -07:00
* @ property { String } allowOrigin Sets the origin to Access - Control - Allow - Origin
2019-05-11 15:25:31 -05:00
* @ property { Adapter < AnalyticsAdapter > } analyticsAdapter Adapter module for the analytics
2018-08-10 15:51:31 -04:00
* @ property { String } appId Your Parse Application ID
* @ property { String } appName Sets the app name
2019-05-11 15:25:31 -05:00
* @ property { Any } auth Configuration for your authentication providers , as stringified JSON . See http : //docs.parseplatform.org/parse-server/guide/#oauth-and-3rd-party-authentication
* @ property { Adapter < CacheAdapter > } cacheAdapter Adapter module for the cache
* @ property { Number } cacheMaxSize Sets the maximum size for the in memory cache , defaults to 10000
* @ property { Number } cacheTTL Sets the TTL for the in memory cache ( in ms ) , defaults to 5000 ( 5 seconds )
* @ property { String } clientKey Key for iOS , MacOS , tvOS clients
2018-08-10 15:51:31 -04:00
* @ property { String } cloud Full path to your cloud code main . js
2019-05-11 15:25:31 -05:00
* @ property { Number | Boolean } cluster Run with cluster , optionally set the number of processes default to os . cpus ( ) . length
2018-08-10 15:51:31 -04:00
* @ property { String } collectionPrefix A collection prefix for the classes
2019-05-11 15:25:31 -05:00
* @ property { CustomPagesOptions } customPages custom pages for password validation and reset
* @ property { Adapter < StorageAdapter > } databaseAdapter Adapter module for the database
2021-03-16 16:05:36 -05:00
* @ property { DatabaseOptions } databaseOptions Options to pass to the database client
2019-05-11 15:25:31 -05:00
* @ property { String } databaseURI The full URI to your database . Supported databases are mongodb or postgres .
* @ property { Boolean } directAccess Replace HTTP Interface when using JS SDK in current node runtime , defaults to false . Caution , this is an experimental feature that may not be appropriate for production .
2018-08-10 15:51:31 -04:00
* @ property { String } dotNetKey Key for Unity and . Net SDK
2019-05-11 15:25:31 -05:00
* @ property { Adapter < MailAdapter > } emailAdapter Adapter module for email sending
2020-12-04 06:40:13 +11:00
* @ property { Boolean } emailVerifyTokenReuseIfValid an existing email verify token should be reused when resend verification email is requested
2019-05-11 15:25:31 -05:00
* @ property { Number } emailVerifyTokenValidityDuration Email verification token validity duration , in seconds
2020-07-13 23:00:55 +08:00
* @ property { Boolean } enableAnonymousUsers Enable ( or disable ) anonymous users , defaults to true
2019-05-11 15:25:31 -05:00
* @ property { Boolean } enableExpressErrorHandler Enables the default express error handler for all errors
2020-11-10 11:36:45 +11:00
* @ property { String } encryptionKey Key for encrypting your files
2019-05-11 15:25:31 -05:00
* @ property { Boolean } expireInactiveSessions Sets wether we should expire the inactive sessions , defaults to true
* @ property { String } fileKey Key for your files
* @ property { Adapter < FilesAdapter > } filesAdapter Adapter module for the files sub - system
2020-12-17 20:16:37 +11:00
* @ property { FileUploadOptions } fileUpload Options for file uploads
2019-06-25 14:44:23 -07:00
* @ property { String } graphQLPath Mount path for the GraphQL endpoint , defaults to / graphql
2019-07-19 12:29:45 -07:00
* @ property { String } graphQLSchema Full path to your GraphQL custom schema . graphql file
2019-05-11 15:25:31 -05:00
* @ property { String } host The host to serve ParseServer on , defaults to 0.0 . 0.0
2020-07-15 20:10:33 +02:00
* @ property { IdempotencyOptions } idempotencyOptions Options for request idempotency to deduplicate identical requests that may be caused by network issues . Caution , this is an experimental feature that may not be appropriate for production .
2019-05-11 15:25:31 -05:00
* @ property { String } javascriptKey Key for the Javascript SDK
* @ property { Boolean } jsonLogs Log as structured JSON objects
* @ property { LiveQueryOptions } liveQuery parse - server ' s LiveQuery configuration object
* @ property { LiveQueryServerOptions } liveQueryServerOptions Live query server configuration options ( will start the liveQuery server )
* @ property { Adapter < LoggerAdapter > } loggerAdapter Adapter module for the logging sub - system
* @ property { String } logLevel Sets the level for logs
* @ property { String } logsFolder Folder for the logs ( defaults to './logs' ) ; set to null to disable file based logging
* @ property { String } masterKey Your Parse Master Key
* @ property { String [ ] } masterKeyIps Restrict masterKey to be used by only these ips , defaults to [ ] ( allow all ips )
* @ property { Number } maxLimit Max value for limit option on queries , defaults to unlimited
2019-12-24 11:35:28 -06:00
* @ property { Number | String } maxLogFiles Maximum number of logs to keep . If not set , no logs will be removed . This can be a number of files or number of days . If using days , add 'd' as the suffix . ( default : null )
2018-08-10 15:51:31 -04:00
* @ property { String } maxUploadSize Max file size for uploads , defaults to 20 mb
2019-05-11 15:25:31 -05:00
* @ property { Union } middleware middleware for express server , can be string or function
2019-06-25 14:44:23 -07:00
* @ property { Boolean } mountGraphQL Mounts the GraphQL endpoint
2019-05-11 15:25:31 -05:00
* @ property { String } mountPath Mount path for the server , defaults to / parse
2019-06-25 14:44:23 -07:00
* @ property { Boolean } mountPlayground Mounts the GraphQL Playground - never use this option in production
2019-05-11 15:25:31 -05:00
* @ property { Number } objectIdSize Sets the number of characters in generated object id ' s , default 10
2021-02-09 14:03:57 +01:00
* @ property { PagesOptions } pages The options for pages such as password reset and email verification . Caution , this is an experimental feature that may not be appropriate for production .
2020-12-04 08:03:29 +11:00
* @ property { PasswordPolicyOptions } passwordPolicy Password policy for enforcing password related rules
2019-06-25 14:44:23 -07:00
* @ property { String } playgroundPath Mount path for the GraphQL Playground , defaults to / playground
2019-05-11 15:25:31 -05:00
* @ property { Number } port The port to run the ParseServer , defaults to 1337.
* @ property { Boolean } preserveFileName Enable ( or disable ) the addition of a unique hash to the file names
* @ property { Boolean } preventLoginWithUnverifiedEmail Prevent user from login if email is not verified and PARSE _SERVER _VERIFY _USER _EMAILS is true , defaults to false
* @ property { ProtectedFields } protectedFields Protected fields that should be treated with extra security when fetching details .
2018-08-10 15:51:31 -04:00
* @ property { String } publicServerURL Public URL to your parse server with http : // or https://.
2019-05-11 15:25:31 -05:00
* @ property { Any } push Configuration for push , as stringified JSON . See http : //docs.parseplatform.org/parse-server/guide/#push-notifications
* @ property { String } readOnlyMasterKey Read - only key , which has the same capabilities as MasterKey without writes
* @ property { String } restAPIKey Key for REST calls
2018-08-10 15:51:31 -04:00
* @ property { Boolean } revokeSessionOnPasswordReset When a user changes their password , either through the reset password email or while logged in , all sessions are revoked if this is true . Set to false if you don ' t want to revoke sessions .
2019-05-11 15:25:31 -05:00
* @ property { Boolean } scheduledPush Configuration for push scheduling , defaults to false .
2021-03-10 20:19:28 +01:00
* @ property { SecurityOptions } security The security options to identify and report weak security settings .
2019-08-19 00:25:52 -05:00
* @ property { Function } serverCloseComplete Callback when server has closed
* @ property { Function } serverStartComplete Callback when server has started
2019-05-11 15:25:31 -05:00
* @ property { String } serverURL URL to your parse server with http : // or https://.
* @ property { Number } sessionLength Session duration , in seconds , defaults to 1 year
* @ property { Boolean } silent Disables console output
2018-08-10 15:51:31 -04:00
* @ property { Boolean } startLiveQueryServer Starts the liveQuery server
2019-05-11 15:25:31 -05:00
* @ property { String [ ] } userSensitiveFields Personally identifiable information fields in the user table the should be removed for non - authorized users . Deprecated @ see protectedFields
* @ property { Boolean } verbose Set the logging to verbose
* @ property { Boolean } verifyUserEmails Enable ( or disable ) user email validation , defaults to false
* @ property { String } webhookKey Key sent with outgoing webhook calls
2018-08-10 15:51:31 -04:00
* /
2021-03-10 20:19:28 +01:00
/ * *
* @ interface SecurityOptions
* @ property { CheckGroup [ ] } checkGroups The security check groups to run . This allows to add custom security checks or override existing ones . Default are the groups defined in ` CheckGroups.js ` .
* @ property { Boolean } enableCheck Is true if Parse Server should check for weak security settings .
* @ property { Boolean } enableCheckLog Is true if the security check report should be written to logs . This should only be enabled temporarily to not expose weak security settings in logs .
* /
2021-02-09 14:03:57 +01:00
/ * *
* @ interface PagesOptions
2021-03-07 13:51:35 +01:00
* @ property { PagesRoute [ ] } customRoutes The custom routes .
2021-02-09 14:03:57 +01:00
* @ property { PagesCustomUrlsOptions } customUrls The URLs to the custom pages .
* @ property { Boolean } enableLocalization Is true if pages should be localized ; this has no effect on custom page redirects .
* @ property { Boolean } enableRouter Is true if the pages router should be enabled ; this is required for any of the pages options to take effect . Caution , this is an experimental feature that may not be appropriate for production .
* @ property { Boolean } forceRedirect Is true if responses should always be redirects and never content , false if the response type should depend on the request type ( GET request - > content response ; POST request - > redirect response ) .
* @ property { String } localizationFallbackLocale The fallback locale for localization if no matching translation is provided for the given locale . This is only relevant when providing translation resources via JSON file .
* @ property { String } localizationJsonPath The path to the JSON file for localization ; the translations will be used to fill template placeholders according to the locale .
* @ property { String } pagesEndpoint The API endpoint for the pages . Default is 'apps' .
* @ property { String } pagesPath The path to the pages directory ; this also defines where the static endpoint '/apps' points to . Default is the './public/' directory .
* @ property { Object } placeholders The placeholder keys and values which will be filled in pages ; this can be a simple object or a callback function .
* /
2021-03-07 13:51:35 +01:00
/ * *
* @ interface PagesRoute
* @ property { Function } handler The route handler that is an async function .
* @ property { String } method The route method , e . g . 'GET' or 'POST' .
* @ property { String } path The route path .
* /
2021-02-09 14:03:57 +01:00
/ * *
* @ interface PagesCustomUrlsOptions
* @ property { String } emailVerificationLinkExpired The URL to the custom page for email verification - > link expired .
* @ property { String } emailVerificationLinkInvalid The URL to the custom page for email verification - > link invalid .
* @ property { String } emailVerificationSendFail The URL to the custom page for email verification - > link send fail .
* @ property { String } emailVerificationSendSuccess The URL to the custom page for email verification - > resend link - > success .
* @ property { String } emailVerificationSuccess The URL to the custom page for email verification - > success .
* @ property { String } passwordReset The URL to the custom page for password reset .
* @ property { String } passwordResetLinkInvalid The URL to the custom page for password reset - > link invalid .
* @ property { String } passwordResetSuccess The URL to the custom page for password reset - > success .
* /
2018-08-10 15:51:31 -04:00
/ * *
* @ interface CustomPagesOptions
* @ property { String } choosePassword choose password page path
2021-02-09 14:03:57 +01:00
* @ property { String } expiredVerificationLink expired verification link page path
2019-05-11 15:25:31 -05:00
* @ property { String } invalidLink invalid link page path
2021-02-09 14:03:57 +01:00
* @ property { String } invalidPasswordResetLink invalid password reset link page path
2019-06-15 04:35:09 +08:00
* @ property { String } invalidVerificationLink invalid verification link page path
* @ property { String } linkSendFail verification link send fail page path
* @ property { String } linkSendSuccess verification link send success page path
* @ property { String } parseFrameURL for masking user - facing pages
2018-08-10 15:51:31 -04:00
* @ property { String } passwordResetSuccess password reset success page path
2019-05-11 15:25:31 -05:00
* @ property { String } verifyEmailSuccess verify email success page path
2018-08-10 15:51:31 -04:00
* /
/ * *
* @ interface LiveQueryOptions
* @ property { String [ ] } classNames parse - server ' s LiveQuery classNames
* @ property { Adapter < PubSubAdapter > } pubSubAdapter LiveQuery pubsub adapter
2019-05-11 19:13:41 -05:00
* @ property { Any } redisOptions parse - server ' s LiveQuery redisOptions
2019-05-11 15:25:31 -05:00
* @ property { String } redisURL parse - server ' s LiveQuery redisURL
2019-07-30 09:05:41 -05:00
* @ property { Adapter < WSSAdapter > } wssAdapter Adapter module for the WebSocketServer
2018-08-10 15:51:31 -04:00
* /
/ * *
* @ interface LiveQueryServerOptions
* @ property { String } appId This string should match the appId in use by your Parse Server . If you deploy the LiveQuery server alongside Parse Server , the LiveQuery server will try to use the same appId .
2020-10-21 16:32:07 -07:00
* @ property { Number } cacheTimeout Number in milliseconds . When clients provide the sessionToken to the LiveQuery server , the LiveQuery server will try to fetch its ParseUser ' s objectId from parse server and store it in the cache . The value defines the duration of the cache . Check the following Security section and our protocol specification for details , defaults to 5 * 1000 ms ( 5 seconds ) .
2019-05-11 15:25:31 -05:00
* @ property { Any } keyPairs A JSON object that serves as a whitelist of keys . It is used for validating clients when they try to connect to the LiveQuery server . Check the following Security section and our protocol specification for details .
2018-08-10 15:51:31 -04:00
* @ property { String } logLevel This string defines the log level of the LiveQuery server . We support VERBOSE , INFO , ERROR , NONE , defaults to INFO .
2019-05-11 15:25:31 -05:00
* @ property { String } masterKey This string should match the masterKey in use by your Parse Server . If you deploy the LiveQuery server alongside Parse Server , the LiveQuery server will try to use the same masterKey .
2018-08-10 15:51:31 -04:00
* @ property { Number } port The port to run the LiveQuery server , defaults to 1337.
* @ property { Adapter < PubSubAdapter > } pubSubAdapter LiveQuery pubsub adapter
2019-05-11 19:13:41 -05:00
* @ property { Any } redisOptions parse - server ' s LiveQuery redisOptions
2019-05-11 15:25:31 -05:00
* @ property { String } redisURL parse - server ' s LiveQuery redisURL
* @ property { String } serverURL This string should match the serverURL in use by your Parse Server . If you deploy the LiveQuery server alongside Parse Server , the LiveQuery server will try to use the same serverURL .
* @ property { Number } websocketTimeout Number of milliseconds between ping / pong frames . The WebSocket server sends ping / pong frames to the clients to keep the WebSocket alive . This value defines the interval of the ping / pong frame from the server to clients , defaults to 10 * 1000 ms ( 10 s ) .
2019-07-30 09:05:41 -05:00
* @ property { Adapter < WSSAdapter > } wssAdapter Adapter module for the WebSocketServer
2018-08-10 15:51:31 -04:00
* /
2020-07-15 20:10:33 +02:00
/ * *
* @ interface IdempotencyOptions
* @ property { String [ ] } paths An array of paths for which the feature should be enabled . The mount path must not be included , for example instead of ` /parse/functions/myFunction ` specifiy ` functions/myFunction ` . The entries are interpreted as regular expression , for example ` functions/.* ` matches all functions , ` jobs/.* ` matches all jobs , ` classes/.* ` matches all classes , ` .* ` matches all paths .
* @ property { Number } ttl The duration in seconds after which a request record is discarded from the database , defaults to 300 s .
* /
2020-12-04 08:03:29 +11:00
/ * *
* @ interface AccountLockoutOptions
* @ property { Number } duration number of minutes that a locked - out account remains locked out before automatically becoming unlocked .
* @ property { Number } threshold number of failed sign - in attempts that will cause a user account to be locked
2021-02-01 01:07:04 +01:00
* @ property { Boolean } unlockOnPasswordReset Is true if the account lock should be removed after a successful password reset .
2020-12-04 08:03:29 +11:00
* /
/ * *
* @ interface PasswordPolicyOptions
* @ property { Boolean } doNotAllowUsername disallow username in passwords
* @ property { Number } maxPasswordAge days for password expiry
* @ property { Number } maxPasswordHistory setting to prevent reuse of previous n passwords
* @ property { Boolean } resetTokenReuseIfValid resend token if it ' s still valid
* @ property { Number } resetTokenValidityDuration time for token to expire
* @ property { Function } validatorCallback a callback function to be invoked to validate the password
* @ property { String } validatorPattern a RegExp object or a regex string representing the pattern to enforce
* /
2020-12-17 20:16:37 +11:00
/ * *
* @ interface FileUploadOptions
* @ property { Boolean } enableForAnonymousUser Is true if file upload should be allowed for anonymous users .
* @ property { Boolean } enableForAuthenticatedUser Is true if file upload should be allowed for authenticated users .
* @ property { Boolean } enableForPublic Is true if file upload should be allowed for anyone , regardless of user authentication .
* /
2021-03-16 16:05:36 -05:00
/ * *
* @ interface DatabaseOptions
2021-03-17 01:57:10 +01:00
* @ property { Boolean } enableSchemaHooks Enables database real - time hooks to update single schema cache . Set to ` true ` if using multiple Parse Servers instances connected to the same database . Failing to do so will cause a schema change to not propagate to all instances and re - syncing will only happen when the instances restart . To use this feature with MongoDB , a replica set cluster with [ change stream ] ( https : //docs.mongodb.com/manual/changeStreams/#availability) support is required.
2021-03-16 16:05:36 -05:00
* /