@actuate-media/cms-core 0.10.3 → 0.11.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.
Files changed (137) hide show
  1. package/dist/__tests__/api/admin-contracts.test.js +1 -0
  2. package/dist/__tests__/api/admin-contracts.test.js.map +1 -1
  3. package/dist/__tests__/api/public-globals.test.js +8 -4
  4. package/dist/__tests__/api/public-globals.test.js.map +1 -1
  5. package/dist/__tests__/security/audit.test.d.ts +2 -0
  6. package/dist/__tests__/security/audit.test.d.ts.map +1 -0
  7. package/dist/__tests__/security/audit.test.js +50 -0
  8. package/dist/__tests__/security/audit.test.js.map +1 -0
  9. package/dist/__tests__/security/client-ip.test.d.ts +2 -0
  10. package/dist/__tests__/security/client-ip.test.d.ts.map +1 -0
  11. package/dist/__tests__/security/client-ip.test.js +37 -0
  12. package/dist/__tests__/security/client-ip.test.js.map +1 -0
  13. package/dist/__tests__/security/ip-allowlist.test.d.ts +2 -0
  14. package/dist/__tests__/security/ip-allowlist.test.d.ts.map +1 -0
  15. package/dist/__tests__/security/ip-allowlist.test.js +40 -0
  16. package/dist/__tests__/security/ip-allowlist.test.js.map +1 -0
  17. package/dist/__tests__/security/redact.test.d.ts +2 -0
  18. package/dist/__tests__/security/redact.test.d.ts.map +1 -0
  19. package/dist/__tests__/security/redact.test.js +31 -0
  20. package/dist/__tests__/security/redact.test.js.map +1 -0
  21. package/dist/__tests__/security/secret-storage.test.d.ts +2 -0
  22. package/dist/__tests__/security/secret-storage.test.d.ts.map +1 -0
  23. package/dist/__tests__/security/secret-storage.test.js +42 -0
  24. package/dist/__tests__/security/secret-storage.test.js.map +1 -0
  25. package/dist/__tests__/security/upload-magic.test.d.ts +2 -0
  26. package/dist/__tests__/security/upload-magic.test.d.ts.map +1 -0
  27. package/dist/__tests__/security/upload-magic.test.js +55 -0
  28. package/dist/__tests__/security/upload-magic.test.js.map +1 -0
  29. package/dist/__tests__/seo/robots.test.d.ts +2 -0
  30. package/dist/__tests__/seo/robots.test.d.ts.map +1 -0
  31. package/dist/__tests__/seo/robots.test.js +51 -0
  32. package/dist/__tests__/seo/robots.test.js.map +1 -0
  33. package/dist/__tests__/server-site.test.d.ts +2 -0
  34. package/dist/__tests__/server-site.test.d.ts.map +1 -0
  35. package/dist/__tests__/server-site.test.js +123 -0
  36. package/dist/__tests__/server-site.test.js.map +1 -0
  37. package/dist/actions.d.ts.map +1 -1
  38. package/dist/actions.js +170 -34
  39. package/dist/actions.js.map +1 -1
  40. package/dist/api/handler-factory.d.ts.map +1 -1
  41. package/dist/api/handler-factory.js +64 -9
  42. package/dist/api/handler-factory.js.map +1 -1
  43. package/dist/api/handlers.d.ts.map +1 -1
  44. package/dist/api/handlers.js +692 -118
  45. package/dist/api/handlers.js.map +1 -1
  46. package/dist/api/openapi.d.ts.map +1 -1
  47. package/dist/api/openapi.js +38 -0
  48. package/dist/api/openapi.js.map +1 -1
  49. package/dist/auth/mfa-pending.d.ts +24 -0
  50. package/dist/auth/mfa-pending.d.ts.map +1 -0
  51. package/dist/auth/mfa-pending.js +38 -0
  52. package/dist/auth/mfa-pending.js.map +1 -0
  53. package/dist/auth/oauth.d.ts +25 -3
  54. package/dist/auth/oauth.d.ts.map +1 -1
  55. package/dist/auth/oauth.js +109 -20
  56. package/dist/auth/oauth.js.map +1 -1
  57. package/dist/auth/reset.d.ts.map +1 -1
  58. package/dist/auth/reset.js +26 -2
  59. package/dist/auth/reset.js.map +1 -1
  60. package/dist/auth/session.d.ts +9 -2
  61. package/dist/auth/session.d.ts.map +1 -1
  62. package/dist/auth/session.js +20 -2
  63. package/dist/auth/session.js.map +1 -1
  64. package/dist/index.d.ts +4 -2
  65. package/dist/index.d.ts.map +1 -1
  66. package/dist/index.js +3 -1
  67. package/dist/index.js.map +1 -1
  68. package/dist/middleware.d.ts.map +1 -1
  69. package/dist/middleware.js +21 -34
  70. package/dist/middleware.js.map +1 -1
  71. package/dist/page-builder/__tests__/blocks.test.js +104 -1
  72. package/dist/page-builder/__tests__/blocks.test.js.map +1 -1
  73. package/dist/page-builder/blocks.d.ts +18 -1
  74. package/dist/page-builder/blocks.d.ts.map +1 -1
  75. package/dist/page-builder/blocks.js +22 -2
  76. package/dist/page-builder/blocks.js.map +1 -1
  77. package/dist/security/audit.d.ts.map +1 -1
  78. package/dist/security/audit.js +8 -4
  79. package/dist/security/audit.js.map +1 -1
  80. package/dist/security/client-ip.d.ts +33 -0
  81. package/dist/security/client-ip.d.ts.map +1 -0
  82. package/dist/security/client-ip.js +39 -0
  83. package/dist/security/client-ip.js.map +1 -0
  84. package/dist/security/index.d.ts +7 -0
  85. package/dist/security/index.d.ts.map +1 -1
  86. package/dist/security/index.js +5 -0
  87. package/dist/security/index.js.map +1 -1
  88. package/dist/security/internal-keys.d.ts +15 -0
  89. package/dist/security/internal-keys.d.ts.map +1 -0
  90. package/dist/security/internal-keys.js +33 -0
  91. package/dist/security/internal-keys.js.map +1 -0
  92. package/dist/security/ip-allowlist.d.ts +13 -1
  93. package/dist/security/ip-allowlist.d.ts.map +1 -1
  94. package/dist/security/ip-allowlist.js +120 -12
  95. package/dist/security/ip-allowlist.js.map +1 -1
  96. package/dist/security/rate-limit.d.ts.map +1 -1
  97. package/dist/security/rate-limit.js +49 -17
  98. package/dist/security/rate-limit.js.map +1 -1
  99. package/dist/security/redact.d.ts +12 -0
  100. package/dist/security/redact.d.ts.map +1 -0
  101. package/dist/security/redact.js +41 -0
  102. package/dist/security/redact.js.map +1 -0
  103. package/dist/security/safe-fetch.d.ts +35 -0
  104. package/dist/security/safe-fetch.d.ts.map +1 -0
  105. package/dist/security/safe-fetch.js +45 -0
  106. package/dist/security/safe-fetch.js.map +1 -0
  107. package/dist/security/secret-storage.d.ts +22 -0
  108. package/dist/security/secret-storage.d.ts.map +1 -0
  109. package/dist/security/secret-storage.js +75 -0
  110. package/dist/security/secret-storage.js.map +1 -0
  111. package/dist/security/upload.d.ts +23 -4
  112. package/dist/security/upload.d.ts.map +1 -1
  113. package/dist/security/upload.js +110 -21
  114. package/dist/security/upload.js.map +1 -1
  115. package/dist/seo/index.d.ts +2 -0
  116. package/dist/seo/index.d.ts.map +1 -1
  117. package/dist/seo/index.js +1 -0
  118. package/dist/seo/index.js.map +1 -1
  119. package/dist/seo/robots.d.ts +16 -0
  120. package/dist/seo/robots.d.ts.map +1 -0
  121. package/dist/seo/robots.js +35 -0
  122. package/dist/seo/robots.js.map +1 -0
  123. package/dist/server-site.d.ts +54 -0
  124. package/dist/server-site.d.ts.map +1 -0
  125. package/dist/server-site.js +149 -0
  126. package/dist/server-site.js.map +1 -0
  127. package/dist/site.d.ts.map +1 -1
  128. package/dist/site.js +19 -1
  129. package/dist/site.js.map +1 -1
  130. package/dist/storage/index.d.ts +20 -10
  131. package/dist/storage/index.d.ts.map +1 -1
  132. package/dist/storage/index.js +6 -3
  133. package/dist/storage/index.js.map +1 -1
  134. package/dist/webhooks/index.d.ts.map +1 -1
  135. package/dist/webhooks/index.js +20 -9
  136. package/dist/webhooks/index.js.map +1 -1
  137. package/package.json +1 -1
@@ -4,7 +4,41 @@ import { registerCMSRoutes, parseCookieHeader } from './handlers.js';
4
4
  import { initDB, isDBInitialized } from '../db.js';
5
5
  import { validateCsrfToken } from '../security/index.js';
6
6
  import { createRateLimiter } from '../security/rate-limit.js';
7
+ import { getClientIp } from '../security/client-ip.js';
7
8
  import { autoSeedAdmin } from '../setup/index.js';
9
+ import { setStorageAdapter } from '../storage/index.js';
10
+ /**
11
+ * Routes that may legitimately receive a state-mutating request without a
12
+ * CSRF token. Matched by exact prefix on the rewritten (CMS-relative) path,
13
+ * not by `pathname.includes(...)` — without exact matching, an attacker could
14
+ * craft a path like `/collections/auth/login/foo` to bypass CSRF on every
15
+ * other endpoint.
16
+ *
17
+ * /auth/login — initial credential POST has no session yet
18
+ * /auth/logout — clears state; CSRF would just block sign-out
19
+ * /auth/totp/login — second factor in the login dance
20
+ * /auth/forgot-password — anonymous; pre-account
21
+ * /auth/reset-password — anonymous; pre-account
22
+ * /auth/oauth/... — OAuth init + callback redirects
23
+ * /setup/create-admin — only reachable on a fresh install
24
+ * /forms/:id/submit — public form submissions (regex below)
25
+ */
26
+ const CSRF_EXEMPT_PATHS = [
27
+ '/auth/login',
28
+ '/auth/logout',
29
+ '/auth/totp/login',
30
+ '/auth/forgot-password',
31
+ '/auth/reset-password',
32
+ '/auth/oauth/',
33
+ '/setup/create-admin',
34
+ ];
35
+ function isCsrfExemptPath(pathname) {
36
+ if (CSRF_EXEMPT_PATHS.some((p) => pathname === p || pathname.startsWith(`${p}/`) || (p.endsWith('/') && pathname.startsWith(p)))) {
37
+ return true;
38
+ }
39
+ // Public form submission endpoint.
40
+ return /^\/forms\/[^/]+\/submit$/.test(pathname);
41
+ }
8
42
  const _require = createRequire(import.meta.url);
9
43
  const { version: CMS_CORE_VERSION } = _require('../../package.json');
10
44
  let cachedGraphQL = null;
@@ -22,12 +56,33 @@ export function handleActuateAPI(options = {}) {
22
56
  }
23
57
  }
24
58
  config._pluginHooks = hooks;
59
+ // Wire up the platform storage adapter so /media/upload routes through
60
+ // it instead of dynamic-importing @vercel/blob directly. This honors
61
+ // platform-vercel's `token`/`prefix` options and lets consumers ship
62
+ // their own adapter (S3, R2, etc.) by registering one in the config.
63
+ const platformStorage = config.platform?.storage;
64
+ if (platformStorage && typeof platformStorage === 'object'
65
+ && typeof platformStorage.upload === 'function') {
66
+ try {
67
+ setStorageAdapter(platformStorage);
68
+ }
69
+ catch (err) {
70
+ if (process.env.NODE_ENV !== 'test') {
71
+ console.warn('[Actuate CMS] Failed to register platform storage adapter:', err);
72
+ }
73
+ }
74
+ }
25
75
  }
26
76
  const router = createApiRouter();
27
77
  const rateLimiter = createRateLimiter({ windowMs: 60000, maxRequests: 100 });
28
78
  router.use(async (request, next) => {
29
- const clientIp = request.headers.get('x-forwarded-for')?.split(',')[0]?.trim() ?? 'unknown';
30
- const rateLimitResult = await rateLimiter.check(clientIp);
79
+ // Rate-limit per trusted client IP. When we cannot resolve a trustworthy
80
+ // IP we fall back to a single global bucket — that's deliberately strict
81
+ // so an attacker who's spoofing X-Forwarded-For shares the bucket with
82
+ // every other un-authenticated client instead of getting their own.
83
+ const ip = getClientIp(request);
84
+ const bucket = ip === 'unknown' ? 'rl:_unknown' : `rl:${ip}`;
85
+ const rateLimitResult = await rateLimiter.check(bucket);
31
86
  if (!rateLimitResult.allowed) {
32
87
  return new Response(JSON.stringify({ error: 'Too many requests' }), {
33
88
  status: 429,
@@ -38,11 +93,10 @@ export function handleActuateAPI(options = {}) {
38
93
  });
39
94
  }
40
95
  if (['POST', 'PUT', 'PATCH', 'DELETE'].includes(request.method)) {
41
- const reqUrl = new URL(request.url);
42
- const csrfExempt = ['/auth/login', '/auth/logout', '/setup/create-admin', '/auth/oauth'];
43
- const isExempt = csrfExempt.some(p => reqUrl.pathname.includes(p))
44
- || /\/forms\/[^/]+\/submit$/.test(reqUrl.pathname);
45
- if (!isExempt) {
96
+ // The router rewrites the URL to drop the `/api/cms` prefix before
97
+ // dispatch, so by the time we run the path is already CMS-relative
98
+ // (e.g. `/auth/login`). Match exact prefixes — never `includes()`.
99
+ if (!isCsrfExemptPath(new URL(request.url).pathname)) {
46
100
  const csrfToken = request.headers.get('x-csrf-token');
47
101
  const csrfCookie = parseCookieHeader(request.headers.get('cookie') ?? '')['actuate_csrf'];
48
102
  if (!csrfToken || !csrfCookie || !validateCsrfToken(csrfToken, csrfCookie)) {
@@ -92,8 +146,9 @@ export function handleActuateAPI(options = {}) {
92
146
  headers: { 'Content-Type': 'application/json' },
93
147
  });
94
148
  }
95
- const clientIp = request.headers.get('x-forwarded-for')?.split(',')[0]?.trim() ?? 'unknown';
96
- const rateLimitResult = await rateLimiter.check(clientIp);
149
+ const ip = getClientIp(request);
150
+ const bucket = ip === 'unknown' ? 'rl:_unknown' : `rl:${ip}`;
151
+ const rateLimitResult = await rateLimiter.check(bucket);
97
152
  if (!rateLimitResult.allowed) {
98
153
  return new Response(JSON.stringify({ error: 'Too many requests' }), {
99
154
  status: 429,
@@ -1 +1 @@
1
- {"version":3,"file":"handler-factory.js","sourceRoot":"","sources":["../../src/api/handler-factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler-factory.js","sourceRoot":"","sources":["../../src/api/handler-factory.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/api/handlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AA8T7C,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAS9E;AAiED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA0jHzD"}
1
+ {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/api/handlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AA6U7C,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAS9E;AAkJD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA4lIzD"}