@kywi-software/core 0.4.0 → 0.6.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 (261) hide show
  1. package/dist/admin/field-components.d.ts.map +1 -1
  2. package/dist/admin/field-components.js +55 -0
  3. package/dist/admin/field-components.js.map +1 -1
  4. package/dist/admin/form-builder.js +10 -1
  5. package/dist/admin/form-builder.js.map +1 -1
  6. package/dist/admin/form-helpers.d.ts +1 -1
  7. package/dist/admin/form-helpers.d.ts.map +1 -1
  8. package/dist/admin/form-helpers.js +21 -0
  9. package/dist/admin/form-helpers.js.map +1 -1
  10. package/dist/admin/layout-editor/component-actions.d.ts +43 -1
  11. package/dist/admin/layout-editor/component-actions.d.ts.map +1 -1
  12. package/dist/admin/layout-editor/component-actions.js +59 -1
  13. package/dist/admin/layout-editor/component-actions.js.map +1 -1
  14. package/dist/admin/layout-editor/editor-canvas.d.ts.map +1 -1
  15. package/dist/admin/layout-editor/editor-canvas.js +1 -1
  16. package/dist/admin/layout-editor/editor-canvas.js.map +1 -1
  17. package/dist/admin/layout-editor/editor-state.d.ts +4 -0
  18. package/dist/admin/layout-editor/editor-state.d.ts.map +1 -1
  19. package/dist/admin/layout-editor/editor-state.js +17 -0
  20. package/dist/admin/layout-editor/editor-state.js.map +1 -1
  21. package/dist/admin/layout-editor/index.d.ts +1 -1
  22. package/dist/admin/layout-editor/index.d.ts.map +1 -1
  23. package/dist/admin/layout-editor/index.js +1 -1
  24. package/dist/admin/layout-editor/index.js.map +1 -1
  25. package/dist/admin/layout-editor/layout-editor.d.ts.map +1 -1
  26. package/dist/admin/layout-editor/layout-editor.js +95 -2
  27. package/dist/admin/layout-editor/layout-editor.js.map +1 -1
  28. package/dist/admin/layout-editor/overlay-shell.d.ts.map +1 -1
  29. package/dist/admin/layout-editor/overlay-shell.js +8 -0
  30. package/dist/admin/layout-editor/overlay-shell.js.map +1 -1
  31. package/dist/admin/layout-editor/props-panel.d.ts +12 -2
  32. package/dist/admin/layout-editor/props-panel.d.ts.map +1 -1
  33. package/dist/admin/layout-editor/props-panel.js +30 -14
  34. package/dist/admin/layout-editor/props-panel.js.map +1 -1
  35. package/dist/admin/layout-editor/section-overlay.d.ts +6 -1
  36. package/dist/admin/layout-editor/section-overlay.d.ts.map +1 -1
  37. package/dist/admin/layout-editor/section-overlay.js +11 -2
  38. package/dist/admin/layout-editor/section-overlay.js.map +1 -1
  39. package/dist/admin/layout-editor/section-template-picker.d.ts +8 -1
  40. package/dist/admin/layout-editor/section-template-picker.d.ts.map +1 -1
  41. package/dist/admin/layout-editor/section-template-picker.js +31 -2
  42. package/dist/admin/layout-editor/section-template-picker.js.map +1 -1
  43. package/dist/admin/server.d.ts +1 -0
  44. package/dist/admin/server.d.ts.map +1 -1
  45. package/dist/admin/server.js +7 -0
  46. package/dist/admin/server.js.map +1 -1
  47. package/dist/admin/surfaces/contentTypes/content-types-designer.d.ts.map +1 -1
  48. package/dist/admin/surfaces/contentTypes/content-types-designer.js +12 -2
  49. package/dist/admin/surfaces/contentTypes/content-types-designer.js.map +1 -1
  50. package/dist/admin/surfaces/dashboard/dashboard-index.d.ts.map +1 -1
  51. package/dist/admin/surfaces/dashboard/dashboard-index.js +23 -1
  52. package/dist/admin/surfaces/dashboard/dashboard-index.js.map +1 -1
  53. package/dist/admin/webhook-manager.d.ts.map +1 -1
  54. package/dist/admin/webhook-manager.js +1 -0
  55. package/dist/admin/webhook-manager.js.map +1 -1
  56. package/dist/api/admin-features-routes.d.ts.map +1 -1
  57. package/dist/api/admin-features-routes.js +7 -1
  58. package/dist/api/admin-features-routes.js.map +1 -1
  59. package/dist/api/audience-preview-routes.d.ts.map +1 -1
  60. package/dist/api/audience-preview-routes.js +20 -2
  61. package/dist/api/audience-preview-routes.js.map +1 -1
  62. package/dist/api/audience-routes.d.ts.map +1 -1
  63. package/dist/api/audience-routes.js +44 -3
  64. package/dist/api/audience-routes.js.map +1 -1
  65. package/dist/api/auth-routes.d.ts.map +1 -1
  66. package/dist/api/auth-routes.js +16 -0
  67. package/dist/api/auth-routes.js.map +1 -1
  68. package/dist/api/auth.d.ts.map +1 -1
  69. package/dist/api/auth.js +34 -1
  70. package/dist/api/auth.js.map +1 -1
  71. package/dist/api/bulk-routes.d.ts.map +1 -1
  72. package/dist/api/bulk-routes.js +44 -12
  73. package/dist/api/bulk-routes.js.map +1 -1
  74. package/dist/api/category-routes.d.ts.map +1 -1
  75. package/dist/api/category-routes.js +10 -1
  76. package/dist/api/category-routes.js.map +1 -1
  77. package/dist/api/changeset-routes.d.ts +9 -0
  78. package/dist/api/changeset-routes.d.ts.map +1 -1
  79. package/dist/api/changeset-routes.js +13 -2
  80. package/dist/api/changeset-routes.js.map +1 -1
  81. package/dist/api/comment-routes.d.ts.map +1 -1
  82. package/dist/api/comment-routes.js +27 -1
  83. package/dist/api/comment-routes.js.map +1 -1
  84. package/dist/api/component-routes.d.ts.map +1 -1
  85. package/dist/api/component-routes.js +16 -1
  86. package/dist/api/component-routes.js.map +1 -1
  87. package/dist/api/content-routes.d.ts.map +1 -1
  88. package/dist/api/content-routes.js +59 -20
  89. package/dist/api/content-routes.js.map +1 -1
  90. package/dist/api/content-schemas.d.ts.map +1 -1
  91. package/dist/api/content-schemas.js +39 -0
  92. package/dist/api/content-schemas.js.map +1 -1
  93. package/dist/api/content-type-routes.d.ts.map +1 -1
  94. package/dist/api/content-type-routes.js +25 -5
  95. package/dist/api/content-type-routes.js.map +1 -1
  96. package/dist/api/dashboard-routes.d.ts.map +1 -1
  97. package/dist/api/dashboard-routes.js +4 -1
  98. package/dist/api/dashboard-routes.js.map +1 -1
  99. package/dist/api/experiment-routes.d.ts.map +1 -1
  100. package/dist/api/experiment-routes.js +24 -2
  101. package/dist/api/experiment-routes.js.map +1 -1
  102. package/dist/api/feed-routes.d.ts +4 -4
  103. package/dist/api/feed-routes.d.ts.map +1 -1
  104. package/dist/api/feed-routes.js +12 -2
  105. package/dist/api/feed-routes.js.map +1 -1
  106. package/dist/api/form-routes.d.ts +18 -0
  107. package/dist/api/form-routes.d.ts.map +1 -1
  108. package/dist/api/form-routes.js +207 -14
  109. package/dist/api/form-routes.js.map +1 -1
  110. package/dist/api/group-routes.d.ts.map +1 -1
  111. package/dist/api/group-routes.js +27 -0
  112. package/dist/api/group-routes.js.map +1 -1
  113. package/dist/api/index.d.ts +9 -0
  114. package/dist/api/index.d.ts.map +1 -1
  115. package/dist/api/index.js +25 -2
  116. package/dist/api/index.js.map +1 -1
  117. package/dist/api/layout-routes.d.ts.map +1 -1
  118. package/dist/api/layout-routes.js +13 -1
  119. package/dist/api/layout-routes.js.map +1 -1
  120. package/dist/api/media-routes.d.ts.map +1 -1
  121. package/dist/api/media-routes.js +19 -0
  122. package/dist/api/media-routes.js.map +1 -1
  123. package/dist/api/scheduler-routes.d.ts +10 -0
  124. package/dist/api/scheduler-routes.d.ts.map +1 -1
  125. package/dist/api/scheduler-routes.js +13 -2
  126. package/dist/api/scheduler-routes.js.map +1 -1
  127. package/dist/api/search-routes.d.ts.map +1 -1
  128. package/dist/api/search-routes.js +11 -2
  129. package/dist/api/search-routes.js.map +1 -1
  130. package/dist/api/section-template-routes.d.ts.map +1 -1
  131. package/dist/api/section-template-routes.js +16 -1
  132. package/dist/api/section-template-routes.js.map +1 -1
  133. package/dist/api/site-context.d.ts +30 -1
  134. package/dist/api/site-context.d.ts.map +1 -1
  135. package/dist/api/site-context.js +41 -0
  136. package/dist/api/site-context.js.map +1 -1
  137. package/dist/api/tag-routes.d.ts.map +1 -1
  138. package/dist/api/tag-routes.js +10 -1
  139. package/dist/api/tag-routes.js.map +1 -1
  140. package/dist/api/translation-routes.d.ts.map +1 -1
  141. package/dist/api/translation-routes.js +19 -4
  142. package/dist/api/translation-routes.js.map +1 -1
  143. package/dist/api/user-routes.d.ts.map +1 -1
  144. package/dist/api/user-routes.js +13 -0
  145. package/dist/api/user-routes.js.map +1 -1
  146. package/dist/api/version-routes.d.ts.map +1 -1
  147. package/dist/api/version-routes.js +1 -0
  148. package/dist/api/version-routes.js.map +1 -1
  149. package/dist/api/webhook-routes.d.ts.map +1 -1
  150. package/dist/api/webhook-routes.js +31 -2
  151. package/dist/api/webhook-routes.js.map +1 -1
  152. package/dist/api/workflow-routes.d.ts.map +1 -1
  153. package/dist/api/workflow-routes.js +45 -1
  154. package/dist/api/workflow-routes.js.map +1 -1
  155. package/dist/auth/tokens.d.ts.map +1 -1
  156. package/dist/auth/tokens.js +14 -1
  157. package/dist/auth/tokens.js.map +1 -1
  158. package/dist/config/types.d.ts +29 -2
  159. package/dist/config/types.d.ts.map +1 -1
  160. package/dist/config/types.js.map +1 -1
  161. package/dist/db/bulk-queries.d.ts +8 -0
  162. package/dist/db/bulk-queries.d.ts.map +1 -1
  163. package/dist/db/bulk-queries.js +16 -0
  164. package/dist/db/bulk-queries.js.map +1 -1
  165. package/dist/db/changeset-queries.d.ts +27 -1
  166. package/dist/db/changeset-queries.d.ts.map +1 -1
  167. package/dist/db/changeset-queries.js +56 -2
  168. package/dist/db/changeset-queries.js.map +1 -1
  169. package/dist/db/content-permission-dedupe.d.ts +24 -0
  170. package/dist/db/content-permission-dedupe.d.ts.map +1 -0
  171. package/dist/db/content-permission-dedupe.js +69 -0
  172. package/dist/db/content-permission-dedupe.js.map +1 -0
  173. package/dist/db/content-permission-queries.d.ts +8 -0
  174. package/dist/db/content-permission-queries.d.ts.map +1 -1
  175. package/dist/db/content-permission-queries.js +29 -1
  176. package/dist/db/content-permission-queries.js.map +1 -1
  177. package/dist/db/content-queries.d.ts +7 -0
  178. package/dist/db/content-queries.d.ts.map +1 -1
  179. package/dist/db/content-queries.js +9 -0
  180. package/dist/db/content-queries.js.map +1 -1
  181. package/dist/db/content-type-queries.d.ts.map +1 -1
  182. package/dist/db/content-type-queries.js +3 -1
  183. package/dist/db/content-type-queries.js.map +1 -1
  184. package/dist/db/dynamic-schema.d.ts.map +1 -1
  185. package/dist/db/dynamic-schema.js +1 -0
  186. package/dist/db/dynamic-schema.js.map +1 -1
  187. package/dist/db/index.d.ts +1 -0
  188. package/dist/db/index.d.ts.map +1 -1
  189. package/dist/db/index.js +3 -0
  190. package/dist/db/index.js.map +1 -1
  191. package/dist/db/schema-apply.d.ts.map +1 -1
  192. package/dist/db/schema-apply.js +1 -0
  193. package/dist/db/schema-apply.js.map +1 -1
  194. package/dist/db/schema-field-queries.d.ts +2 -0
  195. package/dist/db/schema-field-queries.d.ts.map +1 -1
  196. package/dist/db/schema-field-queries.js +4 -0
  197. package/dist/db/schema-field-queries.js.map +1 -1
  198. package/dist/db/site-membership-queries.d.ts +6 -0
  199. package/dist/db/site-membership-queries.d.ts.map +1 -1
  200. package/dist/db/site-membership-queries.js +9 -0
  201. package/dist/db/site-membership-queries.js.map +1 -1
  202. package/dist/db/user-search.d.ts +8 -0
  203. package/dist/db/user-search.d.ts.map +1 -1
  204. package/dist/db/user-search.js +14 -8
  205. package/dist/db/user-search.js.map +1 -1
  206. package/dist/db/workflow-queries.d.ts +1 -0
  207. package/dist/db/workflow-queries.d.ts.map +1 -1
  208. package/dist/db/workflow-queries.js +24 -0
  209. package/dist/db/workflow-queries.js.map +1 -1
  210. package/dist/forms/types.d.ts +5 -0
  211. package/dist/forms/types.d.ts.map +1 -1
  212. package/dist/forms/validation.d.ts +20 -0
  213. package/dist/forms/validation.d.ts.map +1 -1
  214. package/dist/forms/validation.js +45 -2
  215. package/dist/forms/validation.js.map +1 -1
  216. package/dist/hooks/ax-invalidation.d.ts.map +1 -1
  217. package/dist/hooks/ax-invalidation.js +1 -0
  218. package/dist/hooks/ax-invalidation.js.map +1 -1
  219. package/dist/hooks/dispatch.d.ts +1 -0
  220. package/dist/hooks/dispatch.d.ts.map +1 -1
  221. package/dist/hooks/dispatch.js +6 -0
  222. package/dist/hooks/dispatch.js.map +1 -1
  223. package/dist/hooks/webhook-dispatch.d.ts.map +1 -1
  224. package/dist/hooks/webhook-dispatch.js +1 -0
  225. package/dist/hooks/webhook-dispatch.js.map +1 -1
  226. package/dist/layout/index.d.ts +1 -1
  227. package/dist/layout/index.d.ts.map +1 -1
  228. package/dist/layout/index.js.map +1 -1
  229. package/dist/layout/renderer.d.ts +15 -2
  230. package/dist/layout/renderer.d.ts.map +1 -1
  231. package/dist/layout/renderer.js +49 -3
  232. package/dist/layout/renderer.js.map +1 -1
  233. package/dist/layout/types.d.ts +9 -0
  234. package/dist/layout/types.d.ts.map +1 -1
  235. package/dist/layout/types.js +5 -0
  236. package/dist/layout/types.js.map +1 -1
  237. package/dist/schema/base.d.ts +74 -0
  238. package/dist/schema/base.d.ts.map +1 -1
  239. package/dist/schema/base.js +16 -0
  240. package/dist/schema/base.js.map +1 -1
  241. package/dist/schema/content-permissions.d.ts.map +1 -1
  242. package/dist/schema/content-permissions.js +23 -2
  243. package/dist/schema/content-permissions.js.map +1 -1
  244. package/dist/schema/mapper.d.ts.map +1 -1
  245. package/dist/schema/mapper.js +1 -0
  246. package/dist/schema/mapper.js.map +1 -1
  247. package/dist/schema/mysql-tables.d.ts +68 -0
  248. package/dist/schema/mysql-tables.d.ts.map +1 -1
  249. package/dist/schema/mysql-tables.js +7 -0
  250. package/dist/schema/mysql-tables.js.map +1 -1
  251. package/dist/scope/kywi-form.d.ts.map +1 -1
  252. package/dist/scope/kywi-form.js +51 -6
  253. package/dist/scope/kywi-form.js.map +1 -1
  254. package/dist/scope/kywi-wizard-form.d.ts.map +1 -1
  255. package/dist/scope/kywi-wizard-form.js +29 -3
  256. package/dist/scope/kywi-wizard-form.js.map +1 -1
  257. package/dist/versioning/scheduler.d.ts +10 -2
  258. package/dist/versioning/scheduler.d.ts.map +1 -1
  259. package/dist/versioning/scheduler.js +13 -5
  260. package/dist/versioning/scheduler.js.map +1 -1
  261. package/package.json +7 -4
package/dist/api/auth.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { jwtVerify } from 'jose';
2
2
  import { resolveApiKey } from '../db/api-key-queries.js';
3
3
  import { getUserById, getUserGroups, buildUserContext } from '../db/user-queries.js';
4
+ import { getUserSiteIds } from '../db/site-membership-queries.js';
4
5
  import { effectiveApiKeyRole } from '../auth/roles.js';
5
6
  export async function verifyAuthHeader(authHeader, secret) {
6
7
  if (!authHeader) {
@@ -23,6 +24,13 @@ export async function verifyAuthHeader(authHeader, secret) {
23
24
  ? payload.groups
24
25
  : [],
25
26
  };
27
+ // Per-site authorization (#73): carry the `sites` claim through as
28
+ // `siteMemberships`. An ABSENT claim (old token) is left undefined here —
29
+ // `resolveAuth` does the one-shot DB fallback since it holds the db handle;
30
+ // a PRESENT-but-empty claim is an explicit "zero rows" and is preserved.
31
+ if (Array.isArray(payload.sites)) {
32
+ user.siteMemberships = payload.sites;
33
+ }
26
34
  return { user };
27
35
  }
28
36
  catch (err) {
@@ -45,6 +53,9 @@ export async function resolveAuth(authHeader, secret, db) {
45
53
  return { user: null, error: 'API key owner not found or inactive' };
46
54
  const groups = await getUserGroups(db, user.id);
47
55
  const ctx = buildUserContext(user, groups);
56
+ // #73: this branch already does DB lookups, so resolve per-site memberships
57
+ // here directly (there is no JWT to carry a `sites` claim for API keys).
58
+ ctx.siteMemberships = await getUserSiteIds(db, user.id);
48
59
  // #54: enforce the key's declared scopes as a ceiling on the owner's role.
49
60
  // The effective permission is intersection(owner role, key scopes) — NOT a
50
61
  // fallback to the owner's role. Otherwise a read-scoped key (the kind handed
@@ -55,6 +66,28 @@ export async function resolveAuth(authHeader, secret, db) {
55
66
  // it is unaffected.
56
67
  return { user: { ...ctx, role: effectiveApiKeyRole(ctx.role, result.scopes) }, viaApiKey: true };
57
68
  }
58
- return verifyAuthHeader(authHeader, secret);
69
+ const result = await verifyAuthHeader(authHeader, secret);
70
+ // #73 old-token fallback: a valid session JWT minted before the `sites` claim
71
+ // existed leaves `siteMemberships` undefined. Do ONE DB lookup so the token is
72
+ // authorized against real memberships.
73
+ //
74
+ // This must FAIL CLOSED. Only two states may pass site scoping as
75
+ // "unrestricted": a legacy user with zero membership rows (the lookup returns
76
+ // `[]`), and an old token whose lookup we successfully performed. If the lookup
77
+ // itself THROWS we cannot distinguish "zero rows" from "unknown", so we must
78
+ // NOT leave `siteMemberships` undefined (which reads as unrestricted) — that
79
+ // would let a DB blip re-open cross-site access. Deny instead (drop the user →
80
+ // authenticated routes 401), matching the API-key branch, which has no catch
81
+ // and likewise refuses to grant access it could not authorize. A successful
82
+ // lookup returning `[]` still passes as legacy-unrestricted, as intended.
83
+ if (result.user && result.user.siteMemberships === undefined) {
84
+ try {
85
+ result.user.siteMemberships = await getUserSiteIds(db, result.user.id);
86
+ }
87
+ catch {
88
+ return { user: null, error: 'Failed to resolve site memberships' };
89
+ }
90
+ }
91
+ return result;
59
92
  }
60
93
  //# sourceMappingURL=auth.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/api/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AAGhC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAetD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,UAAyB,EACzB,MAAc;IAEd,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;IACvB,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACtC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAA;IACvD,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAEjC,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9B,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,4DAA4D,EAAE,CAAA;IAC5F,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAE5C,IAAI,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QAE1E,MAAM,IAAI,GAAgB;YACxB,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC;YAC7B,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC;YACtC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;gBACnC,CAAC,CAAE,OAAO,CAAC,MAAmB;gBAC9B,CAAC,CAAC,EAAE;SACP,CAAA;QAED,OAAO,EAAE,IAAI,EAAE,CAAA;IACjB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,2BAA2B,CAAA;QAChF,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;IACvC,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,UAAyB,EACzB,MAAc,EACd,EAAU;IAEV,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;IACtC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAA;IAC5F,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAEjC,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QAC7C,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAA;QAC5D,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;QACjD,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,qCAAqC,EAAE,CAAA;QAChG,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;QAC/C,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAC1C,2EAA2E;QAC3E,2EAA2E;QAC3E,6EAA6E;QAC7E,yEAAyE;QACzE,0EAA0E;QAC1E,4EAA4E;QAC5E,6EAA6E;QAC7E,oBAAoB;QACpB,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,mBAAmB,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAA;IAClG,CAAC;IAED,OAAO,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;AAC7C,CAAC"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/api/auth.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"bulk-routes.d.ts","sourceRoot":"","sources":["../../src/api/bulk-routes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,WAAW,EAAe,MAAM,oBAAoB,CAAA;AACjG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAM7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAwBxD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,UAAU,CAAA;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;IAC9C,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAA;IACpD,YAAY,EAAE,YAAY,CAAA;IAC1B,OAAO,EAAE,WAAW,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACnC;AA2BD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,gBAAgB,GAAG,IAAI,CA2M9E"}
1
+ {"version":3,"file":"bulk-routes.d.ts","sourceRoot":"","sources":["../../src/api/bulk-routes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,WAAW,EAAe,MAAM,oBAAoB,CAAA;AACjG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAM7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AA4CxD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,UAAU,CAAA;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;IAC9C,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAA;IACpD,YAAY,EAAE,YAAY,CAAA;IAC1B,OAAO,EAAE,WAAW,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACnC;AA2BD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,gBAAgB,GAAG,IAAI,CAuN9E"}
@@ -2,10 +2,10 @@ import { z } from 'zod';
2
2
  import { resolveAuth } from './auth.js';
3
3
  import { canAccessContent } from '../auth/roles.js';
4
4
  import { checkDocumentMutationAccess } from '../auth/access-control.js';
5
- import { resolveSiteId } from './site-context.js';
5
+ import { resolveSiteId, assertSiteAccess } from './site-context.js';
6
6
  import { createContentHookDispatcher } from '../hooks/dispatch.js';
7
7
  import { jsonOk, jsonError, unauthorized, forbidden, notFound, validationError } from './response.js';
8
- import { bulkCreate, bulkUpdate, bulkPublish, bulkUnpublish, bulkDelete } from '../db/bulk-queries.js';
8
+ import { bulkCreate, bulkUpdate, bulkPublish, bulkUnpublish, bulkDelete, getSiteIdsForIds } from '../db/bulk-queries.js';
9
9
  /**
10
10
  * Fail-closed content-ACL gate for a bulk mutation (G-J04b-01). Every targeted
11
11
  * node must pass the per-document mutation check; if any single id is denied the
@@ -21,6 +21,22 @@ async function assertBulkDocAccess(db, ids, user, action) {
21
21
  }
22
22
  return null;
23
23
  }
24
+ /**
25
+ * Per-site authorization for a bulk mutation (#73). `assertBulkDocAccess` is
26
+ * ACL-only and siteAdmin+ bypasses it, so it does NOT stop a siteAdmin of one
27
+ * site from addressing another site's rows by id. This loads each target's
28
+ * owning site and rejects the whole batch (403) if any lies outside the caller's
29
+ * memberships. superAdmin / legacy (no memberships) callers pass unchanged.
30
+ * Returns a 403 Response when denied, or null to proceed.
31
+ */
32
+ async function assertBulkSiteAccess(db, ids, user) {
33
+ for (const siteId of await getSiteIdsForIds(db, ids)) {
34
+ const denied = assertSiteAccess(user, siteId);
35
+ if (denied)
36
+ return denied;
37
+ }
38
+ return null;
39
+ }
24
40
  const MAX_BULK_ITEMS = 100;
25
41
  const idsSchema = z.object({
26
42
  ids: z.array(z.string()).min(1, 'At least one ID is required'),
@@ -48,15 +64,17 @@ export function registerBulkRoutes(router, ctx) {
48
64
  * mutation.
49
65
  *
50
66
  * `afterPublish` fires the content/feed/nav + AX cache invalidation and webhook
51
- * subscribers for a publish; `afterUpdate` is used for unpublish so the public
52
- * cache is invalidated there too (there is no dedicated afterUnpublish event).
67
+ * subscribers for a publish; `afterUnpublish` does the same for an unpublish via
68
+ * its own dedicated event so the public cache is invalidated there too.
53
69
  */
54
- async function dispatchPerRow(rows, method) {
70
+ async function dispatchPerRow(rows, method, user) {
55
71
  for (const row of rows) {
56
72
  const contentType = contentTypeMap.get(String(row.contentTypeName ?? ''));
57
73
  if (!contentType)
58
74
  continue;
59
- const dispatch = createContentHookDispatcher(contentType, ctx.hookRegistry, ctx.kywiCtx);
75
+ // Per-request context so `kywi.user` carries the authenticated actor (#62)
76
+ // — never mutate the shared kywiCtx.
77
+ const dispatch = createContentHookDispatcher(contentType, ctx.hookRegistry, { ...ctx.kywiCtx, user });
60
78
  await dispatch[method](row);
61
79
  }
62
80
  }
@@ -82,6 +100,9 @@ export function registerBulkRoutes(router, ctx) {
82
100
  return validationError(parsed.error.errors.map(e => ({ path: e.path.join('.'), message: e.message })));
83
101
  }
84
102
  const siteId = resolveSiteId(req, config, ctx.siteIdMap);
103
+ const siteDenied = assertSiteAccess(auth.user, siteId);
104
+ if (siteDenied)
105
+ return siteDenied;
85
106
  const customTable = customTableMap.get(contentType.name) ?? null;
86
107
  const result = await bulkCreate(db, contentType, customTable, siteId, parsed.data.items, auth.user.id);
87
108
  return jsonOk(result, 201);
@@ -111,6 +132,9 @@ export function registerBulkRoutes(router, ctx) {
111
132
  const updateDenied = await assertBulkDocAccess(db, updateIds, auth.user, 'write');
112
133
  if (updateDenied)
113
134
  return updateDenied;
135
+ const updateSiteDenied = await assertBulkSiteAccess(db, updateIds, auth.user);
136
+ if (updateSiteDenied)
137
+ return updateSiteDenied;
114
138
  const customTable = customTableMap.get(contentType.name) ?? null;
115
139
  const result = await bulkUpdate(db, contentType, customTable, parsed.data.items, auth.user.id);
116
140
  return jsonOk(result);
@@ -139,6 +163,9 @@ export function registerBulkRoutes(router, ctx) {
139
163
  const deleteDenied = await assertBulkDocAccess(db, parsed.data.ids, auth.user, 'delete');
140
164
  if (deleteDenied)
141
165
  return deleteDenied;
166
+ const deleteSiteDenied = await assertBulkSiteAccess(db, parsed.data.ids, auth.user);
167
+ if (deleteSiteDenied)
168
+ return deleteSiteDenied;
142
169
  const count = await bulkDelete(db, parsed.data.ids);
143
170
  return jsonOk({ count });
144
171
  });
@@ -166,11 +193,14 @@ export function registerBulkRoutes(router, ctx) {
166
193
  const publishDenied = await assertBulkDocAccess(db, parsed.data.ids, auth.user, 'publish');
167
194
  if (publishDenied)
168
195
  return publishDenied;
196
+ const publishSiteDenied = await assertBulkSiteAccess(db, parsed.data.ids, auth.user);
197
+ if (publishSiteDenied)
198
+ return publishSiteDenied;
169
199
  const rows = await bulkPublish(db, parsed.data.ids);
170
200
  // Dispatch afterPublish per published row so cache/feed/nav + AX invalidation
171
201
  // and webhooks fire — the admin content-list "bulk publish" runs through here,
172
202
  // and without this the public site keeps serving stale cache after a publish.
173
- await dispatchPerRow(rows, 'afterPublish');
203
+ await dispatchPerRow(rows, 'afterPublish', auth.user);
174
204
  return jsonOk({ count: rows.length });
175
205
  });
176
206
  // POST /content/:type/bulk/unpublish — Unpublish multiple items
@@ -197,12 +227,14 @@ export function registerBulkRoutes(router, ctx) {
197
227
  const unpublishDenied = await assertBulkDocAccess(db, parsed.data.ids, auth.user, 'publish');
198
228
  if (unpublishDenied)
199
229
  return unpublishDenied;
230
+ const unpublishSiteDenied = await assertBulkSiteAccess(db, parsed.data.ids, auth.user);
231
+ if (unpublishSiteDenied)
232
+ return unpublishSiteDenied;
200
233
  const rows = await bulkUnpublish(db, parsed.data.ids);
201
- // Dispatch afterUpdate per unpublished row so the public cache (content/feed/
202
- // nav + AX projections) is invalidated — otherwise an unpublished node keeps
203
- // serving from stale cache. There is no afterUnpublish event, so afterUpdate
204
- // (an unpublish IS a content mutation) carries the invalidation.
205
- await dispatchPerRow(rows, 'afterUpdate');
234
+ // Dispatch the dedicated afterUnpublish event per unpublished row so the
235
+ // public cache (content/feed/nav + AX projections) is invalidated — otherwise
236
+ // an unpublished node keeps serving from stale cache.
237
+ await dispatchPerRow(rows, 'afterUnpublish', auth.user);
206
238
  return jsonOk({ count: rows.length });
207
239
  });
208
240
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bulk-routes.js","sourceRoot":"","sources":["../../src/api/bulk-routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bulk-routes.js","sourceRoot":"","sources":["../../src/api/bulk-routes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"category-routes.d.ts","sourceRoot":"","sources":["../../src/api/category-routes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAoBxD,UAAU,oBAAoB;IAC5B,MAAM,EAAE,UAAU,CAAA;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,YAAY,CAAA;CAC3B;AAwBD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,oBAAoB,GAAG,IAAI,CA2KtF"}
1
+ {"version":3,"file":"category-routes.d.ts","sourceRoot":"","sources":["../../src/api/category-routes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAoBxD,UAAU,oBAAoB;IAC5B,MAAM,EAAE,UAAU,CAAA;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,YAAY,CAAA;CAC3B;AAwBD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,oBAAoB,GAAG,IAAI,CAiLtF"}
@@ -2,7 +2,7 @@ import { z } from 'zod';
2
2
  import { createCategoryHookDispatcher } from '../hooks/dispatch.js';
3
3
  import { jsonOk, jsonError, notFound, unauthorized, forbidden, validationError } from './response.js';
4
4
  import { resolveAuth } from './auth.js';
5
- import { toSiteUuid } from './site-context.js';
5
+ import { toSiteUuid, assertSiteAccess } from './site-context.js';
6
6
  import { hasMinRole, canAccessContent } from '../auth/roles.js';
7
7
  import { listCategories, getCategoryById, createCategory, updateCategory, deleteCategory, assignContentToCategory, removeContentFromCategory, listContentByCategory, buildCategoryTree, } from '../db/category-queries.js';
8
8
  // ─── Zod schemas ──────────────────────────────────────────────────────────────
@@ -73,6 +73,9 @@ export function registerCategoryRoutes(router, ctx) {
73
73
  return validationError(parsed.error.errors.map(e => ({ path: e.path.join('.'), message: e.message })));
74
74
  }
75
75
  const siteId = await toSiteUuid(db, parsed.data.siteId, config);
76
+ const siteDenied = assertSiteAccess(auth.user, siteId);
77
+ if (siteDenied)
78
+ return siteDenied;
76
79
  const createData = {
77
80
  siteId,
78
81
  name: parsed.data.name,
@@ -114,6 +117,9 @@ export function registerCategoryRoutes(router, ctx) {
114
117
  }
115
118
  const url = new URL(req.url);
116
119
  const siteId = await toSiteUuid(db, url.searchParams.get('siteId'), config);
120
+ const siteDenied = assertSiteAccess(auth.user, siteId);
121
+ if (siteDenied)
122
+ return siteDenied;
117
123
  const updateData = {};
118
124
  if (parsed.data.name !== undefined)
119
125
  updateData.name = parsed.data.name;
@@ -140,6 +146,9 @@ export function registerCategoryRoutes(router, ctx) {
140
146
  return forbidden();
141
147
  const url = new URL(req.url);
142
148
  const siteId = await toSiteUuid(db, url.searchParams.get('siteId'), config);
149
+ const siteDenied = assertSiteAccess(auth.user, siteId);
150
+ if (siteDenied)
151
+ return siteDenied;
143
152
  const deleted = await deleteCategory(db, params.id, siteId);
144
153
  if (!deleted)
145
154
  return notFound('Category not found');
@@ -1 +1 @@
1
- {"version":3,"file":"category-routes.js","sourceRoot":"","sources":["../../src/api/category-routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"category-routes.js","sourceRoot":"","sources":["../../src/api/category-routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAKvB,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACrG,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAChE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAC/D,OAAO,EACL,cAAc,EACd,eAAe,EACf,cAAc,EACd,cAAc,EACd,cAAc,EACd,uBAAuB,EACvB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,2BAA2B,CAAA;AAWlC,iFAAiF;AAEjF,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAChC,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACvC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAA;AAEF,MAAM,oBAAoB,GAAG,oBAAoB,CAAC,OAAO,EAAE,CAAA;AAE3D,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAA;AAEF,iFAAiF;AAEjF,MAAM,UAAU,sBAAsB,CAAC,MAAc,EAAE,GAAyB;IAC9E,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,GAAG,CAAA;IACtC,MAAM,aAAa,GAAG,4BAA4B,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;IAEpE,KAAK,UAAU,YAAY,CAAC,GAAY;QACtC,OAAO,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC,CAAA;IACtE,CAAC;IAED,6CAA6C;IAC7C,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACtC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC5B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,EAAE,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAA;QAC3E,MAAM,aAAa,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QACtD,MAAM,QAAQ,GAAG,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAA;QAEnE,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;QACvD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAA;IACrB,CAAC,CAAC,CAAA;IAEF,4DAA4D;IAC5D,2EAA2E;IAC3E,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QAC3C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC5B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,EAAE,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAA;QAE3E,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;QAC7C,OAAO,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;IAEF,iEAAiE;IACjE,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;QAClD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC5B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,EAAE,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAA;QAC3E,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,EAAE,EAAE,MAAM,CAAC,EAAG,EAAE,MAAM,CAAC,CAAA;QACzD,IAAI,CAAC,GAAG;YAAE,OAAO,QAAQ,CAAC,oBAAoB,CAAC,CAAA;QAC/C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;IACpB,CAAC,CAAC,CAAA;IAEF,wDAAwD;IACxD,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACvC,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,CAAA;QACpC,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,YAAY,EAAE,CAAA;QACrC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC;YAAE,OAAO,SAAS,EAAE,CAAA;QAEhE,IAAI,IAAa,CAAA;QACjB,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;QACzB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC,aAAa,EAAE,mBAAmB,EAAE,GAAG,CAAC,CAAA;QAC3D,CAAC;QAED,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QACnD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,eAAe,CACpB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAC/E,CAAA;QACH,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC/D,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACtD,IAAI,UAAU;YAAE,OAAO,UAAU,CAAA;QACjC,MAAM,UAAU,GAAyC;YACvD,MAAM;YACN,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI;YACtB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI;SACvB,CAAA;QACD,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS;YAAE,UAAU,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAA;QAClF,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS;YAAE,UAAU,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAA;QAC3F,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS;YAAE,UAAU,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAA;QACrF,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS;YAAE,UAAU,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAA;QAClF,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,KAAK,SAAS;YAAE,UAAU,CAAC,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAA;QACvG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS;YAAE,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAA;QAEzE,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,EAAE,EAAE,UAAU,CAAC,CAAA;QACpD,MAAM,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;QACxC,OAAO,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAC7B,CAAC,CAAC,CAAA;IAEF,2DAA2D;IAC3D,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;QAClD,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,CAAA;QACpC,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,YAAY,EAAE,CAAA;QACrC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC;YAAE,OAAO,SAAS,EAAE,CAAA;QAEhE,IAAI,IAAa,CAAA;QACjB,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;QACzB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC,aAAa,EAAE,mBAAmB,EAAE,GAAG,CAAC,CAAA;QAC3D,CAAC;QAED,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QACnD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,eAAe,CACpB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAC/E,CAAA;QACH,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC5B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,EAAE,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAA;QAC3E,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACtD,IAAI,UAAU;YAAE,OAAO,UAAU,CAAA;QAEjC,MAAM,UAAU,GAAyC,EAAE,CAAA;QAC3D,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS;YAAE,UAAU,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAA;QACtE,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS;YAAE,UAAU,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAA;QACtE,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS;YAAE,UAAU,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAA;QACrF,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS;YAAE,UAAU,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAA;QAClF,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,KAAK,SAAS;YAAE,UAAU,CAAC,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAA;QAEvG,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,EAAE,EAAE,MAAM,CAAC,EAAG,EAAE,UAAU,EAAE,MAAM,CAAC,CAAA;QACxE,IAAI,CAAC,OAAO;YAAE,OAAO,QAAQ,CAAC,oBAAoB,CAAC,CAAA;QACnD,MAAM,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;QACxC,OAAO,MAAM,CAAC,OAAO,CAAC,CAAA;IACxB,CAAC,CAAC,CAAA;IAEF,8DAA8D;IAC9D,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;QACrD,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,CAAA;QACpC,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,YAAY,EAAE,CAAA;QACrC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC;YAAE,OAAO,SAAS,EAAE,CAAA;QAEhE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC5B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,EAAE,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAA;QAC3E,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACtD,IAAI,UAAU;YAAE,OAAO,UAAU,CAAA;QAEjC,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,EAAE,EAAE,MAAM,CAAC,EAAG,EAAE,MAAM,CAAC,CAAA;QAC5D,IAAI,CAAC,OAAO;YAAE,OAAO,QAAQ,CAAC,oBAAoB,CAAC,CAAA;QACnD,MAAM,aAAa,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAG,EAAE,CAAC,CAAA;QACnD,OAAO,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;IAEF,kEAAkE;IAClE,MAAM,CAAC,GAAG,CAAC,yBAAyB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;QAC3D,MAAM,IAAI,GAAG,MAAM,qBAAqB,CAAC,EAAE,EAAE,MAAM,CAAC,EAAG,CAAC,CAAA;QACxD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAA;IACrB,CAAC,CAAC,CAAA;IAEF,qFAAqF;IACrF,MAAM,CAAC,IAAI,CAAC,mCAAmC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;QACrE,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,CAAA;QACpC,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,YAAY,EAAE,CAAA;QACrC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;YAAE,OAAO,SAAS,EAAE,CAAA;QAElE,IAAI,UAA+B,CAAA;QACnC,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAA;QACzD,IAAI,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC7C,IAAI,IAAa,CAAA;YACjB,IAAI,CAAC;gBACH,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;YACzB,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,SAAS,CAAC,aAAa,EAAE,mBAAmB,EAAE,GAAG,CAAC,CAAA;YAC3D,CAAC;YACD,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;YAC3C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,eAAe,CACpB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAC/E,CAAA;YACH,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS;gBAAE,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAA;QAC/E,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,uBAAuB,CAAC,EAAE,EAAE,MAAM,CAAC,SAAU,EAAE,MAAM,CAAC,EAAG,EAAE,UAAU,CAAC,CAAA;QACxF,OAAO,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACzB,CAAC,CAAC,CAAA;IAEF,yFAAyF;IACzF,MAAM,CAAC,MAAM,CAAC,mCAAmC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;QACvE,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,CAAA;QACpC,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,YAAY,EAAE,CAAA;QACrC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;YAAE,OAAO,SAAS,EAAE,CAAA;QAElE,MAAM,OAAO,GAAG,MAAM,yBAAyB,CAAC,EAAE,EAAE,MAAM,CAAC,SAAU,EAAE,MAAM,CAAC,EAAG,CAAC,CAAA;QAClF,IAAI,CAAC,OAAO;YAAE,OAAO,QAAQ,CAAC,uCAAuC,CAAC,CAAA;QACtE,OAAO,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -1,9 +1,18 @@
1
1
  import type { Router } from './router.js';
2
2
  import type { KywiDb } from '../db/client.js';
3
+ import type { ContentTypeConfig } from '../config/types.js';
4
+ import type { PgTableWithColumns } from 'drizzle-orm/pg-core';
3
5
  interface ChangesetRouteContext {
4
6
  db: KywiDb;
5
7
  authSecret: string;
6
8
  defaultSiteId?: string | undefined;
9
+ /**
10
+ * Config-derived maps used to build the type resolver a publish threads into
11
+ * applyContentSnapshot so custom (side-table) fields round-trip (#63). Optional
12
+ * so existing callers keep base-only behaviour.
13
+ */
14
+ contentTypeMap?: Map<string, ContentTypeConfig>;
15
+ customTableMap?: Map<string, PgTableWithColumns<any>>;
7
16
  /**
8
17
  * Content-cache invalidation callback (the same one workflow/version routes
9
18
  * use). Called for each content node a publish/rollback touches (G-J04a-03).
@@ -1 +1 @@
1
- {"version":3,"file":"changeset-routes.d.ts","sourceRoot":"","sources":["../../src/api/changeset-routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAkB7C,UAAU,qBAAqB;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACnF;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,qBAAqB,GAAG,IAAI,CA2SxF"}
1
+ {"version":3,"file":"changeset-routes.d.ts","sourceRoot":"","sources":["../../src/api/changeset-routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAmB7D,UAAU,qBAAqB;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC;;;;OAIG;IACH,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;IAC/C,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAA;IACrD;;;OAGG;IACH,iBAAiB,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACnF;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,qBAAqB,GAAG,IAAI,CAuTxF"}
@@ -1,3 +1,4 @@
1
+ import { buildChangesetTypeResolver } from '../db/changeset-queries.js';
1
2
  import { resolveAuth } from './auth.js';
2
3
  import { hasMinRole } from '../auth/roles.js';
3
4
  import { jsonOk, jsonError, unauthorized, forbidden, notFound } from './response.js';
@@ -5,7 +6,13 @@ import { createChangeset, getChangeset, listChangesets, updateChangeset, addChan
5
6
  import { createChangesetAuditEntry, listChangesetAudit } from '../db/changeset-audit-queries.js';
6
7
  import { getContentById } from '../db/content-queries.js';
7
8
  export function registerChangesetRoutes(router, ctx) {
8
- const { db, authSecret, defaultSiteId = '' } = ctx;
9
+ const { db, authSecret, defaultSiteId = '', contentTypeMap, customTableMap } = ctx;
10
+ // Resolve a content type → its custom side-table so a publish round-trips
11
+ // custom fields (#63). Undefined when the maps are absent, which keeps the
12
+ // apply base-only. Shared with the scheduler route + handler surface.
13
+ const resolveType = contentTypeMap && customTableMap
14
+ ? buildChangesetTypeResolver(contentTypeMap, customTableMap)
15
+ : undefined;
9
16
  // Read each changeset item's content (siteId/slug are stable across a
10
17
  // publish/rollback) so callers can clear the right cache keys. Reading before
11
18
  // AND after the mutation and merging covers soft-delete transitions in both
@@ -230,7 +237,11 @@ export function registerChangesetRoutes(router, ctx) {
230
237
  // Capture affected content before the publish transaction (a `delete` item
231
238
  // becomes invisible afterwards), publish, then invalidate its cache.
232
239
  const before = await collectItemContent(params.id);
233
- const changeset = await publishChangeset(db, params.id, auth.user.id);
240
+ // Pass the resolver only when configured so base-only callers (and their
241
+ // tests) keep the unchanged 3-argument publishChangeset contract.
242
+ const changeset = resolveType
243
+ ? await publishChangeset(db, params.id, auth.user.id, { resolveType })
244
+ : await publishChangeset(db, params.id, auth.user.id);
234
245
  await createChangesetAuditEntry(db, {
235
246
  changesetId: params.id,
236
247
  siteId: changeset?.siteId ?? defaultSiteId,
@@ -1 +1 @@
1
- {"version":3,"file":"changeset-routes.js","sourceRoot":"","sources":["../../src/api/changeset-routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"changeset-routes.js","sourceRoot":"","sources":["../../src/api/changeset-routes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"comment-routes.d.ts","sourceRoot":"","sources":["../../src/api/comment-routes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAsBxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEtD,UAAU,mBAAmB;IAC3B,MAAM,EAAE,UAAU,CAAA;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,YAAY,CAAA;IAC1B,aAAa,CAAC,EAAE,aAAa,GAAG,SAAS,CAAA;IACzC,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAwBD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,IAAI,CA0TpF"}
1
+ {"version":3,"file":"comment-routes.d.ts","sourceRoot":"","sources":["../../src/api/comment-routes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAsBxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEtD,UAAU,mBAAmB;IAC3B,MAAM,EAAE,UAAU,CAAA;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,YAAY,CAAA;IAC1B,aAAa,CAAC,EAAE,aAAa,GAAG,SAAS,CAAA;IACzC,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAwBD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,IAAI,CA4UpF"}
@@ -1,7 +1,7 @@
1
1
  import { z } from 'zod';
2
2
  import { createCommentHookDispatcher } from '../hooks/dispatch.js';
3
3
  import { resolveAuth } from './auth.js';
4
- import { toSiteUuid } from './site-context.js';
4
+ import { toSiteUuid, assertSiteAccess } from './site-context.js';
5
5
  import { hasMinRole } from '../auth/roles.js';
6
6
  import { listComments, listSiteComments, getCommentById, createComment, updateComment, updateCommentStatus, deleteComment, flagComment, unflagComment, } from '../db/comment-queries.js';
7
7
  import { isSpam } from '../comments/spam-filter.js';
@@ -184,6 +184,9 @@ export function registerCommentRoutes(router, ctx) {
184
184
  const siteId = await toSiteUuid(db, url.searchParams.get('siteId'), ctx.config);
185
185
  if (!siteId)
186
186
  return jsonError('BAD_REQUEST', 'No site ID available', 400);
187
+ const siteDenied = assertSiteAccess(auth.user, siteId);
188
+ if (siteDenied)
189
+ return siteDenied;
187
190
  const comments = await listSiteComments(db, siteId, statusParam);
188
191
  return jsonOk(comments);
189
192
  });
@@ -200,6 +203,11 @@ export function registerCommentRoutes(router, ctx) {
200
203
  return unauthorized();
201
204
  if (!hasMinRole(auth.user.role, 'editor'))
202
205
  return forbidden();
206
+ // Elevated (moderation) read of a non-approved comment — confine to the
207
+ // caller's sites. Approved comments remain a fully public read.
208
+ const siteDenied = assertSiteAccess(auth.user, siteId);
209
+ if (siteDenied)
210
+ return siteDenied;
203
211
  }
204
212
  return jsonOk(comment);
205
213
  });
@@ -209,6 +217,9 @@ export function registerCommentRoutes(router, ctx) {
209
217
  if (!auth.user)
210
218
  return unauthorized();
211
219
  const siteId = await toSiteUuid(db, new URL(req.url).searchParams.get('siteId'), ctx.config);
220
+ const siteDenied = assertSiteAccess(auth.user, siteId);
221
+ if (siteDenied)
222
+ return siteDenied;
212
223
  const comment = await getCommentById(db, params.id, siteId);
213
224
  if (!comment)
214
225
  return notFound('Comment not found');
@@ -248,6 +259,9 @@ export function registerCommentRoutes(router, ctx) {
248
259
  if (!hasMinRole(auth.user.role, 'editor'))
249
260
  return forbidden();
250
261
  const siteId = await toSiteUuid(db, new URL(req.url).searchParams.get('siteId'), ctx.config);
262
+ const siteDenied = assertSiteAccess(auth.user, siteId);
263
+ if (siteDenied)
264
+ return siteDenied;
251
265
  const updated = await updateCommentStatus(db, params.id, 'approved', siteId);
252
266
  if (!updated)
253
267
  return notFound('Comment not found');
@@ -262,6 +276,9 @@ export function registerCommentRoutes(router, ctx) {
262
276
  if (!hasMinRole(auth.user.role, 'editor'))
263
277
  return forbidden();
264
278
  const siteId = await toSiteUuid(db, new URL(req.url).searchParams.get('siteId'), ctx.config);
279
+ const siteDenied = assertSiteAccess(auth.user, siteId);
280
+ if (siteDenied)
281
+ return siteDenied;
265
282
  const updated = await updateCommentStatus(db, params.id, 'spam', siteId);
266
283
  if (!updated)
267
284
  return notFound('Comment not found');
@@ -274,6 +291,9 @@ export function registerCommentRoutes(router, ctx) {
274
291
  if (!auth.user)
275
292
  return unauthorized();
276
293
  const siteId = await toSiteUuid(db, new URL(req.url).searchParams.get('siteId'), ctx.config);
294
+ const siteDenied = assertSiteAccess(auth.user, siteId);
295
+ if (siteDenied)
296
+ return siteDenied;
277
297
  const flagged = await flagComment(db, params.id, siteId);
278
298
  if (!flagged)
279
299
  return notFound('Comment not found');
@@ -287,6 +307,9 @@ export function registerCommentRoutes(router, ctx) {
287
307
  if (!hasMinRole(auth.user.role, 'editor'))
288
308
  return forbidden();
289
309
  const siteId = await toSiteUuid(db, new URL(req.url).searchParams.get('siteId'), ctx.config);
310
+ const siteDenied = assertSiteAccess(auth.user, siteId);
311
+ if (siteDenied)
312
+ return siteDenied;
290
313
  const unflagged = await unflagComment(db, params.id, siteId);
291
314
  if (!unflagged)
292
315
  return notFound('Comment not found');
@@ -300,6 +323,9 @@ export function registerCommentRoutes(router, ctx) {
300
323
  if (!hasMinRole(auth.user.role, 'editor'))
301
324
  return forbidden();
302
325
  const siteId = await toSiteUuid(db, new URL(req.url).searchParams.get('siteId'), ctx.config);
326
+ const siteDenied = assertSiteAccess(auth.user, siteId);
327
+ if (siteDenied)
328
+ return siteDenied;
303
329
  const deleted = await deleteComment(db, params.id, siteId);
304
330
  if (!deleted)
305
331
  return notFound('Comment not found');