parse-dashboard 6.0.0 → 6.1.0

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.
package/README.md CHANGED
@@ -3,7 +3,6 @@
3
3
  ---
4
4
 
5
5
  [![Build Status](https://github.com/parse-community/parse-dashboard/workflows/ci/badge.svg?branch=alpha)](https://github.com/parse-community/parse-dashboard/actions?query=workflow%3Aci+branch%3Aalpha)
6
- [![Build Status](https://github.com/parse-community/parse-dashboard/workflows/ci/badge.svg?branch=beta)](https://github.com/parse-community/parse-dashboard/actions?query=workflow%3Aci+branch%3Abeta)
7
6
  [![Build Status](https://github.com/parse-community/parse-dashboard/workflows/ci/badge.svg?branch=release)](https://github.com/parse-community/parse-dashboard/actions?query=workflow%3Aci+branch%3Arelease)
8
7
  [![Snyk Badge](https://snyk.io/test/github/parse-community/parse-dashboard/badge.svg)](https://snyk.io/test/github/parse-community/parse-dashboard)
9
8
 
@@ -11,7 +10,6 @@
11
10
  [![auto-release](https://img.shields.io/badge/%F0%9F%9A%80-auto--release-9e34eb.svg)](https://github.com/parse-community/parse-dashboard/releases)
12
11
 
13
12
  [![npm latest version](https://img.shields.io/npm/v/parse-dashboard/latest.svg)](https://www.npmjs.com/package/parse-dashboard)
14
- [![npm beta version](https://img.shields.io/npm/v/parse-dashboard/beta.svg)](https://www.npmjs.com/package/parse-dashboard)
15
13
  [![npm alpha version](https://img.shields.io/npm/v/parse-dashboard/alpha.svg)](https://www.npmjs.com/package/parse-dashboard)
16
14
 
17
15
  [![Backers on Open Collective](https://opencollective.com/parse-server/backers/badge.svg)][open-collective-link]
@@ -71,6 +69,7 @@ Parse Dashboard is a standalone dashboard for managing your [Parse Server](https
71
69
  - [Video Item](#video-item)
72
70
  - [Audio Item](#audio-item)
73
71
  - [Button Item](#button-item)
72
+ - [Panel Item](#panel-item)
74
73
  - [Browse as User](#browse-as-user)
75
74
  - [Change Pointer Key](#change-pointer-key)
76
75
  - [Limitations](#limitations)
@@ -130,6 +129,11 @@ Parse Dashboard is continuously tested with the most recent releases of Node.js
130
129
  | Parameter | Type | Optional | Default | Example | Description |
131
130
  |----------------------------------------|---------------------|----------|---------|----------------------|---------------------------------------------------------------------------------------------------------------------------------------------|
132
131
  | `apps` | Array<Object> | no | - | `[{ ... }, { ... }]` | The apps that are configured for the dashboard. |
132
+ | `apps.appId` | String | yes | - | `"myAppId"` | The Application ID for your Parse Server instance. |
133
+ | `apps.masterKey` | String \| Function | yes | - | `"exampleMasterKey"`, `() => "exampleMasterKey"` | The master key for full access to Parse Server. It can be provided directly as a String or as a Function returning a String. |
134
+ | `apps.masterKeyTtl` | Number | no | - | `3600` | Time-to-live (TTL) for the master key in seconds. This defines how long the master key is cached before the `masterKey` function is re-triggered. |
135
+ | `apps.serverURL` | String | yes | - | `"http://localhost:1337/parse"` | The URL where your Parse Server is running. |
136
+ | `apps.appName` | String | no | - | `"MyApp"` | The display name of the app in the dashboard. |
133
137
  | `infoPanel` | Array<Object> | yes | - | `[{ ... }, { ... }]` | The [info panel](#info-panel) configuration. |
134
138
  | `infoPanel[*].title` | String | no | - | `User Details` | The panel title. |
135
139
  | `infoPanel[*].classes` | Array<String> | no | - | `["_User"]` | The classes for which the info panel should be displayed. |
@@ -929,12 +933,13 @@ Example:
929
933
 
930
934
  A text item that consists of a key and a value. The value can optionally be linked to a URL.
931
935
 
932
- | Parameter | Value | Optional | Description |
933
- |-----------|--------|----------|-----------------------------------------------------------------------------------|
934
- | `type` | String | No | Must be `"keyValue"`. |
935
- | `key` | String | No | The key text to display. |
936
- | `value` | String | No | The value text to display. |
937
- | `url` | String | Yes | The URL that will be opened in a new browser tab when clicking on the value text. |
936
+ | Parameter | Value | Default | Optional | Description |
937
+ |-----------------|---------|-------------|----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
938
+ | `type` | String | - | No | Must be `"keyValue"`. |
939
+ | `key` | String | - | No | The key text to display. |
940
+ | `value` | String | - | No | The value text to display. |
941
+ | `url` | String | `undefined` | Yes | The URL that will be opened in a new browser tab when clicking on the value text. It can be set to an absolute URL or a relative URL in which case the base URL is `<PROTOCOL>://<HOST>/<MOUNT_PATH>/`. |
942
+ | `isRelativeUrl` | Boolean | `false` | Yes | Set this to `true` when linking to another dashboard page, in which case the base URL for the relative URL will be `<PROTOCOL>://<HOST>/<MOUNT_PATH>/apps/<APP_NAME>/`. |
938
943
 
939
944
  Examples:
940
945
 
@@ -951,7 +956,33 @@ Examples:
951
956
  "type": "keyValue",
952
957
  "key": "Last purchase ID",
953
958
  "value": "123",
954
- "url": "https://example.com/purchaseDetails?purchaseId=012345"
959
+ "url": "https://example.com/purchaseDetails?purchaseId=123"
960
+ }
961
+ ```
962
+
963
+ ```json
964
+ {
965
+ "type": "keyValue",
966
+ "key": "Purchase",
967
+ "value": "123",
968
+ "url": "browser/Purchase",
969
+ "isRelativeUrl": true
970
+ }
971
+ ```
972
+
973
+ To navigate to a specific object using a relative URL, the query parameters must be URL encoded:
974
+
975
+ ```js
976
+ const objectId = 'abc123';
977
+ const className = 'Purchase';
978
+ const query = [{ field: 'objectId', constraint: 'eq', compareTo: objectId }];
979
+ const url = `browser/Purchase?filters=${JSON.stringify(query)}`;
980
+ const item = {
981
+ type: 'keyValue',
982
+ key: 'Purchase',
983
+ value: objectId,
984
+ url,
985
+ isRelativeUrl: true
955
986
  }
956
987
  ```
957
988
 
@@ -1082,6 +1113,26 @@ Example:
1082
1113
  }
1083
1114
  ```
1084
1115
 
1116
+ #### Panel Item
1117
+
1118
+ A sub-panel whose data is loaded on-demand by expanding the item.
1119
+
1120
+ | Parameter | Value | Optional | Description |
1121
+ |---------------------|--------|----------|---------------------------------------------------------------------------------------------------------------------------------------------------|
1122
+ | `type` | String | No | Must be `"infoPanel"`. |
1123
+ | `title` | String | No | The title to display in the expandable headline. |
1124
+ | `cloudCodeFunction` | String | No | The Cloud Code Function to call which receives the selected object in the data browser and returns the response to be displayed in the sub-panel. |
1125
+
1126
+ Example:
1127
+
1128
+ ```json
1129
+ {
1130
+ "type": "panel",
1131
+ "title": "Purchase History",
1132
+ "cloudCodeFunction": "getUserPurchaseHistory"
1133
+ }
1134
+ ```
1135
+
1085
1136
  ## Browse as User
1086
1137
 
1087
1138
  ▶️ *Core > Browser > Browse*
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "parse-dashboard",
3
- "version": "6.0.0",
3
+ "version": "6.1.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/ParsePlatform/parse-dashboard"
@@ -45,7 +45,7 @@
45
45
  "copy-to-clipboard": "3.3.2",
46
46
  "core-js": "3.28.0",
47
47
  "csurf": "1.11.0",
48
- "express": "4.21.0",
48
+ "express": "4.21.2",
49
49
  "graphiql": "2.0.8",
50
50
  "graphql": "16.8.1",
51
51
  "immutable": "4.1.0",
@@ -54,7 +54,7 @@
54
54
  "js-beautify": "1.14.10",
55
55
  "otpauth": "8.0.3",
56
56
  "package-json": "7.0.0",
57
- "parse": "3.4.2",
57
+ "parse": "3.5.1",
58
58
  "passport": "0.5.3",
59
59
  "passport-local": "1.0.0",
60
60
  "prismjs": "1.29.0",
@@ -103,7 +103,7 @@
103
103
  "marked": "4.1.1",
104
104
  "null-loader": "4.0.1",
105
105
  "prettier": "2.8.8",
106
- "puppeteer": "22.6.1",
106
+ "puppeteer": "22.15.0",
107
107
  "react-test-renderer": "16.13.1",
108
108
  "request": "2.88.2",
109
109
  "request-promise": "4.2.5",
@@ -139,7 +139,7 @@
139
139
  "parse-dashboard": "./bin/parse-dashboard"
140
140
  },
141
141
  "engines": {
142
- "node": ">=18.0.0 <21"
142
+ "node": ">=18.0.0 <21 || >=22.9.0 <23"
143
143
  },
144
144
  "main": "Parse-Dashboard/app.js",
145
145
  "jest": {