DPSAPI Reference

API Reference

The DPS Platform API is built on Parse Server. All operations are Parse Cloud Functions — there are no REST endpoints for business logic.

  • Base URL: https://api.platform.duabalabs.com/parse
  • Function endpoint: POST /parse/functions/{functionName}

Making requests

cURL

curl -X POST \
  https://api.platform.duabalabs.com/parse/functions/loginWithEmail \
  -H "X-Parse-Application-Id: YOUR_APP_ID" \
  -H "X-Parse-Session-Token: YOUR_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"email": "user@example.com", "password": "password123"}'

Parse JS SDK

import Parse from 'parse';
 
Parse.initialize('YOUR_APP_ID', 'YOUR_JS_KEY');
Parse.serverURL = 'https://api.platform.duabalabs.com/parse';
 
const result = await Parse.Cloud.run('loginWithEmail', {
  email: 'user@example.com',
  password: 'password123',
});

dps-client SDK

For checkout / subscription / order calls, prefer the typed @duabalabs/dps-client over raw Parse.Cloud.run.

Authentication

Most functions require a session token:

X-Parse-Session-Token: YOUR_SESSION_TOKEN

Roles

RoleDescription
clientStandard user with access to own projects
supervisorCan manage team projects
adminFull access to organization
superadminPlatform-level access

Errors

{ "code": 101, "error": "Invalid email or password" }
CodeMeaning
100Connection failed
101Object not found / invalid credentials
119Operation forbidden
137Unique value already exists
141Cloud function error
142Validation error
403Insufficient permissions
429Rate limit exceeded

Rate limiting

TierRequests / minute
Free60
Developer300
Professional1000
EnterpriseUnlimited

Headers on every response:

X-RateLimit-Limit: 300
X-RateLimit-Remaining: 295
X-RateLimit-Reset: 1704067200

Auth functions

FunctionPurpose
loginWithEmailAuthenticate user with email + password
registerUserCreate new user account
getCurrentUserGet authenticated user details
updateProfileUpdate profile fields
changePasswordChange password

Project management

FunctionPurposeAuth
dps_createProjectCreate new projectUser
dps_getProjectsList user’s projectsUser
dps_getProjectGet project detailsMember
dps_updateProjectUpdate project settingsMember
dps_deleteProjectDelete project (cascades)Owner

Organizations

FunctionAuth
createOrganizationUser
getOrganizationMember
updateOrganizationOwner/Admin
deleteOrganizationOwner
listOrganizationsUser
inviteMemberOwner/Admin
removeMemberOwner/Admin

Apps

FunctionAuth
createAppMember
getAppMember
updateAppMember
deleteAppOwner/Admin
listAppsMember

Parse instances

FunctionPurpose
dps_createParseInstanceProvision a new Parse Server instance
dps_getParseInstancesList instances for a project
dps_getParseInstanceGet instance details
dps_startParseInstanceStart a stopped instance
dps_stopParseInstanceStop a running instance
dps_restartParseInstanceRestart an instance
dps_deleteParseInstanceDelete instance permanently
dps_getServerMetricsGet instance metrics

Sellub instances

Mirror the Parse Server lifecycle but for Sellub (Vendure) servers:

FunctionPurpose
dps_deploySellubServerDeploy sellub-server container
dps_deploySellubDashboardDeploy sellub-dashboard
dps_deploySellubStorefrontDeploy sellub-storefront
dps_startSellubServer / dps_stopSellubServer / dps_restartSellubServerLifecycle
dps_getSellubServerStatusStatus

Generic instance helpers

These work across parse-server and sellub (consolidated patterns — see Sellub on DPS):

FunctionPurpose
dps_getInstanceDetailsGeneric fetch by appId
dps_getInstanceLogsDocker container logs
dps_getAppMetricsReal Docker stats (CPU%, memory) + Parse _User / _Session counts
dps_createMongoBackupmongodump via Docker exec
dps_createPostgresBackuppg_dump via Docker exec with gzip
dps_testPostgresConnectionReal pg client diagnostics
dps_listCloudFunctionsDocker exec grep + introspection fallback (parse-server only)
dps_runCloudFunctionHTTP proxy to user’s Parse Server (parse-server only)

Deployments

FunctionPurpose
triggerDeploymentStart deployment
getDeploymentGet deployment info
listDeploymentsList app deployments
cancelDeploymentCancel in-progress
rollbackDeploymentRollback to previous
getDeploymentLogsGet build/deploy logs

Templates (super admin)

FunctionAuth
createTemplateSuperAdmin
getTemplatePublic
updateTemplateSuperAdmin
deleteTemplateSuperAdmin
getTemplatesPublic
updateTemplateStatusSuperAdmin
updateTemplateVersionSuperAdmin
updateTemplatePricingSuperAdmin
addTemplateDockerVersionSuperAdmin
getFeaturedTemplatesPublic
getTemplatesByCategoryPublic
getTemplateStatsAdmin

Docker images (super admin)

FunctionAuth
searchDockerImagesPublic
getDockerImagePublic
registerDockerImageSuperAdmin
updateDockerImageSuperAdmin
deleteDockerImageSuperAdmin
addDockerImageVersionSuperAdmin
deprecateDockerImageVersionSuperAdmin
triggerDockerBuildSuperAdmin
getBuildJobStatusSuperAdmin
listBuildJobsSuperAdmin

Checkout / payments (DPS-E)

The pipeline every consumer app uses:

FunctionPurpose
dps_checkout_createCreate a Paystack checkout session. Accepts flow: 'direct' | 'vendure', appId, storeId, amount or lineItems, customer, optional paystackPlanCode.
dps_checkout_verifyVerify a payment by reference. Used by thank-you pages.
dps_subscriptions_checkCheck whether email has an active subscription for appId. Powers auth gates (Duabaconnect).
dps_admin_registerVendureChannel(master key only) Upsert a VendureChannel row mapping channelToken → {appId, storeId, adminApiUrl, adminToken, label}.

Source-of-truth doc

Full reference (with parameters and response shapes for every function): apps/dps/API.md.