@ketvietlab/ketjs 0.1.2 → 0.1.3

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 (299) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +8 -2
  3. package/dist/agent/capabilities.d.ts +1 -3
  4. package/dist/agent/capabilities.d.ts.map +1 -1
  5. package/dist/agent/capabilities.js +10 -1
  6. package/dist/agent/capabilities.js.map +1 -1
  7. package/dist/agent/permissions.d.ts +43 -1
  8. package/dist/agent/permissions.d.ts.map +1 -1
  9. package/dist/agent/permissions.js +50 -2
  10. package/dist/agent/permissions.js.map +1 -1
  11. package/dist/cli.js +246 -97
  12. package/dist/cli.js.map +1 -1
  13. package/dist/codegen/dts.d.ts.map +1 -1
  14. package/dist/codegen/dts.js +1 -0
  15. package/dist/codegen/dts.js.map +1 -1
  16. package/dist/data/changeset.d.ts +12 -0
  17. package/dist/data/changeset.d.ts.map +1 -1
  18. package/dist/data/changeset.js +73 -17
  19. package/dist/data/changeset.js.map +1 -1
  20. package/dist/data/expr.d.ts +16 -0
  21. package/dist/data/expr.d.ts.map +1 -1
  22. package/dist/data/expr.js +33 -5
  23. package/dist/data/expr.js.map +1 -1
  24. package/dist/data/fleet.d.ts +41 -1
  25. package/dist/data/fleet.d.ts.map +1 -1
  26. package/dist/data/fleet.js +100 -11
  27. package/dist/data/fleet.js.map +1 -1
  28. package/dist/data/migrate.d.ts +20 -0
  29. package/dist/data/migrate.d.ts.map +1 -1
  30. package/dist/data/migrate.js +86 -3
  31. package/dist/data/migrate.js.map +1 -1
  32. package/dist/data/physical.d.ts +5 -0
  33. package/dist/data/physical.d.ts.map +1 -0
  34. package/dist/data/physical.js +196 -0
  35. package/dist/data/physical.js.map +1 -0
  36. package/dist/data/pool.d.ts +2 -1
  37. package/dist/data/pool.d.ts.map +1 -1
  38. package/dist/data/pool.js +159 -31
  39. package/dist/data/pool.js.map +1 -1
  40. package/dist/data/query.d.ts +10 -1
  41. package/dist/data/query.d.ts.map +1 -1
  42. package/dist/data/query.js +136 -27
  43. package/dist/data/query.js.map +1 -1
  44. package/dist/data/sqlite.d.ts.map +1 -1
  45. package/dist/data/sqlite.js +350 -52
  46. package/dist/data/sqlite.js.map +1 -1
  47. package/dist/data/time.d.ts +13 -0
  48. package/dist/data/time.d.ts.map +1 -1
  49. package/dist/data/time.js +61 -17
  50. package/dist/data/time.js.map +1 -1
  51. package/dist/index.d.ts +43 -22
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +32 -16
  54. package/dist/index.js.map +1 -1
  55. package/dist/kernel/audit.d.ts +27 -0
  56. package/dist/kernel/audit.d.ts.map +1 -0
  57. package/dist/kernel/audit.js +67 -0
  58. package/dist/kernel/audit.js.map +1 -0
  59. package/dist/kernel/classification.d.ts +26 -0
  60. package/dist/kernel/classification.d.ts.map +1 -0
  61. package/dist/kernel/classification.js +73 -0
  62. package/dist/kernel/classification.js.map +1 -0
  63. package/dist/kernel/compose.d.ts +6 -2
  64. package/dist/kernel/compose.d.ts.map +1 -1
  65. package/dist/kernel/compose.js +269 -15
  66. package/dist/kernel/compose.js.map +1 -1
  67. package/dist/kernel/define.d.ts +2 -3
  68. package/dist/kernel/define.d.ts.map +1 -1
  69. package/dist/kernel/define.js +22 -12
  70. package/dist/kernel/define.js.map +1 -1
  71. package/dist/kernel/diff.d.ts.map +1 -1
  72. package/dist/kernel/diff.js +28 -4
  73. package/dist/kernel/diff.js.map +1 -1
  74. package/dist/kernel/graph.js +1 -1
  75. package/dist/kernel/graph.js.map +1 -1
  76. package/dist/kernel/i18n.d.ts +10 -1
  77. package/dist/kernel/i18n.d.ts.map +1 -1
  78. package/dist/kernel/i18n.js +34 -1
  79. package/dist/kernel/i18n.js.map +1 -1
  80. package/dist/kernel/layout.d.ts +97 -0
  81. package/dist/kernel/layout.d.ts.map +1 -1
  82. package/dist/kernel/layout.js +294 -12
  83. package/dist/kernel/layout.js.map +1 -1
  84. package/dist/kernel/menu.d.ts +33 -2
  85. package/dist/kernel/menu.d.ts.map +1 -1
  86. package/dist/kernel/menu.js +99 -7
  87. package/dist/kernel/menu.js.map +1 -1
  88. package/dist/kernel/modules.d.ts +3 -3
  89. package/dist/kernel/modules.d.ts.map +1 -1
  90. package/dist/kernel/modules.js +21 -21
  91. package/dist/kernel/modules.js.map +1 -1
  92. package/dist/kernel/permissions.d.ts +10 -0
  93. package/dist/kernel/permissions.d.ts.map +1 -0
  94. package/dist/kernel/permissions.js +365 -0
  95. package/dist/kernel/permissions.js.map +1 -0
  96. package/dist/kernel/schedule.d.ts +23 -0
  97. package/dist/kernel/schedule.d.ts.map +1 -0
  98. package/dist/kernel/schedule.js +83 -0
  99. package/dist/kernel/schedule.js.map +1 -0
  100. package/dist/kernel/types.d.ts.map +1 -1
  101. package/dist/kernel/types.js +5 -4
  102. package/dist/kernel/types.js.map +1 -1
  103. package/dist/kernel/workspace.d.ts +92 -14
  104. package/dist/kernel/workspace.d.ts.map +1 -1
  105. package/dist/kernel/workspace.js +128 -49
  106. package/dist/kernel/workspace.js.map +1 -1
  107. package/dist/pdf/assets/Inter-Bold.ttf +0 -0
  108. package/dist/pdf/assets/Inter-Regular.ttf +0 -0
  109. package/dist/pdf/assets/Inter-SemiBold.ttf +0 -0
  110. package/dist/pdf/assets/LICENSE.txt +92 -0
  111. package/dist/pdf/font.d.ts +10 -0
  112. package/dist/pdf/font.d.ts.map +1 -0
  113. package/dist/pdf/font.js +83 -0
  114. package/dist/pdf/font.js.map +1 -0
  115. package/dist/pdf/image.d.ts +8 -0
  116. package/dist/pdf/image.d.ts.map +1 -0
  117. package/dist/pdf/image.js +94 -0
  118. package/dist/pdf/image.js.map +1 -0
  119. package/dist/pdf/index.d.ts +15 -0
  120. package/dist/pdf/index.d.ts.map +1 -0
  121. package/dist/pdf/index.js +17 -0
  122. package/dist/pdf/index.js.map +1 -0
  123. package/dist/pdf/markup.d.ts +19 -0
  124. package/dist/pdf/markup.d.ts.map +1 -0
  125. package/dist/pdf/markup.js +146 -0
  126. package/dist/pdf/markup.js.map +1 -0
  127. package/dist/pdf/render.d.ts +14 -0
  128. package/dist/pdf/render.d.ts.map +1 -0
  129. package/dist/pdf/render.js +387 -0
  130. package/dist/pdf/render.js.map +1 -0
  131. package/dist/scaffold/index.js +6 -6
  132. package/dist/scaffold/index.js.map +1 -1
  133. package/dist/scaffold/templates/{app.test.ts.tmpl → deployment.test.ts.tmpl} +3 -3
  134. package/dist/scaffold/templates/ket.workspace.ts.tmpl +4 -6
  135. package/dist/scaffold/templates/module.ts.tmpl +1 -4
  136. package/dist/server/assets.d.ts +23 -0
  137. package/dist/server/assets.d.ts.map +1 -0
  138. package/dist/server/assets.js +97 -0
  139. package/dist/server/assets.js.map +1 -0
  140. package/dist/server/boot.d.ts +157 -38
  141. package/dist/server/boot.d.ts.map +1 -1
  142. package/dist/server/boot.js +360 -138
  143. package/dist/server/boot.js.map +1 -1
  144. package/dist/server/config.d.ts +30 -10
  145. package/dist/server/config.d.ts.map +1 -1
  146. package/dist/server/config.js +73 -17
  147. package/dist/server/config.js.map +1 -1
  148. package/dist/server/ctx.d.ts +10 -0
  149. package/dist/server/ctx.d.ts.map +1 -1
  150. package/dist/server/ctx.js +266 -48
  151. package/dist/server/ctx.js.map +1 -1
  152. package/dist/server/development.d.ts +10 -0
  153. package/dist/server/development.d.ts.map +1 -0
  154. package/dist/server/development.js +15 -0
  155. package/dist/server/development.js.map +1 -0
  156. package/dist/server/fn.d.ts +22 -3
  157. package/dist/server/fn.d.ts.map +1 -1
  158. package/dist/server/fn.js +116 -32
  159. package/dist/server/fn.js.map +1 -1
  160. package/dist/server/form.d.ts +33 -0
  161. package/dist/server/form.d.ts.map +1 -0
  162. package/dist/server/form.js +47 -0
  163. package/dist/server/form.js.map +1 -0
  164. package/dist/server/http.d.ts +55 -3
  165. package/dist/server/http.d.ts.map +1 -1
  166. package/dist/server/http.js +306 -22
  167. package/dist/server/http.js.map +1 -1
  168. package/dist/server/idem.d.ts +3 -2
  169. package/dist/server/idem.d.ts.map +1 -1
  170. package/dist/server/idem.js +12 -4
  171. package/dist/server/idem.js.map +1 -1
  172. package/dist/server/jobs.js +1 -1
  173. package/dist/server/jobs.js.map +1 -1
  174. package/dist/server/log/combinators.d.ts +42 -0
  175. package/dist/server/log/combinators.d.ts.map +1 -0
  176. package/dist/server/log/combinators.js +270 -0
  177. package/dist/server/log/combinators.js.map +1 -0
  178. package/dist/server/log/console.d.ts +12 -0
  179. package/dist/server/log/console.d.ts.map +1 -0
  180. package/dist/server/log/console.js +96 -0
  181. package/dist/server/log/console.js.map +1 -0
  182. package/dist/server/log/file.d.ts +11 -0
  183. package/dist/server/log/file.d.ts.map +1 -0
  184. package/dist/server/log/file.js +61 -0
  185. package/dist/server/log/file.js.map +1 -0
  186. package/dist/server/log/index.d.ts +23 -0
  187. package/dist/server/log/index.d.ts.map +1 -0
  188. package/dist/server/log/index.js +45 -0
  189. package/dist/server/log/index.js.map +1 -0
  190. package/dist/server/log/logger.d.ts +53 -0
  191. package/dist/server/log/logger.d.ts.map +1 -0
  192. package/dist/server/log/logger.js +94 -0
  193. package/dist/server/log/logger.js.map +1 -0
  194. package/dist/server/log/memory.d.ts +11 -0
  195. package/dist/server/log/memory.d.ts.map +1 -0
  196. package/dist/server/log/memory.js +25 -0
  197. package/dist/server/log/memory.js.map +1 -0
  198. package/dist/server/log/types.d.ts +112 -0
  199. package/dist/server/log/types.d.ts.map +1 -0
  200. package/dist/server/log/types.js +58 -0
  201. package/dist/server/log/types.js.map +1 -0
  202. package/dist/server/policy.d.ts +29 -0
  203. package/dist/server/policy.d.ts.map +1 -0
  204. package/dist/server/policy.js +29 -0
  205. package/dist/server/policy.js.map +1 -0
  206. package/dist/server/queue.d.ts +1 -1
  207. package/dist/server/queue.d.ts.map +1 -1
  208. package/dist/server/queue.js.map +1 -1
  209. package/dist/server/ratelimit.d.ts +48 -0
  210. package/dist/server/ratelimit.d.ts.map +1 -0
  211. package/dist/server/ratelimit.js +102 -0
  212. package/dist/server/ratelimit.js.map +1 -0
  213. package/dist/server/respond.d.ts.map +1 -1
  214. package/dist/server/respond.js +16 -1
  215. package/dist/server/respond.js.map +1 -1
  216. package/dist/server/runtime.d.ts +18 -3
  217. package/dist/server/runtime.d.ts.map +1 -1
  218. package/dist/server/runtime.js +32 -2
  219. package/dist/server/runtime.js.map +1 -1
  220. package/dist/server/schedule.d.ts +18 -0
  221. package/dist/server/schedule.d.ts.map +1 -0
  222. package/dist/server/schedule.js +70 -0
  223. package/dist/server/schedule.js.map +1 -0
  224. package/dist/server/sequence.d.ts +42 -0
  225. package/dist/server/sequence.d.ts.map +1 -0
  226. package/dist/server/sequence.js +97 -0
  227. package/dist/server/sequence.js.map +1 -0
  228. package/dist/server/session.d.ts +21 -0
  229. package/dist/server/session.d.ts.map +1 -1
  230. package/dist/server/session.js +84 -10
  231. package/dist/server/session.js.map +1 -1
  232. package/dist/server/sessionstore.d.ts +3 -1
  233. package/dist/server/sessionstore.d.ts.map +1 -1
  234. package/dist/server/sessionstore.js +7 -3
  235. package/dist/server/sessionstore.js.map +1 -1
  236. package/dist/server/storage/index.d.ts +1 -1
  237. package/dist/server/storage/index.d.ts.map +1 -1
  238. package/dist/server/storage/index.js +61 -1
  239. package/dist/server/storage/index.js.map +1 -1
  240. package/dist/server/storage/types.d.ts +8 -0
  241. package/dist/server/storage/types.d.ts.map +1 -1
  242. package/dist/server/storage/types.js +58 -0
  243. package/dist/server/storage/types.js.map +1 -1
  244. package/dist/server/tenants.d.ts +20 -18
  245. package/dist/server/tenants.d.ts.map +1 -1
  246. package/dist/server/tenants.js +133 -84
  247. package/dist/server/tenants.js.map +1 -1
  248. package/dist/server/transport/types.js +2 -2
  249. package/dist/server/transport/types.js.map +1 -1
  250. package/dist/server/worker.d.ts +19 -3
  251. package/dist/server/worker.d.ts.map +1 -1
  252. package/dist/server/worker.js +168 -21
  253. package/dist/server/worker.js.map +1 -1
  254. package/dist/testing.d.ts +26 -10
  255. package/dist/testing.d.ts.map +1 -1
  256. package/dist/testing.js +41 -14
  257. package/dist/testing.js.map +1 -1
  258. package/dist/theme/contracts.d.ts +14 -1
  259. package/dist/theme/contracts.d.ts.map +1 -1
  260. package/dist/theme/contracts.js +35 -6
  261. package/dist/theme/contracts.js.map +1 -1
  262. package/dist/theme/index.d.ts +1 -1
  263. package/dist/theme/index.d.ts.map +1 -1
  264. package/dist/theme/index.js +1 -1
  265. package/dist/theme/index.js.map +1 -1
  266. package/dist/theme/joint-runtime.d.ts +33 -0
  267. package/dist/theme/joint-runtime.d.ts.map +1 -0
  268. package/dist/theme/joint-runtime.js +121 -0
  269. package/dist/theme/joint-runtime.js.map +1 -0
  270. package/dist/theme/joints.d.ts.map +1 -1
  271. package/dist/theme/joints.js +15 -97
  272. package/dist/theme/joints.js.map +1 -1
  273. package/dist/theme/ktl/compile.d.ts +4 -0
  274. package/dist/theme/ktl/compile.d.ts.map +1 -1
  275. package/dist/theme/ktl/compile.js +54 -1
  276. package/dist/theme/ktl/compile.js.map +1 -1
  277. package/dist/theme/ktl/parser.d.ts +4 -0
  278. package/dist/theme/ktl/parser.d.ts.map +1 -1
  279. package/dist/theme/ktl/parser.js +8 -0
  280. package/dist/theme/ktl/parser.js.map +1 -1
  281. package/dist/theme/render.d.ts +8 -0
  282. package/dist/theme/render.d.ts.map +1 -1
  283. package/dist/theme/render.js +88 -118
  284. package/dist/theme/render.js.map +1 -1
  285. package/dist/theme/tokens.d.ts +6 -0
  286. package/dist/theme/tokens.d.ts.map +1 -1
  287. package/dist/theme/tokens.js +6 -0
  288. package/dist/theme/tokens.js.map +1 -1
  289. package/dist/theme/viewmodel.d.ts +24 -0
  290. package/dist/theme/viewmodel.d.ts.map +1 -1
  291. package/dist/theme/viewmodel.js +75 -6
  292. package/dist/theme/viewmodel.js.map +1 -1
  293. package/dist/types.d.ts +304 -56
  294. package/dist/types.d.ts.map +1 -1
  295. package/package.json +6 -2
  296. package/dist/kernel/apps.d.ts +0 -43
  297. package/dist/kernel/apps.d.ts.map +0 -1
  298. package/dist/kernel/apps.js +0 -234
  299. package/dist/kernel/apps.js.map +0 -1
@@ -35,11 +35,87 @@ export function parseCookies(header) {
35
35
  }
36
36
  return out;
37
37
  }
38
+ /**
39
+ * Turn session data into a detached request scope.
40
+ *
41
+ * This stays adapter-free so a pooled tenant facade can keep the policy while the
42
+ * manager and its adapter are evicted. Arrays are copied on both paths: callers
43
+ * may narrow a request scope without mutating the stored record or deployment's
44
+ * anonymous policy.
45
+ */
46
+ export function scopeForSession(record, policy = {}) {
47
+ const accepted = record !== null && (policy.tenant === undefined || (record.tenant ?? null) === policy.tenant);
48
+ const scope = accepted
49
+ ? {
50
+ company: record.company,
51
+ companies: record.companies,
52
+ branch: record.branch,
53
+ branches: record.branches,
54
+ }
55
+ : (policy.anonymous ?? null);
56
+ if (!scope)
57
+ return null;
58
+ return {
59
+ company: scope.company,
60
+ ...(scope.companies === undefined
61
+ ? {}
62
+ : { companies: scope.companies === null ? null : [...scope.companies] }),
63
+ ...(scope.branch === undefined ? {} : { branch: scope.branch }),
64
+ ...(scope.branches === undefined
65
+ ? {}
66
+ : { branches: scope.branches === null ? null : [...scope.branches] }),
67
+ };
68
+ }
38
69
  export async function createSessions(o = {}) {
39
70
  const now = o.now ?? (() => Date.now());
40
- const store = o.store ?? memorySessionStore({ now });
71
+ const backingStore = o.store ?? memorySessionStore({ now });
72
+ const belongs = (record) => record !== null && (record.tenant ?? null) === o.tenant;
73
+ // A shared store is still exposed through Sessions.store for administrative
74
+ // flows. Scope the store itself, not only cookie reads, so logout/reconciliation
75
+ // in one tenant cannot revoke or mutate another tenant's record.
76
+ const store = o.tenant === undefined
77
+ ? backingStore
78
+ : {
79
+ name: backingStore.name,
80
+ init: () => backingStore.init(),
81
+ create: (record) => backingStore.create({ ...record, tenant: o.tenant }),
82
+ async read(id) {
83
+ const record = await backingStore.read(id);
84
+ return belongs(record) ? record : null;
85
+ },
86
+ async touch(id, expiresAt) {
87
+ if (!belongs(await backingStore.read(id)))
88
+ return null;
89
+ return backingStore.touch(id, expiresAt);
90
+ },
91
+ async updateContext(id, expectedRevision, context) {
92
+ if (!belongs(await backingStore.read(id)))
93
+ return null;
94
+ return backingStore.updateContext(id, expectedRevision, context);
95
+ },
96
+ async destroy(id) {
97
+ if (belongs(await backingStore.read(id)))
98
+ await backingStore.destroy(id);
99
+ },
100
+ async listUser(userId) {
101
+ return (await backingStore.listUser(userId)).filter(belongs);
102
+ },
103
+ async destroyUser(userId) {
104
+ const records = (await backingStore.listUser(userId)).filter(belongs);
105
+ for (const record of records)
106
+ await backingStore.destroy(record.id);
107
+ return records.length;
108
+ },
109
+ async destroyUserExcept(userId, keepId) {
110
+ const records = (await backingStore.listUser(userId)).filter((record) => belongs(record) && record.id !== keepId);
111
+ for (const record of records)
112
+ await backingStore.destroy(record.id);
113
+ return records.length;
114
+ },
115
+ sweep: (at) => backingStore.sweep(at),
116
+ };
41
117
  await store.init();
42
- const ephemeralSecret = !o.secret;
118
+ const ephemeralSecret = o.ephemeralSecret ?? !o.secret;
43
119
  const secret = o.secret ?? randomBytes(32).toString('base64url');
44
120
  const idleTtl = o.idleTtlMs ?? DEFAULTS.idleTtlMs;
45
121
  const absoluteTtl = o.absoluteTtlMs ?? DEFAULTS.absoluteTtlMs;
@@ -59,6 +135,7 @@ export async function createSessions(o = {}) {
59
135
  };
60
136
  return {
61
137
  store,
138
+ ...(o.tenant === undefined ? {} : { tenant: o.tenant }),
62
139
  ephemeralSecret,
63
140
  async start({ userId, companies, company, branch, branches, securityVersion }) {
64
141
  if (!companies.length) {
@@ -88,6 +165,7 @@ export async function createSessions(o = {}) {
88
165
  const at = now();
89
166
  const record = {
90
167
  id: randomBytes(32).toString('base64url'),
168
+ tenant: o.tenant ?? null,
91
169
  userId,
92
170
  companies: [...companies],
93
171
  company: active,
@@ -154,14 +232,10 @@ export async function createSessions(o = {}) {
154
232
  return cookie('', 0);
155
233
  },
156
234
  scopeOf(record) {
157
- if (!record)
158
- return o.anonymous ?? null;
159
- return {
160
- company: record.company,
161
- companies: record.companies,
162
- branch: record.branch,
163
- branches: record.branches,
164
- };
235
+ return scopeForSession(record, {
236
+ ...(o.tenant === undefined ? {} : { tenant: o.tenant }),
237
+ ...(o.anonymous === undefined ? {} : { anonymous: o.anonymous }),
238
+ });
165
239
  },
166
240
  sweep() {
167
241
  return store.sweep(now());
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../../../../packages/ketjs/src/server/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../../../../packages/ketjs/src/server/session.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,8 @@ import type { Adapter } from '../types.ts';
2
2
  /** What a session carries. Everything a request needs to know who it is. */
3
3
  export type SessionRecord = {
4
4
  id: string;
5
+ /** Tenant binding for a shared session store. Null/absent means unbound. */
6
+ tenant?: string | null;
5
7
  userId: string;
6
8
  /** Companies this session may read — becomes scope.companies (D32). */
7
9
  companies: string[];
@@ -42,7 +44,7 @@ export declare function memorySessionStore(o?: {
42
44
  now?: () => number;
43
45
  }): SessionStore;
44
46
  /**
45
- * One row per session, in whatever database the app already has.
47
+ * One row per session, in whatever database the deployment already has.
46
48
  *
47
49
  * This is the store that makes several pods work at all, and it needs no extra
48
50
  * infrastructure to do it — which is the point. Reach for Redis when the read
@@ -1 +1 @@
1
- {"version":3,"file":"sessionstore.d.ts","sourceRoot":"","sources":["../../../../../packages/ketjs/src/server/sessionstore.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAE1C,4EAA4E;AAC5E,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,uEAAuE;IACvE,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,2EAA2E;IAC3E,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,2EAA2E;IAC3E,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IACzB,sEAAsE;IACtE,eAAe,EAAE,MAAM,CAAA;IACvB,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACrB,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5C,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAA;IAC/C,qFAAqF;IACrF,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAC5D,oFAAoF;IACpF,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAA;IAC3G,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAClC,oDAAoD;IACpD,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAA;IAClD,kFAAkF;IAClF,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAC5C,8EAA8E;IAC9E,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAClE,qDAAqD;IACrD,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;CACpC,CAAA;AAED,MAAM,MAAM,cAAc,GAAG,IAAI,CAC/B,aAAa,EACb,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,iBAAiB,CACpE,CAAA;AAID,wBAAgB,kBAAkB,CAAC,CAAC,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CAAO,GAAG,YAAY,CA4E/E;AAmBD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CAAO,GAAG,YAAY,CAyI7F"}
1
+ {"version":3,"file":"sessionstore.d.ts","sourceRoot":"","sources":["../../../../../packages/ketjs/src/server/sessionstore.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAE1C,4EAA4E;AAC5E,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,4EAA4E;IAC5E,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,uEAAuE;IACvE,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,2EAA2E;IAC3E,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,2EAA2E;IAC3E,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IACzB,sEAAsE;IACtE,eAAe,EAAE,MAAM,CAAA;IACvB,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACrB,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5C,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAA;IAC/C,qFAAqF;IACrF,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAC5D,oFAAoF;IACpF,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAA;IAC3G,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAClC,oDAAoD;IACpD,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAA;IAClD,kFAAkF;IAClF,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAC5C,8EAA8E;IAC9E,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAClE,qDAAqD;IACrD,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;CACpC,CAAA;AAED,MAAM,MAAM,cAAc,GAAG,IAAI,CAC/B,aAAa,EACb,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,iBAAiB,CACpE,CAAA;AAID,wBAAgB,kBAAkB,CAAC,CAAC,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CAAO,GAAG,YAAY,CA4E/E;AAoBD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CAAO,GAAG,YAAY,CA4I7F"}
@@ -94,6 +94,7 @@ export function memorySessionStore(o = {}) {
94
94
  const DDL = `
95
95
  CREATE TABLE IF NOT EXISTS ket_session (
96
96
  id TEXT PRIMARY KEY,
97
+ tenant TEXT,
97
98
  user_id TEXT NOT NULL,
98
99
  companies TEXT NOT NULL,
99
100
  company TEXT,
@@ -108,7 +109,7 @@ CREATE INDEX IF NOT EXISTS ket_session_user ON ket_session (user_id);
108
109
  CREATE INDEX IF NOT EXISTS ket_session_expiry ON ket_session (expires_at);
109
110
  `;
110
111
  /**
111
- * One row per session, in whatever database the app already has.
112
+ * One row per session, in whatever database the deployment already has.
112
113
  *
113
114
  * This is the store that makes several pods work at all, and it needs no extra
114
115
  * infrastructure to do it — which is the point. Reach for Redis when the read
@@ -122,6 +123,7 @@ export function dbSessionStore(adapter, o = {}) {
122
123
  const p = (n) => (pg ? `$${n}` : '?');
123
124
  const decode = (row) => ({
124
125
  id: String(row.id),
126
+ tenant: row.tenant === null || row.tenant === undefined ? null : String(row.tenant),
125
127
  userId: String(row.user_id),
126
128
  companies: JSON.parse(String(row.companies)),
127
129
  company: row.company === null || row.company === undefined ? null : String(row.company),
@@ -140,6 +142,7 @@ export function dbSessionStore(adapter, o = {}) {
140
142
  await adapter.exec(DDL);
141
143
  const columns = (await adapter.introspect()).ket_session ?? {};
142
144
  for (const [name, sql] of [
145
+ ['tenant', 'TEXT'],
143
146
  ['branch', 'TEXT'],
144
147
  ['security_version', 'INTEGER NOT NULL DEFAULT 0'],
145
148
  ['revision', 'INTEGER NOT NULL DEFAULT 0'],
@@ -151,9 +154,10 @@ export function dbSessionStore(adapter, o = {}) {
151
154
  },
152
155
  async create(r) {
153
156
  await adapter.run(`INSERT INTO ket_session
154
- (id, user_id, companies, company, branch, branches, security_version, revision, created_at, expires_at)
155
- VALUES (${p(1)}, ${p(2)}, ${p(3)}, ${p(4)}, ${p(5)}, ${p(6)}, ${p(7)}, ${p(8)}, ${p(9)}, ${p(10)})`, [
157
+ (id, tenant, user_id, companies, company, branch, branches, security_version, revision, created_at, expires_at)
158
+ VALUES (${p(1)}, ${p(2)}, ${p(3)}, ${p(4)}, ${p(5)}, ${p(6)}, ${p(7)}, ${p(8)}, ${p(9)}, ${p(10)}, ${p(11)})`, [
156
159
  r.id,
160
+ r.tenant ?? null,
157
161
  r.userId,
158
162
  JSON.stringify(r.companies),
159
163
  r.company,
@@ -1 +1 @@
1
- {"version":3,"file":"sessionstore.js","sourceRoot":"","sources":["../../../../../../packages/ketjs/src/server/sessionstore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sessionstore.js","sourceRoot":"","sources":["../../../../../../packages/ketjs/src/server/sessionstore.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import type { Storage } from './types.ts';
3
3
  export declare function storageFromConfig(config: RuntimeConfig): Storage;
4
4
  export { localStorage } from './local.ts';
5
5
  export { s3Storage } from './s3.ts';
6
- export { namespacedStorage, effectStorage } from './types.ts';
6
+ export { namespacedStorage, effectStorage, withPublicStorage } from './types.ts';
7
7
  export type { Storage, Stored, OpenStorage, StorageEffect } from './types.ts';
8
8
  export type { S3StorageOptions } from './s3.ts';
9
9
  export { signRequest, presignUrl, sha256 } from './sigv4.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/ketjs/src/server/storage/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAGjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEzC,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAqBhE;AAED,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC7D,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC7E,YAAY,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAC5D,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/ketjs/src/server/storage/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAGjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAGzC,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CA0DhE;AAyBD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAChF,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC7E,YAAY,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAC5D,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA"}
@@ -1,7 +1,67 @@
1
+ import { resolve, sep } from 'node:path';
1
2
  import { KetError } from '../../kernel/errors.js';
2
3
  import { localStorage } from './local.js';
3
4
  import { s3Storage } from './s3.js';
5
+ import { withPublicStorage } from './types.js';
4
6
  export function storageFromConfig(config) {
7
+ const privateStorage = privateFromConfig(config);
8
+ const publicConfig = config.publicStorage;
9
+ if (!publicConfig)
10
+ return privateStorage;
11
+ let publicStorage;
12
+ if (publicConfig.kind === 'local') {
13
+ if (!publicConfig.dir)
14
+ throw new KetError({
15
+ code: 'E_STORAGE_CONFIG',
16
+ message: 'public storage is missing KET_STORAGE_PUBLIC_DIR',
17
+ });
18
+ if (config.storageKind === 'local') {
19
+ const a = resolve(config.storageDir);
20
+ const b = resolve(publicConfig.dir);
21
+ const beneath = (parent, child) => child.startsWith(parent.endsWith(sep) ? parent : parent + sep);
22
+ if (a === b || beneath(a, b) || beneath(b, a))
23
+ throw new KetError({
24
+ code: 'E_STORAGE_CONFIG',
25
+ message: 'private and public storage directories must not overlap',
26
+ });
27
+ }
28
+ publicStorage = localStorage({ dir: publicConfig.dir });
29
+ }
30
+ else {
31
+ const endpoint = publicConfig.endpoint ?? config.s3Endpoint;
32
+ const missing = [
33
+ ['KET_S3_PUBLIC_ENDPOINT', endpoint],
34
+ ['KET_S3_PUBLIC_BUCKET', publicConfig.bucket],
35
+ ['KET_S3_PUBLIC_KEY', publicConfig.accessKeyId],
36
+ ['KET_S3_PUBLIC_SECRET', publicConfig.secretAccessKey],
37
+ ].filter(([, value]) => !value);
38
+ if (missing.length)
39
+ throw new KetError({
40
+ code: 'E_STORAGE_CONFIG',
41
+ message: `public S3 storage is missing ${missing.map(([name]) => name).join(', ')}`,
42
+ });
43
+ // The S3 adapter replaces the URL path when addressing objects, so paths,
44
+ // fragments and query strings cannot make two buckets distinct.
45
+ const endpointId = (value) => new URL(value).origin;
46
+ if (config.storageKind === 's3' &&
47
+ publicConfig.bucket === config.s3Bucket &&
48
+ endpointId(endpoint) === endpointId(config.s3Endpoint))
49
+ throw new KetError({
50
+ code: 'E_STORAGE_CONFIG',
51
+ message: 'private and public S3 buckets must be distinct',
52
+ });
53
+ publicStorage = s3Storage({
54
+ endpoint: endpoint,
55
+ bucket: publicConfig.bucket,
56
+ accessKeyId: publicConfig.accessKeyId,
57
+ secretAccessKey: publicConfig.secretAccessKey,
58
+ region: publicConfig.region ?? config.s3Region,
59
+ pathStyle: publicConfig.pathStyle ?? config.s3PathStyle,
60
+ });
61
+ }
62
+ return withPublicStorage(privateStorage, publicStorage, { baseUrl: publicConfig.baseUrl });
63
+ }
64
+ function privateFromConfig(config) {
5
65
  if (config.storageKind === 'local')
6
66
  return localStorage({ dir: config.storageDir });
7
67
  const missing = [
@@ -26,6 +86,6 @@ export function storageFromConfig(config) {
26
86
  }
27
87
  export { localStorage } from './local.js';
28
88
  export { s3Storage } from './s3.js';
29
- export { namespacedStorage, effectStorage } from './types.js';
89
+ export { namespacedStorage, effectStorage, withPublicStorage } from './types.js';
30
90
  export { signRequest, presignUrl, sha256 } from './sigv4.js';
31
91
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/ketjs/src/server/storage/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAEjD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAGnC,MAAM,UAAU,iBAAiB,CAAC,MAAqB;IACrD,IAAI,MAAM,CAAC,WAAW,KAAK,OAAO;QAAE,OAAO,YAAY,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAA;IACnF,MAAM,OAAO,GAAG;QACd,CAAC,iBAAiB,EAAE,MAAM,CAAC,UAAU,CAAC;QACtC,CAAC,eAAe,EAAE,MAAM,CAAC,QAAQ,CAAC;QAClC,CAAC,YAAY,EAAE,MAAM,CAAC,aAAa,CAAC;QACpC,CAAC,eAAe,EAAE,MAAM,CAAC,iBAAiB,CAAC;KAC5C,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAA;IAC/B,IAAI,OAAO,CAAC,MAAM;QAChB,MAAM,IAAI,QAAQ,CAAC;YACjB,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE,yBAAyB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SAC7E,CAAC,CAAA;IACJ,OAAO,SAAS,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC,UAAoB;QACrC,MAAM,EAAE,MAAM,CAAC,QAAQ;QACvB,MAAM,EAAE,MAAM,CAAC,QAAkB;QACjC,WAAW,EAAE,MAAM,CAAC,aAAuB;QAC3C,eAAe,EAAE,MAAM,CAAC,iBAA2B;QACnD,SAAS,EAAE,MAAM,CAAC,WAAW;KAC9B,CAAC,CAAA;AACJ,CAAC;AAED,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAG7D,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/ketjs/src/server/storage/index.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,10 @@ export type Stored = {
7
7
  };
8
8
  export type Storage = {
9
9
  name: string;
10
+ /** Optional publication backend. Root operations always remain private/default. */
11
+ public?: Storage;
12
+ /** Only a deliberately public backend may expose an unsigned delivery URL. */
13
+ publicUrl?: (key: string) => string;
10
14
  put(key: string, body: AsyncIterable<Uint8Array>, options: {
11
15
  type: string;
12
16
  size?: number;
@@ -34,4 +38,8 @@ export type StorageEffect = 'storage:read' | 'storage:write' | 'storage:remove';
34
38
  export declare function effectStorage(storage: Storage, effects: readonly string[], operation: string): Storage;
35
39
  export declare const storageKey: (key: string) => string;
36
40
  export declare function namespacedStorage(storage: Storage, namespace: string): Storage;
41
+ /** Compose two backends without changing existing private-only callers. */
42
+ export declare function withPublicStorage(privateStorage: Storage, publicStorage: Storage, options?: {
43
+ baseUrl?: string | null;
44
+ }): Storage;
37
45
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../packages/ketjs/src/server/storage/types.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,MAAM,GAAG;IACnB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAC5G,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAA;IACnF,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IACzC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAClC,IAAI,CACF,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3C,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC7C,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;CAC/E,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,OAAO,cAAc,EAAE,aAAa,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;AAEtG,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG,eAAe,GAAG,gBAAgB,CAAA;AAE/E,4FAA4F;AAC5F,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAoCtG;AAED,eAAO,MAAM,UAAU,QAAS,MAAM,KAAG,MAYxC,CAAA;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CA6B9E"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../packages/ketjs/src/server/storage/types.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,MAAM,GAAG;IACnB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,mFAAmF;IACnF,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,8EAA8E;IAC9E,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;IACnC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAC5G,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAA;IACnF,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IACzC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAClC,IAAI,CACF,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3C,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC7C,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;CAC/E,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,OAAO,cAAc,EAAE,aAAa,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;AAEtG,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG,eAAe,GAAG,gBAAgB,CAAA;AAE/E,4FAA4F;AAC5F,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CA6CtG;AAED,eAAO,MAAM,UAAU,QAAS,MAAM,KAAG,MAYxC,CAAA;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CA+B9E;AAED,2EAA2E;AAC3E,wBAAgB,iBAAiB,CAC/B,cAAc,EAAE,OAAO,EACvB,aAAa,EAAE,OAAO,EACtB,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAO,GACxC,OAAO,CA+CT"}
@@ -12,6 +12,15 @@ export function effectStorage(storage, effects, operation) {
12
12
  };
13
13
  return {
14
14
  name: storage.name,
15
+ ...(storage.public ? { public: effectStorage(storage.public, effects, operation) } : {}),
16
+ ...(storage.publicUrl
17
+ ? {
18
+ publicUrl(key) {
19
+ need('storage:read');
20
+ return storage.publicUrl(key);
21
+ },
22
+ }
23
+ : {}),
15
24
  put(key, body, options) {
16
25
  need('storage:write');
17
26
  return storage.put(key, body, options);
@@ -56,6 +65,8 @@ export function namespacedStorage(storage, namespace) {
56
65
  const strip = (key) => key.slice(prefix.length);
57
66
  return {
58
67
  name: `${storage.name}:${safe}`,
68
+ ...(storage.public ? { public: namespacedStorage(storage.public, namespace) } : {}),
69
+ ...(storage.publicUrl ? { publicUrl: (key) => storage.publicUrl(keyOf(key)) } : {}),
59
70
  put: (key, body, options) => storage.put(keyOf(key), body, options).then((meta) => ({ ...meta, key })),
60
71
  async get(key) {
61
72
  const found = await storage.get(keyOf(key));
@@ -79,4 +90,51 @@ export function namespacedStorage(storage, namespace) {
79
90
  signedUrl: (key, options) => storage.signedUrl(keyOf(key), options),
80
91
  };
81
92
  }
93
+ /** Compose two backends without changing existing private-only callers. */
94
+ export function withPublicStorage(privateStorage, publicStorage, options = {}) {
95
+ if (privateStorage === publicStorage ||
96
+ privateStorage.public ||
97
+ publicStorage.public ||
98
+ privateStorage.publicUrl)
99
+ throw new KetError({
100
+ code: 'E_STORAGE_CONFIG',
101
+ message: 'private and public storage must be distinct leaf backends',
102
+ });
103
+ let base;
104
+ if (options.baseUrl != null) {
105
+ try {
106
+ base = new URL(options.baseUrl);
107
+ if (!['http:', 'https:'].includes(base.protocol) ||
108
+ base.username ||
109
+ base.password ||
110
+ base.search ||
111
+ base.hash)
112
+ throw new Error('unsafe URL');
113
+ if (!base.pathname.endsWith('/'))
114
+ base.pathname += '/';
115
+ }
116
+ catch {
117
+ throw new KetError({
118
+ code: 'E_STORAGE_CONFIG',
119
+ message: 'public storage URL must be HTTP(S) without credentials, query or fragment',
120
+ });
121
+ }
122
+ }
123
+ const delegate = (storage) => ({
124
+ name: storage.name,
125
+ put: (key, body, o) => storage.put(key, body, o),
126
+ get: (key) => storage.get(key),
127
+ head: (key) => storage.head(key),
128
+ remove: (key) => storage.remove(key),
129
+ list: (prefix, o) => storage.list(prefix, o),
130
+ signedUrl: (key, o) => storage.signedUrl(key, o),
131
+ ...(storage.publicUrl ? { publicUrl: (key) => storage.publicUrl(key) } : {}),
132
+ });
133
+ const published = delegate(publicStorage);
134
+ if (base) {
135
+ const prefix = base.href;
136
+ published.publicUrl = (key) => prefix + storageKey(key).split('/').map(encodeURIComponent).join('/');
137
+ }
138
+ return { ...delegate(privateStorage), public: published };
139
+ }
82
140
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../../packages/ketjs/src/server/storage/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../../packages/ketjs/src/server/storage/types.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  import type { AdapterPool } from '../data/pool.ts';
2
- import type { AppRegistry } from '../kernel/apps.ts';
3
2
  import type { Adapter, Manifest } from '../types.ts';
4
3
  import type { ThemeRuntime } from '../theme/render.ts';
5
4
  import type { Sessions } from './session.ts';
@@ -13,8 +12,16 @@ export type TenantSpec = {
13
12
  * tenant is how one customer's request quietly reads another's data.
14
13
  */
15
14
  resolve: (url: URL, req: IncomingMessage) => string | null;
16
- /** Open the datastore for one tenant. The app's, because drivers are the app's. */
15
+ /**
16
+ * Create a fresh adapter for one tenant. The pool owns open/close; do not hand
17
+ * back an adapter object that a prior pool entry already closed.
18
+ */
17
19
  open: (key: string, config: RuntimeConfig) => Adapter | Promise<Adapter>;
20
+ /**
21
+ * Check that a tenant datastore already exists without creating or opening it.
22
+ * Required by read-only fleet inspection commands such as `ket schema verify`.
23
+ */
24
+ exists?: (key: string, config: RuntimeConfig) => boolean | Promise<boolean>;
18
25
  /**
19
26
  * Every tenant this deployment serves. Needed to migrate the fleet, and to fail
20
27
  * at boot rather than at 3am if one of them cannot be opened.
@@ -24,19 +31,18 @@ export type TenantSpec = {
24
31
  max?: number;
25
32
  idleMs?: number;
26
33
  };
27
- /** What a request resolves to: its database, and what is switched on in it. */
34
+ /** What a request resolves to: its database and the deployment manifest. */
28
35
  export type Tenant = {
29
36
  key: string;
30
37
  adapter: Adapter;
31
- apps: AppRegistry;
32
38
  live: Manifest;
33
- /** Compiled against what this tenant has installed, and cached with it. */
39
+ /** Compiled against the deployment manifest and cached per tenant. */
34
40
  theme: ThemeRuntime | null;
35
41
  /**
36
42
  * Extension points for one locale.
37
43
  *
38
44
  * KTL binds its `_` filter when it compiles, so a runtime is per language as
39
- * well as per installed set — one bound to the deployment default made every
45
+ * well as per tenant — one bound to the deployment default made every
40
46
  * fill answer in that language while the page around it answered in the
41
47
  * reader's, which is what a sidebar entry in the wrong language looks like.
42
48
  */
@@ -44,11 +50,11 @@ export type Tenant = {
44
50
  /**
45
51
  * Whose logins these are.
46
52
  *
47
- * Per tenant when the tenant is known before the cookie is read — which it is
48
- * when tenants arrive by subdomain, because the Host says so. An app on one
49
- * domain for every tenant cannot do that (reading the session needs the
50
- * database, knowing the database needs the session), and supplies one shared
51
- * store instead. Both are expressible; neither is assumed.
53
+ * Per tenant when the tenant is known before the cookie is read — for example
54
+ * from a subdomain, a trusted gateway assertion, or an explicit path/header.
55
+ * Deployments whose tenants share one domain may supply a shared identity store,
56
+ * but each record remains tenant-bound; a session is never allowed to select a
57
+ * different datastore by itself.
52
58
  */
53
59
  sessions: Sessions | null;
54
60
  };
@@ -71,23 +77,20 @@ export declare function createTenants(o: {
71
77
  spec: TenantSpec;
72
78
  pool: AdapterPool;
73
79
  manifest: Manifest;
74
- autoInstall: boolean;
75
80
  /**
76
81
  * Run once per datastore, before anything reads it — this is where the schema
77
82
  * arrives. A tenant database nobody migrated is a tenant with no tables, and
78
83
  * every query against it fails in a way that looks like a bug in the query.
79
84
  */
80
85
  prepare?: (key: string, adapter: Adapter) => Promise<void>;
81
- /** Run once, after the registry exists: the bootstrap set for a new tenant. */
82
- onFirstTouch?: (key: string, apps: AppRegistry, adapter: Adapter) => Promise<void>;
83
86
  /**
84
- * Compiles the theme for one tenant's installed set. Cached, because compiling
87
+ * Compiles the theme for one tenant. Cached, because compiling
85
88
  * every template on every request would be the most expensive thing here.
86
89
  */
87
90
  theme?: (live: Manifest) => ThemeRuntime;
88
91
  joints: (live: Manifest, locale: string) => Joints;
89
- /** Built once per tenant, against that tenant's own datastore. */
90
- sessions?: (adapter: Adapter) => Promise<Sessions>;
92
+ /** Built against the current adapter; the returned facade reacquires a lease per operation. */
93
+ sessions?: (adapter: Adapter, key: string) => Promise<Sessions>;
91
94
  }): Tenants;
92
95
  /**
93
96
  * One datastore, expressed as the same interface.
@@ -99,7 +102,6 @@ export declare function createTenants(o: {
99
102
  */
100
103
  export declare function singleTenant(o: {
101
104
  adapter: Adapter;
102
- apps: AppRegistry;
103
105
  manifest: Manifest;
104
106
  theme?: (live: Manifest) => ThemeRuntime;
105
107
  joints: (live: Manifest, locale: string) => Joints;