sporades 0.9.39 โ 0.9.41
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/CHANGES.md +88 -0
- package/Dockerfile.base +5 -5
- package/README.md +6 -0
- package/bin/sporades-host-helper.js +5 -3
- package/bin/sporades.js +436 -150
- package/dist/access-keys-runtime.d.ts.map +1 -1
- package/dist/access-keys-runtime.js +5 -2
- package/dist/access-keys-runtime.js.map +1 -1
- package/dist/auth-admission.d.ts.map +1 -1
- package/dist/auth-admission.js +3 -0
- package/dist/auth-admission.js.map +1 -1
- package/dist/auth-runtime.d.ts +10 -7
- package/dist/auth-runtime.d.ts.map +1 -1
- package/dist/auth-runtime.js +150 -28
- package/dist/auth-runtime.js.map +1 -1
- package/dist/base-image.js +2 -2
- package/dist/cli/access-key-operator-envelope.js +1 -1
- package/dist/cli/access-key-operator-envelope.js.map +1 -1
- package/dist/cli/cli-version.d.ts +1 -1
- package/dist/cli/cli-version.js +1 -1
- package/dist/database-runtime.d.ts.map +1 -1
- package/dist/database-runtime.js +23 -3
- package/dist/database-runtime.js.map +1 -1
- package/dist/endpoint-file-response.d.ts +2 -0
- package/dist/endpoint-file-response.d.ts.map +1 -1
- package/dist/endpoint-file-response.js +5 -0
- package/dist/endpoint-file-response.js.map +1 -1
- package/dist/endpoint-session.d.ts +3 -0
- package/dist/endpoint-session.d.ts.map +1 -0
- package/dist/endpoint-session.js +15 -0
- package/dist/endpoint-session.js.map +1 -0
- package/dist/generated-source-manifest.json +7 -6
- package/dist/observability-runtime.d.ts +1 -2
- package/dist/observability-runtime.d.ts.map +1 -1
- package/dist/observability-runtime.js +65 -43
- package/dist/observability-runtime.js.map +1 -1
- package/dist/server-runtime-source.d.ts +4 -1
- package/dist/server-runtime-source.d.ts.map +1 -1
- package/dist/server-runtime-source.js +161 -75
- package/dist/server-runtime-source.js.map +1 -1
- package/dist/server.d.ts +11 -3
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +13 -0
- package/dist/server.js.map +1 -1
- package/dist/teams-runtime.d.ts.map +1 -1
- package/dist/teams-runtime.js +30 -0
- package/dist/teams-runtime.js.map +1 -1
- package/dist/templates/client-runtime-template.d.ts.map +1 -1
- package/dist/templates/client-runtime-template.js +17 -1
- package/dist/templates/client-runtime-template.js.map +1 -1
- package/dist/templates/server-bundle-module-graph.js +1 -1
- package/dist/templates/server-bundle-module-graph.js.map +1 -1
- package/package.json +4 -4
- package/src/types/client.d.ts +19 -4
- package/src/types/observability.d.ts +12 -2
- package/src/types/server.d.ts +51 -5
- package/dist/stored-row-decoding.d.ts +0 -7
- package/dist/stored-row-decoding.d.ts.map +0 -1
- package/dist/stored-row-decoding.js +0 -69
- package/dist/stored-row-decoding.js.map +0 -1
package/CHANGES.md
CHANGED
|
@@ -1,5 +1,51 @@
|
|
|
1
1
|
# Changes
|
|
2
2
|
|
|
3
|
+
## v0.9.41 - 2026-10-24
|
|
4
|
+
|
|
5
|
+
Changes since v0.9.40.
|
|
6
|
+
|
|
7
|
+
### ๐ Features
|
|
8
|
+
|
|
9
|
+
- Allow any script version (4a43c515).
|
|
10
|
+
- Add Capsule implicitMutations opt-out for the implicit table mutation surface (#304) (9692d63e).
|
|
11
|
+
- Add explicitly sessionless public endpoints (#308) (1b367744).
|
|
12
|
+
- Add atomic Capsule admission for additional Team creation (#305) (d74d7999).
|
|
13
|
+
|
|
14
|
+
### ๐ Bug Fixes
|
|
15
|
+
|
|
16
|
+
- Prevent account-wide sign-in lockout with bounded verification (#299) (b73dc192).
|
|
17
|
+
|
|
18
|
+
### ๐ง Improvements
|
|
19
|
+
|
|
20
|
+
- Regenerate dist and bin [skip ci] (271b05d2).
|
|
21
|
+
- Regenerate dist and bin [skip ci] (9c3e3204).
|
|
22
|
+
|
|
23
|
+
### ๐ Documentation
|
|
24
|
+
|
|
25
|
+
- Build dist and bin on main with local CI (#314) (3f555768).
|
|
26
|
+
- Remove the runtime-owned ctx.env browser query (#289) (#301) (cde2b5cf).
|
|
27
|
+
- Reject email signup from linked identities (#300) (e6348a83).
|
|
28
|
+
- Make the full test suite pass in office worktrees (#309) (23d1663d).
|
|
29
|
+
- Expose shared rate limits during Capsule File ingress admission (#307) (2f57e950).
|
|
30
|
+
- Revoke all account authority atomically on a browser password change (#302) (32962832).
|
|
31
|
+
- Isolate public collection budgets from server error delivery (#303) (c1956ad0).
|
|
32
|
+
|
|
33
|
+
### ๐งช Tests
|
|
34
|
+
|
|
35
|
+
- Wait for exported durable Job metrics (#311) (48951c93).
|
|
36
|
+
|
|
37
|
+
## v0.9.40 - 2026-10-23
|
|
38
|
+
|
|
39
|
+
Changes since v0.9.39.
|
|
40
|
+
|
|
41
|
+
### ๐ Documentation
|
|
42
|
+
|
|
43
|
+
- Upgrade Capsule base to Node 24 LTS and normalize npm pack JSON (#288) (8f5ecc5b).
|
|
44
|
+
|
|
45
|
+
### ๐งช Tests
|
|
46
|
+
|
|
47
|
+
- Describe SQLite inspection columns without StatementSync#columns() (#287) (9b29b3d5).
|
|
48
|
+
|
|
3
49
|
## v0.9.39 - 2026-10-22
|
|
4
50
|
|
|
5
51
|
Changes since v0.9.38.
|
|
@@ -10,8 +56,40 @@ Changes since v0.9.38.
|
|
|
10
56
|
|
|
11
57
|
## Unreleased
|
|
12
58
|
|
|
59
|
+
### ๐ Security
|
|
60
|
+
|
|
61
|
+
- Remove the runtime-owned `ctx.env` browser query (#289). Query clients,
|
|
62
|
+
including Anonymous Sessions, could subscribe to the undeclared `ctx.env`
|
|
63
|
+
name and receive the entire server environment. That name now follows the
|
|
64
|
+
ordinary unknown-query response and returns no environment data, while
|
|
65
|
+
`ctx.env` stays available to trusted server handlers. A Capsule that declares
|
|
66
|
+
its own query with that name keeps the normal declared-query contract.
|
|
67
|
+
|
|
68
|
+
### ๐ฆ Packaging
|
|
69
|
+
|
|
70
|
+
- Upgrade the default Capsule Base image to `0.3.0-node24-alpine`, using Node
|
|
71
|
+
24.22.1 LTS on Alpine 3.23 with a pinned upstream image digest. Upgrade the CLI
|
|
72
|
+
and Host helper and redeploy to replace existing containers; restarting a
|
|
73
|
+
release preserves its pinned image. Keep explicit image overrides unchanged.
|
|
74
|
+
- Normalize npm pack JSON metadata across flat and package-keyed formats in
|
|
75
|
+
release verification and packaged compatibility checks, preserving artifact
|
|
76
|
+
hashes and rejecting ambiguous output.
|
|
77
|
+
|
|
13
78
|
### ๐ Features
|
|
14
79
|
|
|
80
|
+
- Let Capsules opt out of implicit table mutations (#292). Declaring
|
|
81
|
+
`implicitMutations: false` bounds the mutation surface to explicitly declared
|
|
82
|
+
names: every undeclared name answers the ordinary unknown-mutation refusal
|
|
83
|
+
before context middleware, any fallback write, mutation hooks, or success
|
|
84
|
+
effects such as the deferred query rebroadcast. Omitting the flag or passing
|
|
85
|
+
`true` keeps 0.9.x behavior, where undeclared names that describe a table
|
|
86
|
+
(`addNote`, `updateNoteText`) insert or update rows under their fallback
|
|
87
|
+
semantics. Declared mutations, server `ctx.db`, implicit table queries and
|
|
88
|
+
table ACLs keep their behavior, and a bundled declared mutation matching the
|
|
89
|
+
generated scaffold `addโฆ` body stops riding the implicit path while the
|
|
90
|
+
surface is retired. Present non-boolean values are rejected at authoring and
|
|
91
|
+
at Capsule startup (`INVALID_IMPLICIT_MUTATIONS`). The flag is not business
|
|
92
|
+
quota enforcement; declare checks in mutations, ACL rules, or hooks.
|
|
15
93
|
- Add read-only `sporades host db list|dump|query` for running Hosted Capsules (#285).
|
|
16
94
|
It runs the Host helper over the operator's existing SSH access and the
|
|
17
95
|
generated Bundle's one-shot action seam, opens the Capsule SQLite file
|
|
@@ -21,6 +99,16 @@ Changes since v0.9.38.
|
|
|
21
99
|
defaults to the project's Host binding. Requires `sporades host upgrade` and
|
|
22
100
|
a redeploy with this CLI; no public route is added.
|
|
23
101
|
|
|
102
|
+
### ๐ Bug Fixes
|
|
103
|
+
|
|
104
|
+
- Fix `sporades host db query` failing with "columns is not a function" on
|
|
105
|
+
Hosted Capsules. The previous Base image ran Node 22.14, whose `node:sqlite` lacks
|
|
106
|
+
`StatementSync#columns()` (added in 22.16). SQLite inspection queries now
|
|
107
|
+
describe their columns without it, including zero-row results, so Hosted,
|
|
108
|
+
Dev and MCP ops queries on Node 22.13โ22.15 return the same
|
|
109
|
+
`{ ok, data: { columns, rows }, error }` envelope. Requires a redeploy with
|
|
110
|
+
this CLI.
|
|
111
|
+
|
|
24
112
|
## v0.9.38 - 2026-10-22
|
|
25
113
|
|
|
26
114
|
Changes since v0.9.37.
|
package/Dockerfile.base
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
FROM node:22.
|
|
1
|
+
FROM node:24.22.1-alpine3.23@sha256:0468540aa58203ff9e40c2aab3907c52644ab818af6176b1c70a026137dc92a2
|
|
2
2
|
|
|
3
3
|
LABEL org.opencontainers.image.title="Sporades Base Image"
|
|
4
|
-
LABEL org.opencontainers.image.description="Thin Node
|
|
5
|
-
LABEL org.opencontainers.image.version="0.
|
|
4
|
+
LABEL org.opencontainers.image.description="Thin Node 24 LTS Base image for Sporades Container sessions and Hosted Capsules"
|
|
5
|
+
LABEL org.opencontainers.image.version="0.3.0-node24-alpine"
|
|
6
6
|
LABEL org.opencontainers.image.source="https://github.com/sporades/sporades"
|
|
7
7
|
LABEL com.sporades.base-image.name="sporades-base"
|
|
8
|
-
LABEL com.sporades.base-image.version="0.
|
|
9
|
-
LABEL com.sporades.base-image.node="
|
|
8
|
+
LABEL com.sporades.base-image.version="0.3.0-node24-alpine"
|
|
9
|
+
LABEL com.sporades.base-image.node="24"
|
|
10
10
|
|
|
11
11
|
RUN apk add --no-cache openssh-server fail2ban clamav clamav-daemon \
|
|
12
12
|
&& addgroup -g 10001 -S sporades \
|
package/README.md
CHANGED
|
@@ -360,6 +360,12 @@ Capsules through authorized public keys in `sporades.json`. Normal management
|
|
|
360
360
|
remains the CLI and Host helper surfaces; SSH is a compatibility and emergency
|
|
361
361
|
access path.
|
|
362
362
|
|
|
363
|
+
## Contributing
|
|
364
|
+
|
|
365
|
+
Run a local build and tests, but never commit `dist/` or `bin/` in a PR. CI
|
|
366
|
+
regenerates their tracked copies on main after merge. See the
|
|
367
|
+
[generated artifacts workflow](https://github.com/mgscox/sporades/blob/main/docs/agents/generated-artifacts.md).
|
|
368
|
+
|
|
363
369
|
## License
|
|
364
370
|
|
|
365
371
|
MIT
|
|
@@ -256,8 +256,8 @@ var init_base_image = __esm({
|
|
|
256
256
|
"use strict";
|
|
257
257
|
SPORADES_BASE_IMAGE = {
|
|
258
258
|
name: "sporades-base",
|
|
259
|
-
image: "ghcr.io/sporades/sporades-base:0.
|
|
260
|
-
version: "0.
|
|
259
|
+
image: "ghcr.io/sporades/sporades-base:0.3.0-node24-alpine",
|
|
260
|
+
version: "0.3.0-node24-alpine",
|
|
261
261
|
runtimeUser: "sporades",
|
|
262
262
|
runtimeUid: 10001,
|
|
263
263
|
runtimeGid: 10001,
|
|
@@ -45813,6 +45813,7 @@ var clamavRefreshTimeoutMs = 5 * 60 * 1e3;
|
|
|
45813
45813
|
// src/auth-runtime.ts
|
|
45814
45814
|
var nodeCryptoModule3 = process.getBuiltinModule("node:crypto");
|
|
45815
45815
|
var EMAIL_SIGN_IN_THROTTLE_WINDOW_MS = 15 * 60 * 1e3;
|
|
45816
|
+
var EMAIL_SIGN_IN_VERIFICATION_WINDOW_MS = 60 * 1e3;
|
|
45816
45817
|
var PASSWORD_RESET_DEFAULT_TTL_MS = 60 * 60 * 1e3;
|
|
45817
45818
|
var PASSWORD_RESET_MIN_TTL_MS = 5 * 60 * 1e3;
|
|
45818
45819
|
var PASSWORD_RESET_MAX_TTL_MS = 24 * 60 * 60 * 1e3;
|
|
@@ -45931,6 +45932,7 @@ var REVOCATION_CAUSES = /* @__PURE__ */ new Set([
|
|
|
45931
45932
|
"owner",
|
|
45932
45933
|
"operator",
|
|
45933
45934
|
"password-reset",
|
|
45935
|
+
"password-change",
|
|
45934
45936
|
"owner-unlinked",
|
|
45935
45937
|
"owner-deleted",
|
|
45936
45938
|
"service-user-administrator",
|
|
@@ -46183,7 +46185,7 @@ var mutationExecution = new MutationExecutionStorage();
|
|
|
46183
46185
|
init_cli_support();
|
|
46184
46186
|
|
|
46185
46187
|
// src/cli/cli-version.ts
|
|
46186
|
-
var CLI_VERSION = "0.9.
|
|
46188
|
+
var CLI_VERSION = "0.9.41";
|
|
46187
46189
|
|
|
46188
46190
|
// src/cli/schedule-inspection-envelope.ts
|
|
46189
46191
|
var SCHEDULE_DIAGNOSTIC_FIELDS = /* @__PURE__ */ new Set([
|