parse-dashboard 5.4.0 → 6.0.0-alpha.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* based on code from:
|
|
3
|
+
*
|
|
4
|
+
* @license RequireJS text 0.25.0 Copyright (c) 2010-2011, The Dojo Foundation All Rights Reserved.
|
|
5
|
+
* Available via the MIT or new BSD license.
|
|
6
|
+
* see: http://github.com/jrburke/requirejs for details
|
|
7
|
+
*/
|
|
8
|
+
|
|
1
9
|
/*
|
|
2
10
|
object-assign
|
|
3
11
|
(c) Sindre Sorhus
|
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
[](https://github.com/parse-community/parse-dashboard/actions?query=workflow%3Aci+branch%3Arelease)
|
|
8
8
|
[](https://snyk.io/test/github/parse-community/parse-dashboard)
|
|
9
9
|
|
|
10
|
-
[](https://nodejs.org/)
|
|
11
11
|
[](https://github.com/parse-community/parse-dashboard/releases)
|
|
12
12
|
|
|
13
13
|
[](https://www.npmjs.com/package/parse-dashboard)
|
|
@@ -49,6 +49,7 @@ Parse Dashboard is a standalone dashboard for managing your [Parse Server](https
|
|
|
49
49
|
- [Deploying Parse Dashboard](#deploying-parse-dashboard)
|
|
50
50
|
- [Preparing for Deployment](#preparing-for-deployment)
|
|
51
51
|
- [Security Considerations](#security-considerations)
|
|
52
|
+
- [Security Checks](#security-checks)
|
|
52
53
|
- [Configuring Basic Authentication](#configuring-basic-authentication)
|
|
53
54
|
- [Multi-Factor Authentication (One-Time Password)](#multi-factor-authentication-one-time-password)
|
|
54
55
|
- [Separating App Access Based on User Identity](#separating-app-access-based-on-user-identity)
|
|
@@ -59,6 +60,8 @@ Parse Dashboard is a standalone dashboard for managing your [Parse Server](https
|
|
|
59
60
|
- [Configuring Localized Push Notifications](#configuring-localized-push-notifications)
|
|
60
61
|
- [Run with Docker](#run-with-docker)
|
|
61
62
|
- [Features](#features)
|
|
63
|
+
- [Data Browser](#data-browser)
|
|
64
|
+
- [Filters](#filters)
|
|
62
65
|
- [Browse as User](#browse-as-user)
|
|
63
66
|
- [Change Pointer Key](#change-pointer-key)
|
|
64
67
|
- [Limitations](#limitations)
|
|
@@ -107,9 +110,8 @@ Parse Dashboard is continuously tested with the most recent releases of Node.js
|
|
|
107
110
|
|
|
108
111
|
| Version | Latest Version | End-of-Life | Compatible |
|
|
109
112
|
|------------|----------------|-------------|------------|
|
|
110
|
-
| Node.js
|
|
111
|
-
| Node.js
|
|
112
|
-
| Node.js 18 | 18.9.0 | May 2025 | ✅ Yes |
|
|
113
|
+
| Node.js 18 | 18.9.1 | May 2025 | ✅ Yes |
|
|
114
|
+
| Node.js 20 | 20.11.1 | April 2026 | ✅ Yes |
|
|
113
115
|
|
|
114
116
|
## Configuring Parse Dashboard
|
|
115
117
|
|
|
@@ -124,6 +126,7 @@ Parse Dashboard is continuously tested with the most recent releases of Node.js
|
|
|
124
126
|
| `apps.scripts.cloudCodeFunction` | String | no | - | `'deleteUser'` | The name of the Parse Cloud Function to execute. |
|
|
125
127
|
| `apps.scripts.showConfirmationDialog` | Bool | yes | `false` | `true` | Is `true` if a confirmation dialog should be displayed before the script is executed, `false` if the script should be executed immediately. |
|
|
126
128
|
| `apps.scripts.confirmationDialogStyle` | String | yes | `info` | `critical` | The style of the confirmation dialog. Valid values: `info` (blue style), `critical` (red style). |
|
|
129
|
+
| `apps.cloudConfigHistoryLimit` | Integer | yes | `100` | `100` | The number of historic values that should be saved in the Cloud Config change history. Valid values: `0`...`Number.MAX_SAFE_INTEGER`. |
|
|
127
130
|
|
|
128
131
|
### File
|
|
129
132
|
|
|
@@ -397,6 +400,31 @@ You can specify scripts to execute Cloud Functions with the `scripts` option:
|
|
|
397
400
|
]
|
|
398
401
|
```
|
|
399
402
|
|
|
403
|
+
You can also specify custom fields with the `scrips` option:
|
|
404
|
+
|
|
405
|
+
```json
|
|
406
|
+
"apps": [
|
|
407
|
+
{
|
|
408
|
+
"scripts": [
|
|
409
|
+
{
|
|
410
|
+
"title": "Delete account",
|
|
411
|
+
"classes": [
|
|
412
|
+
{
|
|
413
|
+
"name": "_User",
|
|
414
|
+
"fields": [
|
|
415
|
+
{ "name": "createdAt", "validator": "value => value > new Date(\"2025\")" }
|
|
416
|
+
]
|
|
417
|
+
}
|
|
418
|
+
],
|
|
419
|
+
"cloudCodeFunction": "deleteAccount"
|
|
420
|
+
}
|
|
421
|
+
]
|
|
422
|
+
}
|
|
423
|
+
]
|
|
424
|
+
|
|
425
|
+
```
|
|
426
|
+
|
|
427
|
+
|
|
400
428
|
Next, define the Cloud Function in Parse Server that will be called. The object that has been selected in the data browser will be made available as a request parameter:
|
|
401
429
|
|
|
402
430
|
```js
|
|
@@ -540,7 +568,7 @@ var dashboard = new ParseDashboard({
|
|
|
540
568
|
});
|
|
541
569
|
```
|
|
542
570
|
|
|
543
|
-
|
|
571
|
+
### Security Checks
|
|
544
572
|
|
|
545
573
|
You can view the security status of your Parse Server by enabling the dashboard option `enableSecurityChecks`, and visiting App Settings > Security.
|
|
546
574
|
|
|
@@ -558,8 +586,6 @@ const dashboard = new ParseDashboard({
|
|
|
558
586
|
});
|
|
559
587
|
```
|
|
560
588
|
|
|
561
|
-
|
|
562
|
-
|
|
563
589
|
### Configuring Basic Authentication
|
|
564
590
|
You can configure your dashboard for Basic Authentication by adding usernames and passwords your `parse-dashboard-config.json` configuration file:
|
|
565
591
|
|
|
@@ -791,6 +817,26 @@ If you are not familiar with Docker, ``--port 8080`` will be passed in as argume
|
|
|
791
817
|
# Features
|
|
792
818
|
*(The following is not a complete list of features but a work in progress to build a comprehensive feature list.)*
|
|
793
819
|
|
|
820
|
+
## Data Browser
|
|
821
|
+
|
|
822
|
+
### Filters
|
|
823
|
+
|
|
824
|
+
▶️ *Core > Browser > Filter*
|
|
825
|
+
|
|
826
|
+
The filter dialog allows to add relational filter conditions based on other classes that have a pointer to the current class.
|
|
827
|
+
|
|
828
|
+
For example, users in the `_User` class may have:
|
|
829
|
+
|
|
830
|
+
- purchases in a `Purchase` class with a `_User` pointer field
|
|
831
|
+
- transactions in a `Payment` class with a `_User` pointer field
|
|
832
|
+
|
|
833
|
+
A relational filter allows you filter all users who:
|
|
834
|
+
|
|
835
|
+
- purchased a specific item (in `Purchase` class)
|
|
836
|
+
- payed with a specific payment method (in `Payment` class)
|
|
837
|
+
|
|
838
|
+
To apply such a filter, simply go to the `_User` class and add the two required filter conditions with the `Purchase` and `Payment` classes.
|
|
839
|
+
|
|
794
840
|
## Browse as User
|
|
795
841
|
|
|
796
842
|
▶️ *Core > Browser > Browse*
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "parse-dashboard",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "6.0.0-alpha.10",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/ParsePlatform/parse-dashboard"
|
|
@@ -45,13 +45,13 @@
|
|
|
45
45
|
"copy-to-clipboard": "3.3.2",
|
|
46
46
|
"core-js": "3.28.0",
|
|
47
47
|
"csurf": "1.11.0",
|
|
48
|
-
"express": "4.
|
|
48
|
+
"express": "4.19.2",
|
|
49
49
|
"graphiql": "2.0.8",
|
|
50
50
|
"graphql": "16.8.1",
|
|
51
51
|
"immutable": "4.1.0",
|
|
52
52
|
"immutable-devtools": "0.1.5",
|
|
53
53
|
"inquirer": "8.2.4",
|
|
54
|
-
"js-beautify": "1.14.
|
|
54
|
+
"js-beautify": "1.14.10",
|
|
55
55
|
"otpauth": "8.0.3",
|
|
56
56
|
"package-json": "7.0.0",
|
|
57
57
|
"parse": "3.4.2",
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
"prop-types": "15.8.1",
|
|
62
62
|
"qrcode": "1.5.1",
|
|
63
63
|
"react": "16.14.0",
|
|
64
|
-
"react-ace": "
|
|
64
|
+
"react-ace": "11.0.1",
|
|
65
65
|
"react-dnd": "10.0.2",
|
|
66
66
|
"react-dnd-html5-backend": "10.0.2",
|
|
67
67
|
"react-dom": "16.14.0",
|
|
@@ -69,9 +69,7 @@
|
|
|
69
69
|
"react-json-view": "1.21.3",
|
|
70
70
|
"react-popper-tooltip": "4.4.2",
|
|
71
71
|
"react-router-dom": "6.4.1",
|
|
72
|
-
"regenerator-runtime": "0.13.11"
|
|
73
|
-
"semver": "7.5.2",
|
|
74
|
-
"typescript": "4.8.3"
|
|
72
|
+
"regenerator-runtime": "0.13.11"
|
|
75
73
|
},
|
|
76
74
|
"devDependencies": {
|
|
77
75
|
"@actions/core": "1.9.1",
|
|
@@ -110,8 +108,10 @@
|
|
|
110
108
|
"sass": "1.58.1",
|
|
111
109
|
"sass-loader": "13.2.0",
|
|
112
110
|
"semantic-release": "17.4.6",
|
|
111
|
+
"semver": "7.5.2",
|
|
113
112
|
"style-loader": "3.3.1",
|
|
114
113
|
"svg-prep": "1.0.4",
|
|
114
|
+
"typescript": "4.8.3",
|
|
115
115
|
"webpack": "5.75.0",
|
|
116
116
|
"webpack-cli": "5.0.1",
|
|
117
117
|
"yaml": "1.10.0"
|
|
@@ -137,7 +137,7 @@
|
|
|
137
137
|
"parse-dashboard": "./bin/parse-dashboard"
|
|
138
138
|
},
|
|
139
139
|
"engines": {
|
|
140
|
-
"node": ">=
|
|
140
|
+
"node": ">=18.0.0 <21"
|
|
141
141
|
},
|
|
142
142
|
"main": "Parse-Dashboard/app.js",
|
|
143
143
|
"jest": {
|