create-volt 0.12.0 → 0.14.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/CHANGELOG.md +32 -0
- package/README.md +10 -0
- package/package.json +1 -1
- package/templates/default/package.json +2 -2
- package/templates/default/server.js +1 -1
- package/templates/guestbook/package.json +5 -5
- package/templates/starter/package.json +2 -2
- package/templates/starter/public/app.js +0 -1
- package/templates/starter/server.js +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,36 @@ All notable changes to `create-volt` are documented here. The format follows
|
|
|
4
4
|
[Keep a Changelog](https://keepachangelog.com/), and this project adheres to
|
|
5
5
|
[Semantic Versioning](https://semver.org/).
|
|
6
6
|
|
|
7
|
+
## [0.14.0] - 2026-06-28
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
- **Adopted the most-secure admin model: ephemeral, shell-only.** Removed the
|
|
11
|
+
persistent role-gated `admin` add-on (from 0.13.0). There is now **no web
|
|
12
|
+
admin** anywhere — the data browser is the ephemeral, localhost-only
|
|
13
|
+
`--studio`, and config is `--edit`; both are shell/SSH-gated. SECURITY.md
|
|
14
|
+
updated to state this as a core property.
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
- Dependency auto-update: `scripts/update-deps.mjs` + a weekly GitHub Action
|
|
18
|
+
bump create-volt's pinned dependency floors to the latest **within the current
|
|
19
|
+
major** (never a breaking major). Repo-only — scaffolded apps are untouched.
|
|
20
|
+
- Refreshed floors: express ^4.22.2, socket.io ^4.8.3, mongodb ^6.21.0,
|
|
21
|
+
mysql2 ^3.22.5, pg ^8.22.0, nodemailer ^6.10.1.
|
|
22
|
+
|
|
23
|
+
## [0.13.0] - 2026-06-28
|
|
24
|
+
|
|
25
|
+
### Added
|
|
26
|
+
- Opt-in **`admin`** add-on: a persistent, role-gated web admin (data browser)
|
|
27
|
+
for browser-only admins. Gated by auth **and** an `ADMIN_EMAILS` allowlist;
|
|
28
|
+
the panel is hidden for non-admins and `/admin/api/*` returns 403. Internal
|
|
29
|
+
collections (auth tokens/sessions) hidden. Wired into the default + starter
|
|
30
|
+
templates and the setup wizard (ADMIN_EMAILS field).
|
|
31
|
+
- `SECURITY.md` documenting the ephemeral-admin model and secure defaults.
|
|
32
|
+
|
|
33
|
+
### Note
|
|
34
|
+
- Prefer the ephemeral `--studio` (shell-gated) for admins with server access;
|
|
35
|
+
the `admin` add-on is the explicit standing-surface opt-in for non-shell admins.
|
|
36
|
+
|
|
7
37
|
## [0.12.0] - 2026-06-28
|
|
8
38
|
|
|
9
39
|
### Added
|
|
@@ -173,6 +203,8 @@ All notable changes to `create-volt` are documented here. The format follows
|
|
|
173
203
|
watching and full-page hot reload. Supports `--skip-install` and `--force`,
|
|
174
204
|
and auto-detects npm / pnpm / yarn / bun for the install step.
|
|
175
205
|
|
|
206
|
+
[0.14.0]: https://github.com/MIR-2025/volt/releases/tag/v0.14.0
|
|
207
|
+
[0.13.0]: https://github.com/MIR-2025/volt/releases/tag/v0.13.0
|
|
176
208
|
[0.12.0]: https://github.com/MIR-2025/volt/releases/tag/v0.12.0
|
|
177
209
|
[0.11.0]: https://github.com/MIR-2025/volt/releases/tag/v0.11.0
|
|
178
210
|
[0.10.0]: https://github.com/MIR-2025/volt/releases/tag/v0.10.0
|
package/README.md
CHANGED
|
@@ -80,6 +80,16 @@ driver, and is **never** a route in the running app (no standing `/admin` to
|
|
|
80
80
|
attack — shell/SSH access is the gate). Needs a persistent driver (MongoDB /
|
|
81
81
|
MySQL / Postgres) to show data; the memory driver is per-process.
|
|
82
82
|
|
|
83
|
+
## Security & admin model
|
|
84
|
+
|
|
85
|
+
Volt is secure by default, and deliberately has **no web admin** — nothing like
|
|
86
|
+
`/wp-admin` anywhere. The config wizard (`--edit`) and data browser (`--studio`)
|
|
87
|
+
are ephemeral, localhost-only processes; **shell/SSH access is the auth**.
|
|
88
|
+
Several admins? Give each an SSH key — stronger than a shared web panel, with
|
|
89
|
+
nothing public to attack. Plus: escaping by default (no XSS), server-side
|
|
90
|
+
validation + caps, security headers, and `HttpOnly`+`SameSite` cookies. See
|
|
91
|
+
[SECURITY.md](https://github.com/MIR-2025/volt/blob/main/SECURITY.md).
|
|
92
|
+
|
|
83
93
|
## Updating Volt
|
|
84
94
|
|
|
85
95
|
Volt is vendored as a single file (`public/volt.js`), not an npm dependency.
|
package/package.json
CHANGED
|
@@ -21,7 +21,7 @@ const ENV_PATH = path.join(__dirname, ".env");
|
|
|
21
21
|
const PKG_PATH = path.join(__dirname, "package.json");
|
|
22
22
|
const ADDONS_DIR = path.join(__dirname, ".volt", "addons"); // bundled add-on sources
|
|
23
23
|
const DEFAULT_PORT = 26628; // create-volt stamps this with the project's date-port
|
|
24
|
-
const PKG_VERSIONS = { mongodb: "^6.
|
|
24
|
+
const PKG_VERSIONS = { mongodb: "^6.21.0", mysql2: "^3.22.5", pg: "^8.22.0", nodemailer: "^6.10.1" };
|
|
25
25
|
const LIB_FILE = { db: "store.js", mailer: "mailer.js", auth: "auth.js", realtime: "realtime.js" };
|
|
26
26
|
|
|
27
27
|
// --- tiny .env loader (no dependency); never overrides an existing env var ---
|
|
@@ -10,12 +10,12 @@
|
|
|
10
10
|
"dev": "node server.js"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"express": "^4.
|
|
14
|
-
"socket.io": "^4.
|
|
13
|
+
"express": "^4.22.2",
|
|
14
|
+
"socket.io": "^4.8.3"
|
|
15
15
|
},
|
|
16
16
|
"optionalDependencies": {
|
|
17
|
-
"mongodb": "^6.
|
|
18
|
-
"mysql2": "^3.
|
|
19
|
-
"pg": "^8.
|
|
17
|
+
"mongodb": "^6.21.0",
|
|
18
|
+
"mysql2": "^3.22.5",
|
|
19
|
+
"pg": "^8.22.0"
|
|
20
20
|
}
|
|
21
21
|
}
|
|
@@ -22,7 +22,7 @@ const ENV_PATH = path.join(__dirname, ".env");
|
|
|
22
22
|
const PKG_PATH = path.join(__dirname, "package.json");
|
|
23
23
|
const ADDONS_DIR = path.join(__dirname, ".volt", "addons"); // bundled add-on sources
|
|
24
24
|
const DEFAULT_PORT = 26628; // create-volt stamps this with the project's date-port
|
|
25
|
-
const PKG_VERSIONS = { mongodb: "^6.
|
|
25
|
+
const PKG_VERSIONS = { mongodb: "^6.21.0", mysql2: "^3.22.5", pg: "^8.22.0", nodemailer: "^6.10.1" };
|
|
26
26
|
const LIB_FILE = { db: "store.js", mailer: "mailer.js", auth: "auth.js", realtime: "realtime.js" };
|
|
27
27
|
|
|
28
28
|
// --- tiny .env loader (no dependency); never overrides an existing env var ---
|