@kya-os/checkpoint-nextjs 1.0.0 → 1.0.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.
Files changed (85) hide show
  1. package/CHANGELOG.md +95 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/adapt.js +0 -2
  4. package/dist/adapt.mjs +0 -2
  5. package/dist/api-client.js +38 -24
  6. package/dist/api-client.mjs +38 -24
  7. package/dist/api-middleware.js +48 -28
  8. package/dist/api-middleware.mjs +48 -28
  9. package/dist/create-middleware.d.mts +1 -1
  10. package/dist/create-middleware.d.ts +1 -1
  11. package/dist/create-middleware.js +0 -2
  12. package/dist/create-middleware.mjs +0 -2
  13. package/dist/edge/index.d.mts +1 -1
  14. package/dist/edge/index.d.ts +1 -1
  15. package/dist/edge/index.js +4 -6
  16. package/dist/edge/index.mjs +4 -6
  17. package/dist/edge-runtime-loader.js +0 -2
  18. package/dist/edge-runtime-loader.mjs +0 -2
  19. package/dist/edge-wasm-middleware.js +0 -2
  20. package/dist/edge-wasm-middleware.mjs +0 -2
  21. package/dist/index.d.mts +1 -1
  22. package/dist/index.d.ts +1 -1
  23. package/dist/index.js +53 -33
  24. package/dist/index.mjs +53 -33
  25. package/dist/middleware-edge.js +0 -2
  26. package/dist/middleware-edge.mjs +0 -2
  27. package/dist/middleware-node.js +0 -2
  28. package/dist/middleware-node.mjs +0 -2
  29. package/dist/middleware.d.mts +1 -1
  30. package/dist/middleware.d.ts +1 -1
  31. package/dist/middleware.js +0 -2
  32. package/dist/middleware.mjs +0 -2
  33. package/dist/nodejs-wasm-loader.js +0 -2
  34. package/dist/nodejs-wasm-loader.mjs +0 -2
  35. package/dist/policy.js +3 -5
  36. package/dist/policy.mjs +3 -5
  37. package/dist/session-tracker.js +1 -3
  38. package/dist/session-tracker.mjs +1 -3
  39. package/dist/signature-verifier.js +0 -2
  40. package/dist/signature-verifier.mjs +0 -2
  41. package/dist/translate.js +0 -2
  42. package/dist/translate.mjs +0 -2
  43. package/dist/{types-C-xCUNTr.d.mts → types-D9RQvPNy.d.mts} +1 -1
  44. package/dist/{types-C-xCUNTr.d.ts → types-D9RQvPNy.d.ts} +1 -1
  45. package/dist/wasm-middleware.js +0 -2
  46. package/dist/wasm-middleware.mjs +0 -2
  47. package/dist/wasm-setup.js +0 -2
  48. package/dist/wasm-setup.mjs +0 -2
  49. package/package.json +3 -3
  50. package/dist/adapt.js.map +0 -1
  51. package/dist/adapt.mjs.map +0 -1
  52. package/dist/api-client.js.map +0 -1
  53. package/dist/api-client.mjs.map +0 -1
  54. package/dist/api-middleware.js.map +0 -1
  55. package/dist/api-middleware.mjs.map +0 -1
  56. package/dist/create-middleware.js.map +0 -1
  57. package/dist/create-middleware.mjs.map +0 -1
  58. package/dist/edge/index.js.map +0 -1
  59. package/dist/edge/index.mjs.map +0 -1
  60. package/dist/edge-runtime-loader.js.map +0 -1
  61. package/dist/edge-runtime-loader.mjs.map +0 -1
  62. package/dist/edge-wasm-middleware.js.map +0 -1
  63. package/dist/edge-wasm-middleware.mjs.map +0 -1
  64. package/dist/index.js.map +0 -1
  65. package/dist/index.mjs.map +0 -1
  66. package/dist/middleware-edge.js.map +0 -1
  67. package/dist/middleware-edge.mjs.map +0 -1
  68. package/dist/middleware-node.js.map +0 -1
  69. package/dist/middleware-node.mjs.map +0 -1
  70. package/dist/middleware.js.map +0 -1
  71. package/dist/middleware.mjs.map +0 -1
  72. package/dist/nodejs-wasm-loader.js.map +0 -1
  73. package/dist/nodejs-wasm-loader.mjs.map +0 -1
  74. package/dist/policy.js.map +0 -1
  75. package/dist/policy.mjs.map +0 -1
  76. package/dist/session-tracker.js.map +0 -1
  77. package/dist/session-tracker.mjs.map +0 -1
  78. package/dist/signature-verifier.js.map +0 -1
  79. package/dist/signature-verifier.mjs.map +0 -1
  80. package/dist/translate.js.map +0 -1
  81. package/dist/translate.mjs.map +0 -1
  82. package/dist/wasm-middleware.js.map +0 -1
  83. package/dist/wasm-middleware.mjs.map +0 -1
  84. package/dist/wasm-setup.js.map +0 -1
  85. package/dist/wasm-setup.mjs.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,100 @@
1
1
  # @kya-os/checkpoint-nextjs
2
2
 
3
+ ## 1.0.1 — 2026-05-17
4
+
5
+ Security + rename-completeness patch on top of 1.0.0. **All 1.0.0 users
6
+ should upgrade.**
7
+
8
+ ### Security fixes (from #2587)
9
+
10
+ - **`withCheckpointApi` fail-open bypass via observability callback.**
11
+ Severity: HIGH. The `onAgentDetected` callback was awaited inside the
12
+ outer middleware fail-open `try/catch`. A throwing callback (telemetry
13
+ flap, logging backend down, downstream timeout) would bubble up to the
14
+ fail-open path and return `NextResponse.next()` (200) **even when the
15
+ API had already returned `decision.action === 'block'`**. An attacker
16
+ who could induce failures in a customer's observability layer could
17
+ bypass enforcement. Fix: local `try/catch` around the callback so
18
+ enforcement continues regardless. Regression test added.
19
+ - **`getCheckpointApiClient` shared singleton across distinct configs.**
20
+ Severity: HIGH for multi-tenant deploys (single Next.js app hosting
21
+ middleware for several customer routes). The first call's
22
+ `apiKey`/`baseUrl` were cached and reused for all subsequent calls
23
+ even when callers passed different configs — leaking audit/billing
24
+ into the wrong account and evaluating requests against the wrong
25
+ policy. Fix: config-keyed cache, distinct configs → distinct clients.
26
+ Regression test added.
27
+
28
+ **Cross-version advisory:** Bug 1 (`await config.onAgentDetected(...)`
29
+ inside the fail-open `try/catch`) **also exists in `withAgentShield` in
30
+ `@kya-os/agentshield-nextjs@0.3.x`** (verified at
31
+ `packages/agentshield-nextjs/src/api-middleware.ts:403-405` pre-rename).
32
+ Anyone still on the legacy SDK is exposed to the same fail-open bypass.
33
+ Recommended migration: upgrade to `@kya-os/checkpoint-nextjs@1.0.1`.
34
+
35
+ ### Rename-completeness (no behavior change)
36
+
37
+ The 1.0.0 rename from `agentshield` → `checkpoint` left stragglers in
38
+ log strings and runtime env-var lookups. Cleaning these up so the
39
+ package no longer reads any `AGENTSHIELD_*` env var at runtime:
40
+
41
+ - Log prefix `[AgentShield]` → `[Checkpoint]` across api-client,
42
+ api-middleware, policy, edge, storage, and the WASM setup guide.
43
+ - Runtime env vars renamed:
44
+ - `AGENTSHIELD_API_URL` → `CHECKPOINT_API_URL`
45
+ - `AGENTSHIELD_USE_EDGE` → `CHECKPOINT_USE_EDGE`
46
+ - `AGENTSHIELD_DEBUG` → `CHECKPOINT_DEBUG`
47
+ - `AGENTSHIELD_SECRET` → `CHECKPOINT_SECRET`
48
+ - Error message: `"AgentShield API key is required..."` →
49
+ `"Checkpoint API key is required..."` (the `CHECKPOINT_API_KEY` env
50
+ var name in that message is unchanged — it was already correct in
51
+ 1.0.0).
52
+ - Docs (`QUICKSTART.md`, `SESSION_TRACKING_GUIDE.md`) aligned with
53
+ source: `AGENTSHIELD_API_KEY` and `AGENTSHIELD_SECRET` references
54
+ swapped for the `CHECKPOINT_*` forms the source actually reads.
55
+
56
+ #### Breaking-in-a-patch caveat (intentional)
57
+
58
+ Per-spirit-of-semver this is technically a breaking config change. We're
59
+ shipping it as a 1.0.x patch because:
60
+
61
+ 1. `@kya-os/checkpoint-nextjs@1.0.0` shipped on 2026-05-15 — a two-day
62
+ migration window with effectively no adopters yet at scale.
63
+ 2. The 1.0.0 release notes already documented `CHECKPOINT_API_KEY` as
64
+ the canonical env-var name; the leftover `AGENTSHIELD_*` lookups
65
+ were an oversight, not a documented API.
66
+ 3. Customers actively reading the docs as written were already setting
67
+ `CHECKPOINT_*` env vars; the change makes the package read what the
68
+ docs say.
69
+
70
+ If you have `AGENTSHIELD_API_URL` / `AGENTSHIELD_USE_EDGE` /
71
+ `AGENTSHIELD_DEBUG` / `AGENTSHIELD_SECRET` in your env, rename them to
72
+ the `CHECKPOINT_*` equivalents on upgrade.
73
+
74
+ #### Deliberately NOT renamed (would break live sessions)
75
+
76
+ - Cookie name `__agentshield_session` — renaming would invalidate every
77
+ customer's live agent-detection sessions on deploy.
78
+ - Encryption-key fallback `'agentshield-default-key'` — same reason
79
+ (would silently fail to decrypt sessions encrypted with the old
80
+ default).
81
+
82
+ These are tracked for a future major and not in scope here.
83
+
84
+ ### Migration
85
+
86
+ ```diff
87
+ - AGENTSHIELD_API_URL=https://detect.checkpoint-gateway.ai
88
+ + CHECKPOINT_API_URL=https://detect.checkpoint-gateway.ai
89
+
90
+ - AGENTSHIELD_SECRET=my-encryption-key
91
+ + CHECKPOINT_SECRET=my-encryption-key
92
+ ```
93
+
94
+ No code changes required.
95
+
96
+ ---
97
+
3
98
  ## 1.0.0 — 2026-05-15
4
99
 
5
100
  E-tracks Phase D — package rename + engine refactor + dual-runtime support.