@luckystack/server 0.5.0 → 0.5.1
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 +56 -56
- package/package.json +10 -10
package/CHANGELOG.md
CHANGED
|
@@ -1,56 +1,56 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
All notable changes to `@luckystack/server` are documented in this file.
|
|
4
|
-
|
|
5
|
-
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
|
-
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
-
|
|
8
|
-
## [Unreleased]
|
|
9
|
-
|
|
10
|
-
## [0.5.0] - 2026-07-11
|
|
11
|
-
|
|
12
|
-
### Added
|
|
13
|
-
|
|
14
|
-
- `OVERLAY_ORDER` exported (consumed by the consumer's `bundleServer.mjs` at
|
|
15
|
-
build time — kills the hardcoded-copy drift that silently dropped overlay
|
|
16
|
-
slots from prod bundles). New `cron` overlay slot + `@luckystack/cron` in
|
|
17
|
-
`OPTIONAL_PACKAGES` (boot auto-wiring).
|
|
18
|
-
- `/readyz` database check is pluggable (core `registerDbHealthCheck`):
|
|
19
|
-
registered probe → built-in Prisma ping (when Prisma is present) →
|
|
20
|
-
`'skipped'` for deliberately DB-less projects. Response gains the
|
|
21
|
-
tri-state `checks.database`; `checks.prisma` kept for compatibility.
|
|
22
|
-
|
|
23
|
-
### Changed
|
|
24
|
-
|
|
25
|
-
- Overlay files that fail to import abort boot with an actionable error
|
|
26
|
-
naming the file (was: raw ERR_MODULE_NOT_FOUND).
|
|
27
|
-
- Dev SIGINT/SIGTERM dispatches `preServerStop` (2s cap) before exiting so
|
|
28
|
-
subscribers (e.g. the cron leader lease) release cleanly.
|
|
29
|
-
- `@prisma/client` peer dependency is now optional (ADR 0020).
|
|
30
|
-
|
|
31
|
-
## [0.1.5]
|
|
32
|
-
|
|
33
|
-
### Changed
|
|
34
|
-
|
|
35
|
-
- **OAuth post-login redirect no longer reads the `DNS` env var.** `authCallbackRoute`
|
|
36
|
-
now redirects to `projectConfig.app.publicUrl` (the public origin where users
|
|
37
|
-
browse) after a callback, instead of `process.env.DNS || app.publicUrl`. The
|
|
38
|
-
callback is handled on the backend origin but must send the browser back to the
|
|
39
|
-
public origin. Set `app.publicUrl` in your `config.ts` (the scaffold does this).
|
|
40
|
-
|
|
41
|
-
### Fixed
|
|
42
|
-
|
|
43
|
-
- **CSRF no longer blocks credentials login/register when a session cookie already
|
|
44
|
-
exists.** `POST /auth/api/credentials` is the session bootstrap, so requiring a
|
|
45
|
-
pre-existing session's CSRF token to authenticate is circular and broke
|
|
46
|
-
legitimate same-site re-login/register (403 `auth.csrfMismatch`). That endpoint
|
|
47
|
-
is now exempt from CSRF enforcement. This removes no real protection: the session
|
|
48
|
-
cookie is `SameSite=Strict`, so a cross-site POST never carries it and the guard
|
|
49
|
-
wouldn't have fired anyway. All other `/auth/api/*`, `/api/*`, and `/sync/*`
|
|
50
|
-
state-changing routes remain protected.
|
|
51
|
-
|
|
52
|
-
## [0.1.0]
|
|
53
|
-
|
|
54
|
-
### Added
|
|
55
|
-
|
|
56
|
-
- Initial public release as part of the LuckyStack package split.
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to `@luckystack/server` are documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
## [0.5.0] - 2026-07-11
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- `OVERLAY_ORDER` exported (consumed by the consumer's `bundleServer.mjs` at
|
|
15
|
+
build time — kills the hardcoded-copy drift that silently dropped overlay
|
|
16
|
+
slots from prod bundles). New `cron` overlay slot + `@luckystack/cron` in
|
|
17
|
+
`OPTIONAL_PACKAGES` (boot auto-wiring).
|
|
18
|
+
- `/readyz` database check is pluggable (core `registerDbHealthCheck`):
|
|
19
|
+
registered probe → built-in Prisma ping (when Prisma is present) →
|
|
20
|
+
`'skipped'` for deliberately DB-less projects. Response gains the
|
|
21
|
+
tri-state `checks.database`; `checks.prisma` kept for compatibility.
|
|
22
|
+
|
|
23
|
+
### Changed
|
|
24
|
+
|
|
25
|
+
- Overlay files that fail to import abort boot with an actionable error
|
|
26
|
+
naming the file (was: raw ERR_MODULE_NOT_FOUND).
|
|
27
|
+
- Dev SIGINT/SIGTERM dispatches `preServerStop` (2s cap) before exiting so
|
|
28
|
+
subscribers (e.g. the cron leader lease) release cleanly.
|
|
29
|
+
- `@prisma/client` peer dependency is now optional (ADR 0020).
|
|
30
|
+
|
|
31
|
+
## [0.1.5]
|
|
32
|
+
|
|
33
|
+
### Changed
|
|
34
|
+
|
|
35
|
+
- **OAuth post-login redirect no longer reads the `DNS` env var.** `authCallbackRoute`
|
|
36
|
+
now redirects to `projectConfig.app.publicUrl` (the public origin where users
|
|
37
|
+
browse) after a callback, instead of `process.env.DNS || app.publicUrl`. The
|
|
38
|
+
callback is handled on the backend origin but must send the browser back to the
|
|
39
|
+
public origin. Set `app.publicUrl` in your `config.ts` (the scaffold does this).
|
|
40
|
+
|
|
41
|
+
### Fixed
|
|
42
|
+
|
|
43
|
+
- **CSRF no longer blocks credentials login/register when a session cookie already
|
|
44
|
+
exists.** `POST /auth/api/credentials` is the session bootstrap, so requiring a
|
|
45
|
+
pre-existing session's CSRF token to authenticate is circular and broke
|
|
46
|
+
legitimate same-site re-login/register (403 `auth.csrfMismatch`). That endpoint
|
|
47
|
+
is now exempt from CSRF enforcement. This removes no real protection: the session
|
|
48
|
+
cookie is `SameSite=Strict`, so a cross-site POST never carries it and the guard
|
|
49
|
+
wouldn't have fired anyway. All other `/auth/api/*`, `/api/*`, and `/sync/*`
|
|
50
|
+
state-changing routes remain protected.
|
|
51
|
+
|
|
52
|
+
## [0.1.0]
|
|
53
|
+
|
|
54
|
+
### Added
|
|
55
|
+
|
|
56
|
+
- Initial public release as part of the LuckyStack package split.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@luckystack/server",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public",
|
|
@@ -57,19 +57,19 @@
|
|
|
57
57
|
"test": "vitest run"
|
|
58
58
|
},
|
|
59
59
|
"dependencies": {
|
|
60
|
-
"@luckystack/api": "^0.5.
|
|
61
|
-
"@luckystack/core": "^0.5.
|
|
60
|
+
"@luckystack/api": "^0.5.1",
|
|
61
|
+
"@luckystack/core": "^0.5.1"
|
|
62
62
|
},
|
|
63
63
|
"peerDependencies": {
|
|
64
64
|
"@prisma/client": "^6.19.0",
|
|
65
65
|
"socket.io": "^4.8.0",
|
|
66
|
-
"@luckystack/devkit": "^0.5.
|
|
67
|
-
"@luckystack/docs-ui": "^0.5.
|
|
68
|
-
"@luckystack/email": "^0.5.
|
|
69
|
-
"@luckystack/error-tracking": "^0.5.
|
|
70
|
-
"@luckystack/login": "^0.5.
|
|
71
|
-
"@luckystack/presence": "^0.5.
|
|
72
|
-
"@luckystack/sync": "^0.5.
|
|
66
|
+
"@luckystack/devkit": "^0.5.1",
|
|
67
|
+
"@luckystack/docs-ui": "^0.5.1",
|
|
68
|
+
"@luckystack/email": "^0.5.1",
|
|
69
|
+
"@luckystack/error-tracking": "^0.5.1",
|
|
70
|
+
"@luckystack/login": "^0.5.1",
|
|
71
|
+
"@luckystack/presence": "^0.5.1",
|
|
72
|
+
"@luckystack/sync": "^0.5.1"
|
|
73
73
|
},
|
|
74
74
|
"peerDependenciesMeta": {
|
|
75
75
|
"@prisma/client": {
|