You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
You may set the host, port and mount path by supplying the `--host`, `--port` and `--mountPath` options to parse-dashboard. You can use anything you want as the app name, or leave it out in which case the app ID will be used.
59
64
60
-
NB: the `--dev` parameter is disabling production-ready security features, do not use this parameter when starting the dashboard in production. This parameter is useful if you are running on docker.
65
+
NB: the `--dev` parameter is disabling production-ready security features, do not use this parameter when starting the dashboard in production. This parameter is useful if you are running on docker.
61
66
62
67
After starting the dashboard, you can visit http://localhost:4040 in your browser:
63
68
@@ -241,6 +246,33 @@ You can set `appNameForURL` in the config file for each app to control the url o
241
246
242
247
To change the app to production, simply set `production` to `true` in your config file. The default value is false if not specified.
243
248
249
+
### Prevent columns sorting
250
+
251
+
You can prevent some columns to be sortable by adding `preventSort` to columnPreference options in each app configuration
252
+
253
+
```json
254
+
255
+
"apps": [
256
+
{
257
+
"appId": "local_app_id",
258
+
"columnPreference": {
259
+
"_User": [
260
+
{
261
+
"name": "createdAt",
262
+
"visible": true,
263
+
"preventSort": true
264
+
},
265
+
{
266
+
"name": "updatedAt",
267
+
"visible": true,
268
+
"preventSort": false
269
+
},
270
+
]
271
+
}
272
+
}
273
+
]
274
+
```
275
+
244
276
# Running as Express Middleware
245
277
246
278
Instead of starting Parse Dashboard with the CLI, you can also run it as an [express](https://github.com/expressjs/express) middleware.
@@ -347,7 +379,33 @@ You can configure your dashboard for Basic Authentication by adding usernames an
347
379
```
348
380
349
381
You can store the password in either `plain text` or `bcrypt` formats. To use the `bcrypt` format, you must set the config `useEncryptedPasswords` parameter to `true`.
350
-
You can encrypt the password using any online bcrypt tool e.g. [https://www.bcrypt-generator.com](https://www.bcrypt-generator.com).
382
+
You can generate encrypted passwords by using `parse-dashboard --createUser`, and pasting the result in your users config.
You can add an additional layer of security for a user account by requiring multi-factor authentication (MFA) for the user to login.
387
+
388
+
With MFA enabled, a user must provide a one-time password that is typically bound to a physical device, in addition to their login password. This means in addition to knowing the login password, the user needs to have physical access to a device to generate the one-time password. This one-time password is time-based (TOTP) and only valid for a short amount of time, typically 30 seconds, until it expires.
389
+
390
+
The user requires an authenticator app to generate the one-time password. These apps are provided by many 3rd parties and mostly for free.
391
+
392
+
If you create a new user by running `parse-dashboard --createUser`, you will be asked whether you want to enable MFA for the new user. To enable MFA for an existing user,
393
+
run `parse-dashboard --createMFA` to generate a `mfa` secret that you then add to the existing user configuration, for example:
394
+
395
+
```json
396
+
{
397
+
"apps": [{"...": "..."}],
398
+
"users": [
399
+
{
400
+
"user":"user1",
401
+
"pass":"pass",
402
+
"mfa": "lmvmOIZGMTQklhOIhveqkumss"
403
+
}
404
+
]
405
+
}
406
+
```
407
+
408
+
Parse Dashboard follows the industry standard and supports the common OTP algorithm `SHA-1` by default, to be compatible with most authenticator apps. If you have specific security requirements regarding TOTP characteristics (algorithm, digit length, time period) you can customize them by using the guided configuration mentioned above.
351
409
352
410
### Separating App Access Based on User Identity
353
411
If you have configured your dashboard to manage multiple applications, you can restrict the management of apps based on user identity.
@@ -421,15 +479,15 @@ You can mark a user as a read-only user:
421
479
"appId": "myAppId1",
422
480
"masterKey": "myMasterKey1",
423
481
"readOnlyMasterKey": "myReadOnlyMasterKey1",
424
-
"serverURL": "myURL1",
482
+
"serverURL": "myURL1",
425
483
"port": 4040,
426
484
"production": true
427
485
},
428
486
{
429
487
"appId": "myAppId2",
430
488
"masterKey": "myMasterKey2",
431
489
"readOnlyMasterKey": "myReadOnlyMasterKey2",
432
-
"serverURL": "myURL2",
490
+
"serverURL": "myURL2",
433
491
"port": 4041,
434
492
"production": true
435
493
}
@@ -464,7 +522,7 @@ You can give read only access to a user on a per-app basis:
464
522
"appId": "myAppId1",
465
523
"masterKey": "myMasterKey1",
466
524
"readOnlyMasterKey": "myReadOnlyMasterKey1",
467
-
"serverURL": "myURL",
525
+
"serverURL": "myURL",
468
526
"port": 4040,
469
527
"production": true
470
528
},
@@ -505,7 +563,7 @@ You can provide a list of locales or languages you want to support for your dash
505
563
506
564
## Run with Docker
507
565
508
-
The official docker image is published on [docker hub](https://hub.docker.com/r/parseplatform/parse-dashboard)
566
+
The official docker image is published on [docker hub](https://hub.docker.com/r/parseplatform/parse-dashboard)
509
567
510
568
Run the image with your ``config.json`` mounted as a volume
If you are not familiar with Docker, ``--port 8080`` will be passed in as argument to the entrypoint to form the full command ``npm start -- --port 8080``. The application will start at port 8080 inside the container and port ``8080`` will be mounted to port ``80`` on your host machine.
531
589
590
+
# Features
591
+
*(The following is not a complete list of features but a work in progress to build a comprehensive feature list.)*
592
+
593
+
## Browse as User
594
+
595
+
▶️ *Core > Browser > Browse*
596
+
597
+
This feature allows you to use the data browser as another user, respecting that user's data permissions. For example, you will only see records and fields the user has permission to see.
598
+
599
+
> ⚠️ Logging in as another user will trigger the same Cloud Triggers as if the user logged in themselves using any other login method. Logging in as another user requires to enter that user's password.
600
+
601
+
## CSV Export
602
+
603
+
▶️ *Core > Browser > Export*
604
+
605
+
This feature will take either selected rows or all rows of an individual class and saves them to a CSV file, which is then downloaded. CSV headers are added to the top of the file matching the column names.
606
+
607
+
> ⚠️ There is currently a 10,000 row limit when exporting all data. If more than 10,000 rows are present in the class, the CSV file will only contain 10,000 rows.
608
+
532
609
# Contributing
533
610
534
611
We really want Parse to be yours, to see it grow and thrive in the open source community. Please see the [Contributing to Parse Dashboard guide](CONTRIBUTING.md).
0 commit comments