diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c3869b69e0..178e8c86e8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -108,6 +108,8 @@ jobs: NODE_VERSION: 20.18.0 - name: Node 22 NODE_VERSION: 22.12.0 + - name: Node 24 + NODE_VERSION: 24.0.0 fail-fast: false name: ${{ matrix.name }} timeout-minutes: 15 diff --git a/README.md b/README.md index d30bbb24ec..2fb91054e0 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ [![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) [![Snyk Badge](https://snyk.io/test/github/parse-community/parse-dashboard/badge.svg)](https://snyk.io/test/github/parse-community/parse-dashboard) -[![Node Version](https://img.shields.io/badge/nodejs-18,_20,_22-green.svg?logo=node.js&style=flat)](https://nodejs.org/) +[![Node Version](https://img.shields.io/badge/nodejs-18,_20,_22,_24-green.svg?logo=node.js&style=flat)](https://nodejs.org/) [![auto-release](https://img.shields.io/badge/%F0%9F%9A%80-auto--release-9e34eb.svg)](https://github.com/parse-community/parse-dashboard/releases) [![npm latest version](https://img.shields.io/npm/v/parse-dashboard/latest.svg)](https://www.npmjs.com/package/parse-dashboard) @@ -30,6 +30,14 @@ Parse Dashboard is a standalone dashboard for managing your [Parse Server](https - [Node.js](#nodejs) - [Configuring Parse Dashboard](#configuring-parse-dashboard) - [Options](#options) + - [Root Options](#root-options) + - [App Options](#app-options) + - [Column Options](#column-options) + - [Script Options](#script-options) + - [Info Panel Options](#info-panel-options) + - [User Options](#user-options) + - [CLI \& Server Options](#cli--server-options) + - [Helper CLI Commands](#helper-cli-commands) - [File](#file) - [Environment variables](#environment-variables) - [Multiple apps](#multiple-apps) @@ -51,7 +59,8 @@ Parse Dashboard is a standalone dashboard for managing your [Parse Server](https - [Security Checks](#security-checks) - [Configuring Basic Authentication](#configuring-basic-authentication) - [Multi-Factor Authentication (One-Time Password)](#multi-factor-authentication-one-time-password) - - [Separating App Access Based on User Identity](#separating-app-access-based-on-user-identity) + - [Running Multiple Dashboard Replicas](#running-multiple-dashboard-replicas) + - [Using a Custom Session Store](#using-a-custom-session-store) - [Use Read-Only masterKey](#use-read-only-masterkey) - [Making an app read-only for all users](#making-an-app-read-only-for-all-users) - [Makings users read-only](#makings-users-read-only) @@ -135,11 +144,12 @@ Parse Dashboard automatically checks the Parse Server version when connecting an ### Node.js Parse Dashboard is continuously tested with the most recent releases of Node.js to ensure compatibility. We follow the [Node.js Long Term Support plan](https://github.com/nodejs/Release) and only test against versions that are officially supported and have not reached their end-of-life date. -| Version | Latest Version | End-of-Life | Compatible | +| Version | Minimum version | End-of-Life | Compatible | |------------|----------------|-------------|------------| | Node.js 18 | 18.20.4 | May 2025 | ✅ Yes | | Node.js 20 | 20.18.0 | April 2026 | ✅ Yes | | Node.js 22 | 22.9.0 | April 2027 | ✅ Yes | +| Node.js 24 | 24.0.0 | April 2028 | ✅ Yes | ## Configuring Parse Dashboard @@ -147,12 +157,12 @@ Parse Dashboard is continuously tested with the most recent releases of Node.js 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. -#### Root Configuration Keys +#### Root Options | Key | Type | Required | Default | CLI | Env Variable | Example | Description | Links to Details | |-----|------|----------|---------|-----|--------------|---------|-------------|------------------| -| `apps` | Array<Object> | Yes | - | - | `PARSE_DASHBOARD_CONFIG` | `[{...}]` | Array of Parse Server apps to manage | [App Configuration](#app-configuration-apps-array) | -| `users` | Array<Object> | No | - | - | - | `[{...}]` | User accounts for dashboard authentication | [User Configuration](#user-configuration-users) | +| `apps` | Array<Object> | Yes | - | - | `PARSE_DASHBOARD_CONFIG` | `[{...}]` | Array of Parse Server apps to manage | [App Options](#app-options) | +| `users` | Array<Object> | No | - | - | - | `[{...}]` | User accounts for dashboard authentication | [User Configuration](#user-options) | | `useEncryptedPasswords` | Boolean | No | `false` | - | - | `true` | Use bcrypt hashes instead of plain text passwords | - | | `trustProxy` | Boolean \| Number | No | `false` | `--trustProxy` | `PARSE_DASHBOARD_TRUST_PROXY` | `1` | Trust X-Forwarded-* headers when behind proxy | - | | `iconsFolder` | String | No | - | - | - | `"icons"` | Folder for app icons (relative or absolute path) | - | @@ -160,7 +170,7 @@ This section provides a comprehensive reference for all Parse Dashboard configur | `enableResourceCache` | Boolean | No | `false` | - | - | `true` | Enable browser caching of dashboard resources | - | -##### App Configuration (`apps` array) +##### App Options | Parameter | Type | Optional | Default | CLI | Env Variable | Example | Description | | -------------------------- | ------------------- | -------- | --------- | -------------------- | ------------------------------------ | --------------------------------- | ------------------------------------------------------------------------------------------------------------ | @@ -193,7 +203,7 @@ This section provides a comprehensive reference for all Parse Dashboard configur | `scripts` | Array<Object> | yes | `[]` | - | - | `[{...}]` | Scripts for this app. See [scripts table below](#scripts). | | `infoPanel` | Array<Object> | yes | - | - | - | `[{...}]` | Info panel config. See [info panel table below](#info-panel). | -##### Column Preference Configuration (`apps[].columnPreference.[]`) +##### Column Options Each class in `columnPreference` can have an array of column configurations: @@ -204,7 +214,7 @@ Each class in `columnPreference` can have an array of column configurations: | `preventSort` | Boolean | yes | `false` | `true` | Prevent this column from being sortable. | | `filterSortToTop` | Boolean | yes | `false` | `true` | Sort this column to the top in filter popup. | -##### Scripts Configuration (`apps[].scripts[]`) +##### Script Options | Parameter | Type | Optional | Default | Example | Description | | --------------------------|--------------------------------------------|----------|---------|-----------------|---------------------------------------------------| @@ -215,7 +225,7 @@ Each class in `columnPreference` can have an array of column configurations: | `showConfirmationDialog` | Boolean | yes | `false` | `true` | Show confirmation dialog before execution. | | `confirmationDialogStyle` | String | yes | `info` | `critical` | Dialog style: `info` (blue) or `critical` (red). | -##### Info Panel Configuration (`apps[].infoPanel[]`) +##### Info Panel Options | Parameter | Type | Optional | Default | Example | Description | | --------------------|---------------------|----------|---------|--------------------|-----------------------------------------------| @@ -229,7 +239,7 @@ Each class in `columnPreference` can have an array of column configurations: | `prefetchAudio` | Boolean | yes | `true` | `false` | Whether to prefetch audio content. | -##### User Configuration (`users[]`) +##### User Options | Parameter | Type | Optional | Default | CLI | Env Variable | Example | Description | | ------------------|---------------------|----------|----------|------------------|---------------------------------|----------------------|----------------------------------------| diff --git a/package-lock.json b/package-lock.json index c1344b4f76..f08e64641f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -100,7 +100,7 @@ "yaml": "2.8.0" }, "engines": { - "node": ">=18.20.4 <19.0.0 || >=20.18.0 <21.0.0 || >=22.12.0 <23.0.0" + "node": ">=18.20.4 <19.0.0 || >=20.18.0 <21.0.0 || >=22.12.0 <23.0.0 || >=24.0.0 <25.0.0" } }, "node_modules/@actions/core": { diff --git a/package.json b/package.json index 88146e9678..84e9ab85e7 100644 --- a/package.json +++ b/package.json @@ -144,7 +144,7 @@ "parse-dashboard": "./bin/parse-dashboard" }, "engines": { - "node": ">=18.20.4 <19.0.0 || >=20.18.0 <21.0.0 || >=22.12.0 <23.0.0" + "node": ">=18.20.4 <19.0.0 || >=20.18.0 <21.0.0 || >=22.12.0 <23.0.0 || >=24.0.0 <25.0.0" }, "main": "Parse-Dashboard/app.js", "jest": {