Skip to content

Commit cdfa197

Browse files
committed
feat: improve README config table
1 parent 05fa54c commit cdfa197

File tree

1 file changed

+109
-25
lines changed

1 file changed

+109
-25
lines changed

README.md

Lines changed: 109 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -142,31 +142,115 @@ Parse Dashboard is continuously tested with the most recent releases of Node.js
142142

143143
### Options
144144

145-
| Parameter | Type | Optional | Default | Example | Description |
146-
|----------------------------------------|---------------------|----------|---------|--------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
147-
| `apps` | Array<Object> | no | - | `[{ ... }, { ... }]` | The apps that are configured for the dashboard. |
148-
| `apps.appId` | String | yes | - | `"myAppId"` | The Application ID for your Parse Server instance. |
149-
| `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. |
150-
| `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. |
151-
| `apps.serverURL` | String | yes | - | `"http://localhost:1337/parse"` | The URL where your Parse Server is running. |
152-
| `apps.appName` | String | no | - | `"MyApp"` | The display name of the app in the dashboard. |
153-
| `infoPanel` | Array<Object> | yes | - | `[{ ... }, { ... }]` | The [info panel](#info-panel) configuration. |
154-
| `infoPanel[*].title` | String | no | - | `User Details` | The panel title. |
155-
| `infoPanel[*].classes` | Array<String> | no | - | `["_User"]` | The classes for which the info panel should be displayed. |
156-
| `infoPanel[*].cloudCodeFunction` | String | no | - | `getUserDetails` | The Cloud Code Function which received the selected object in the data browser and returns the response to be displayed in the info panel. |
157-
| `infoPanel[*].prefetchObjects` | Number | yes | `0` | `2` | Number of next rows to prefetch when browsing sequential rows. For example, `2` means the next 2 rows will be fetched in advance. |
158-
| `infoPanel[*].prefetchStale` | Number | yes | `0` | `10` | Duration in seconds after which prefetched data is discarded as stale. |
159-
| `apps.scripts` | Array<Object> | yes | `[]` | `[{ ... }, { ... }]` | The scripts that can be executed for that app. |
160-
| `apps.scripts.title` | String | no | - | `'Delete User'` | The title that will be displayed in the data browser context menu and the script run confirmation dialog. |
161-
| `apps.scripts.classes` | Array<String> | no | - | `['_User']` | The classes of Parse Objects for which the scripts can be executed. |
162-
| `apps.scripts.cloudCodeFunction` | String | no | - | `'deleteUser'` | The name of the Parse Cloud Function to execute. |
163-
| `apps.scripts.executionBatchSize` | Integer | yes | `1` | `10` | The batch size with which a script should be executed on all selected objects. For example, with 50 objects selected, a batch size of 10 means the script will run on 10 objects in parallel, running a total of 5 batches in serial. |
164-
| `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. |
165-
| `apps.scripts.confirmationDialogStyle` | String | yes | `info` | `critical` | The style of the confirmation dialog. Valid values: `info` (blue style), `critical` (red style). |
166-
| `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`.
167-
| `apps.config` | Object | yes | - | `{ ... }` | App settings option used to store dashboard configuration on the server.
168-
| `apps.config.className` | String | yes | _ | `DashboardConfig` | The table name used to save and migrate the dashboard configuration. |
169-
145+
This section provides a comprehensive reference for all Parse Dashboard configuration options that can be used in the configuration file, via CLI arguments, or as environment variables.
146+
147+
#### Configuration File Options
148+
149+
##### App Configuration (`apps` array)
150+
151+
| Parameter | Type | Optional | Default | CLI | Env Variable | Example | Description |
152+
|-----------|------|----------|---------|-----|--------------|---------|-------------|
153+
| `appId` | String | no | - | `--appId` | `PARSE_DASHBOARD_APP_ID` | `"myAppId"` | The Application ID for your Parse Server instance. |
154+
| `masterKey` | String \| Function | no | - | `--masterKey` | `PARSE_DASHBOARD_MASTER_KEY` | `"key"` | Master key for full access. Can be a String or Function returning a String. |
155+
| `serverURL` | String | no | - | `--serverURL` | `PARSE_DASHBOARD_SERVER_URL` | `"http://localhost:1337/parse"` | The URL where your Parse Server is running. |
156+
| `appName` | String | yes | `appId` | `--appName` | `PARSE_DASHBOARD_APP_NAME` | `"MyApp"` | Display name of the app. |
157+
| `masterKeyTtl` | Number | yes | - | `--masterKeyTtl` | - | `3600` | TTL for master key cache in seconds (when `masterKey` is a Function). |
158+
| `readOnlyMasterKey` | String | yes | - | - | - | `"myReadOnlyKey"` | Read-only master key that prevents mutations. |
159+
| `graphQLServerURL` | String | yes | - | `--graphQLServerURL` | `PARSE_DASHBOARD_GRAPHQL_SERVER_URL` | `"http://localhost:1337/graphql"` | URL of GraphQL Server. |
160+
| `appNameForURL` | String | yes | `appName` | - | - | `"my-app"` | URL-friendly name used in dashboard URLs. |
161+
| `production` | Boolean | yes | `false` | - | - | `true` | Mark as production environment. |
162+
| `iconName` | String | yes | - | - | - | `"icon.png"` | Filename of app icon (requires global `iconsFolder`). |
163+
| `primaryBackgroundColor` | String | yes | - | - | - | `"#FFA500"` | Primary background color (CSS value). |
164+
| `secondaryBackgroundColor` | String | yes | - | - | - | `"#FF4500"` | Secondary background color (CSS value). |
165+
| `supportedPushLocales` | Array<String> | yes | - | - | - | `["en","fr"]` | Supported locales for push notifications. |
166+
| `columnPreference` | Object | yes | - | - | - | `{"_User":[...]}` | Column visibility/sorting/filtering preferences. |
167+
| `classPreference` | Object | yes | - | - | - | `{"_Role":{...}}` | Persistent filters for all users. |
168+
| `enableSecurityChecks` | Boolean | yes | `false` | - | - | `true` | Enable security checks under App Settings > Security. |
169+
| `cloudConfigHistoryLimit` | Integer | yes | `100` | - | - | `200` | Number of historic Cloud Config values (0 to Number.MAX_SAFE_INTEGER). |
170+
| `config` | Object | yes | - | - | - | `{...}` | Settings for storing dashboard config on server. |
171+
| `config.className` | String | yes | - | - | - | `"DashboardConfig"` | Table name for dashboard configuration. |
172+
| `scripts` | Array<Object> | yes | `[]` | - | - | `[{...}]` | Scripts for this app. See [scripts table below](#scripts-configuration). |
173+
| `infoPanel` | Array<Object> | yes | - | - | - | `[{...}]` | Info panel config. See [info panel table below](#info-panel-configuration). |
174+
175+
##### Scripts Configuration (`apps[].scripts[]`)
176+
177+
| Parameter | Type | Optional | Default | Example | Description |
178+
|-----------|------|----------|---------|---------|-------------|
179+
| `title` | String | no | - | `"Delete User"` | Title in context menu and confirmation dialog. |
180+
| `classes` | Array<String> \| Array<Object> | no | - | `["_User"]` | Classes for which script can run. |
181+
| `cloudCodeFunction` | String | no | - | `"deleteUser"` | Parse Cloud Function name to execute. |
182+
| `executionBatchSize` | Integer | yes | `1` | `10` | Batch size for multiple objects (runs in serial). |
183+
| `showConfirmationDialog` | Boolean | yes | `false` | `true` | Show confirmation dialog before execution. |
184+
| `confirmationDialogStyle` | String | yes | `info` | `critical` | Dialog style: `info` (blue) or `critical` (red). |
185+
186+
##### Info Panel Configuration (`apps[].infoPanel[]`)
187+
188+
| Parameter | Type | Optional | Default | Example | Description |
189+
|-----------|------|----------|---------|---------|-------------|
190+
| `title` | String | no | - | `"User Details"` | Panel title. |
191+
| `classes` | Array<String> | no | - | `["_User"]` | Classes for which panel is displayed. |
192+
| `cloudCodeFunction` | String | no | - | `"getUserDetails"` | Cloud Function receiving selected object. |
193+
| `prefetchObjects` | Number | yes | `0` | `2` | Number of next rows to prefetch. |
194+
| `prefetchStale` | Number | yes | `0` | `10` | Seconds after which prefetched data is stale. |
195+
196+
##### Global Configuration
197+
198+
| Parameter | Type | Optional | Default | CLI | Env Variable | Example | Description |
199+
|-----------|------|----------|---------|-----|--------------|---------|-------------|
200+
| `apps` | Array<Object> | no | - | - | `PARSE_DASHBOARD_CONFIG` | `[{...}]` | Array of apps to manage. |
201+
| `users` | Array<Object> | yes | - | - | - | `[{...}]` | User accounts for authentication. See [users table below](#user-configuration). |
202+
| `useEncryptedPasswords` | Boolean | yes | `false` | - | - | `true` | Use bcrypt hashes instead of plain text passwords. |
203+
| `trustProxy` | Boolean \| Number | yes | `false` | `--trustProxy` | `PARSE_DASHBOARD_TRUST_PROXY` | `1` | Trust X-Forwarded-* headers when behind proxy. |
204+
| `iconsFolder` | String | yes | - | - | - | `"icons"` | Folder for app icons (relative or absolute path). |
205+
| `agent` | Object | yes | - | - | `PARSE_DASHBOARD_AGENT` (JSON) | `{...}` | AI agent config. See [agent table below](#ai-agent-configuration). |
206+
| `enableResourceCache` | Boolean | yes | `false` | - | - | `true` | Enable browser caching of dashboard resources. |
207+
208+
##### User Configuration (`users[]`)
209+
210+
| Parameter | Type | Optional | Default | CLI | Env Variable | Example | Description |
211+
|-----------|------|----------|---------|-----|--------------|---------|-------------|
212+
| `user` | String | no | - | `--userId` | `PARSE_DASHBOARD_USER_ID` | `"admin"` | Username for authentication. |
213+
| `pass` | String | no | - | `--userPassword` | `PARSE_DASHBOARD_USER_PASSWORD` | `"pass"` | Password (plain or bcrypt hash). |
214+
| `mfa` | String | yes | - | - | - | `"JBSWY3DPEHPK3PXP"` | MFA secret for TOTP. |
215+
| `mfaAlgorithm` | String | yes | `"SHA1"` | - | - | `"SHA256"` | TOTP algorithm for MFA. |
216+
| `mfaDigits` | Number | yes | `6` | - | - | `8` | Number of digits in MFA code. |
217+
| `mfaPeriod` | Number | yes | `30` | - | - | `60` | MFA code validity period in seconds. |
218+
| `readOnly` | Boolean | yes | `false` | - | - | `true` | Read-only access to all their apps. |
219+
| `apps` | Array<Object> | yes | - | - | - | `[{...}]` | Apps user can access (all if omitted). |
220+
| `apps[].appId` | String | no | - | - | - | `"myAppId"` | App ID user can access. |
221+
| `apps[].readOnly` | Boolean | yes | `false` | - | - | `true` | Read-only access to this specific app. |
222+
223+
##### AI Agent Configuration (`agent`)
224+
225+
| Parameter | Type | Optional | Example | Description |
226+
|-----------|------|----------|---------|-------------|
227+
| `models` | Array<Object> | no | `[{...}]` | Array of AI model configurations. |
228+
| `models[].name` | String | no | `"ChatGPT 4.1"` | Display name for AI model. |
229+
| `models[].provider` | String | no | `"openai"` | AI provider (currently only `"openai"`). |
230+
| `models[].model` | String | no | `"gpt-4.1"` | Model name from provider. |
231+
| `models[].apiKey` | String | no | `"sk-..."` | API key for authentication. |
232+
233+
#### CLI & Server Options
234+
235+
| Parameter | Type | Optional | Default | CLI | Env Variable | Example | Description |
236+
|-----------|------|----------|---------|-----|--------------|---------|-------------|
237+
| `host` | String | yes | `"0.0.0.0"` | `--host` | `HOST` | `"127.0.0.1"` | Host address to bind server. |
238+
| `port` | Number | yes | `4040` | `--port` | `PORT` | `8080` | Port for dashboard server. |
239+
| `mountPath` | String | yes | `"/"` | `--mountPath` | `MOUNT_PATH` | `"/dashboard"` | Mount path for application. |
240+
| `allowInsecureHTTP` | Boolean | yes | `false` | `--allowInsecureHTTP` | `PARSE_DASHBOARD_ALLOW_INSECURE_HTTP` | `true` | Allow HTTP (use behind HTTPS proxy). |
241+
| `sslKey` | String | yes | - | `--sslKey` | `PARSE_DASHBOARD_SSL_KEY` | `"/path/key"` | Path to SSL private key for HTTPS. |
242+
| `sslCert` | String | yes | - | `--sslCert` | `PARSE_DASHBOARD_SSL_CERT` | `"/path/cert"` | Path to SSL certificate for HTTPS. |
243+
| `cookieSessionSecret` | String | yes | Random | `--cookieSessionSecret` | `PARSE_DASHBOARD_COOKIE_SESSION_SECRET` | `"secret"` | Secret for session cookies (for multi-server). |
244+
| `cookieSessionMaxAge` | Number | yes | Session-only | `--cookieSessionMaxAge` | `PARSE_DASHBOARD_COOKIE_SESSION_MAX_AGE` | `3600` | Session cookie expiration (seconds). |
245+
| `dev` | Boolean | yes | `false` | `--dev` | - | - | Development mode (**DO NOT use in production**). |
246+
| `config` | String | yes | - | `--config` | - | `"config.json"` | Path to JSON configuration file. |
247+
248+
#### Helper CLI Commands
249+
250+
| Command | Description |
251+
|---------|-------------|
252+
| `--createUser` | Interactive tool to generate secure user passwords and MFA secrets. |
253+
| `--createMFA` | Interactive tool to generate MFA secrets for existing users. |
170254
### File
171255

172256
You can also start the dashboard from the command line with a config file. To do this, create a new file called `parse-dashboard-config.json` inside your local Parse Dashboard directory hierarchy. The file should match the following format:

0 commit comments

Comments
 (0)