@tokenoftrust/storefront-runner 1.4.0 → 1.4.2-rc.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 (193) hide show
  1. package/apps/storefront/astro.config.mjs +17 -1
  2. package/apps/storefront/integrations/materialize-guard.mjs +56 -0
  3. package/apps/storefront/migrations-apps/0001_woozy_lyja.sql +22 -0
  4. package/apps/storefront/migrations-apps/0002_good_switch.sql +26 -0
  5. package/apps/storefront/migrations-apps/0003_mute_marauders.sql +12 -0
  6. package/apps/storefront/migrations-apps/meta/0001_snapshot.json +990 -0
  7. package/apps/storefront/migrations-apps/meta/0002_snapshot.json +1160 -0
  8. package/apps/storefront/migrations-apps/meta/0003_snapshot.json +1235 -0
  9. package/apps/storefront/migrations-apps/meta/_journal.json +21 -0
  10. package/apps/storefront/package.json +0 -1
  11. package/apps/storefront/public/js/dashboard-team.js +38 -2
  12. package/apps/storefront/src/components/Seo.astro +65 -1
  13. package/apps/storefront/src/components/admin/AdminBlogDetailRail.astro +878 -0
  14. package/apps/storefront/src/components/admin/AdminBlogTab.astro +1432 -0
  15. package/apps/storefront/src/components/admin/AdminCustomersTab.astro +3 -7
  16. package/apps/storefront/src/components/admin/AdminPublishTab.astro +1756 -1382
  17. package/apps/storefront/src/components/admin/AdminSubscriptionsTab.astro +1 -3
  18. package/apps/storefront/src/components/blog/BlogPaywall.astro +87 -0
  19. package/apps/storefront/src/components/blog/PostAccessBadge.astro +43 -0
  20. package/apps/storefront/src/components/blog/PostGrid.astro +57 -0
  21. package/apps/storefront/src/components/blog/ReactionBar.astro +214 -0
  22. package/apps/storefront/src/layouts/Layout.astro +48 -3
  23. package/apps/storefront/src/lib/activity/alerts.ts +426 -0
  24. package/apps/storefront/src/lib/activity/changeActorAttribution.ts +85 -0
  25. package/apps/storefront/src/lib/activity/deployVersion.ts +120 -0
  26. package/apps/storefront/src/lib/activity/ingest.ts +188 -0
  27. package/apps/storefront/src/lib/activity/ingestAuth.ts +105 -0
  28. package/apps/storefront/src/lib/activity/killSwitch.ts +80 -0
  29. package/apps/storefront/src/lib/activity/query.ts +403 -0
  30. package/apps/storefront/src/lib/activity/recordActivity.ts +101 -0
  31. package/apps/storefront/src/lib/activity/store.ts +120 -0
  32. package/apps/storefront/src/lib/activity/uiActor.ts +150 -0
  33. package/apps/storefront/src/lib/activity/workerCommit.ts +70 -0
  34. package/apps/storefront/src/lib/admin/adminShell.ts +290 -0
  35. package/apps/storefront/src/lib/admin/ai/approvalMode.ts +2 -3
  36. package/apps/storefront/src/lib/admin/ai/audit.ts +3 -5
  37. package/apps/storefront/src/lib/admin/checkoutStyleInput.ts +7 -7
  38. package/apps/storefront/src/lib/admin/checkoutStyleTarget.ts +3 -3
  39. package/apps/storefront/src/lib/admin/orderClient.ts +3 -5
  40. package/apps/storefront/src/lib/admin/services/orders.ts +17 -19
  41. package/apps/storefront/src/lib/admin/viewmodels/aiWorkflows.ts +4 -6
  42. package/apps/storefront/src/lib/admin/viewmodels/settings.ts +1 -1
  43. package/apps/storefront/src/lib/apps/adminService.ts +4 -4
  44. package/apps/storefront/src/lib/apps/adminSession.ts +53 -44
  45. package/apps/storefront/src/lib/apps/apiAuth.ts +2 -2
  46. package/apps/storefront/src/lib/apps/apiRoute.ts +2 -2
  47. package/apps/storefront/src/lib/apps/catalogMapper.ts +1 -1
  48. package/apps/storefront/src/lib/apps/credentials.ts +2 -2
  49. package/apps/storefront/src/lib/apps/gatewayKeys.ts +4 -4
  50. package/apps/storefront/src/lib/apps/healthAggregate.ts +5 -5
  51. package/apps/storefront/src/lib/apps/orders/attributionService.ts +2 -2
  52. package/apps/storefront/src/lib/apps/orders/customerHash.ts +1 -1
  53. package/apps/storefront/src/lib/apps/orders/foxyOrderClient.ts +12 -12
  54. package/apps/storefront/src/lib/apps/orders/idempotency.ts +7 -7
  55. package/apps/storefront/src/lib/apps/orders/orderForwardReceiver.ts +1 -1
  56. package/apps/storefront/src/lib/apps/orders/orderMapper.ts +2 -2
  57. package/apps/storefront/src/lib/apps/orders/ordersStore.ts +6 -6
  58. package/apps/storefront/src/lib/apps/registryService.ts +6 -6
  59. package/apps/storefront/src/lib/apps/scopes.ts +2 -2
  60. package/apps/storefront/src/lib/apps/tokenIssuer.ts +4 -4
  61. package/apps/storefront/src/lib/apps/tokenVerifier.ts +6 -6
  62. package/apps/storefront/src/lib/apps/widgets/eligibility.ts +2 -2
  63. package/apps/storefront/src/lib/apps/widgets/frameProps.ts +3 -3
  64. package/apps/storefront/src/lib/apps/widgets/launchToken.ts +4 -4
  65. package/apps/storefront/src/lib/apps/widgets/placements.ts +2 -2
  66. package/apps/storefront/src/lib/apps/widgets/renderSlot.ts +1 -1
  67. package/apps/storefront/src/lib/auth/adminEntry.ts +9 -9
  68. package/apps/storefront/src/lib/auth/identityToken.ts +6 -14
  69. package/apps/storefront/src/lib/auth/loginGate.ts +75 -13
  70. package/apps/storefront/src/lib/auth/mcpClientAssertion.ts +6 -4
  71. package/apps/storefront/src/lib/auth/operatorSession.ts +113 -0
  72. package/apps/storefront/src/lib/auth/route.ts +44 -4
  73. package/apps/storefront/src/lib/auth/session.ts +7 -8
  74. package/apps/storefront/src/lib/auth/totAccessClient.ts +8 -18
  75. package/apps/storefront/src/lib/basePath.ts +9 -2
  76. package/apps/storefront/src/lib/blog/access.ts +29 -0
  77. package/apps/storefront/src/lib/blog/collection.ts +313 -0
  78. package/apps/storefront/src/lib/blog/markdown.ts +174 -0
  79. package/apps/storefront/src/lib/blog/provider.ts +5 -0
  80. package/apps/storefront/src/lib/blog/reactions.ts +87 -0
  81. package/apps/storefront/src/lib/blog/rss.ts +92 -0
  82. package/apps/storefront/src/lib/blog/teaser.ts +83 -0
  83. package/apps/storefront/src/lib/blog/types.ts +34 -0
  84. package/apps/storefront/src/lib/blog/viewCounts.ts +243 -0
  85. package/apps/storefront/src/lib/d1/catalog.ts +2 -2
  86. package/apps/storefront/src/lib/d1/schema-apps.ts +147 -14
  87. package/apps/storefront/src/lib/dev/activityIngestToken.ts +2 -4
  88. package/apps/storefront/src/lib/dev/activityStore.ts +3 -5
  89. package/apps/storefront/src/lib/dev/apiBase.ts +1 -4
  90. package/apps/storefront/src/lib/dev/cockpitStore.ts +1 -9
  91. package/apps/storefront/src/lib/dev/devDraft.ts +1 -1
  92. package/apps/storefront/src/lib/dev/previewStatus.ts +9 -21
  93. package/apps/storefront/src/lib/dev/rendezvousBroker.ts +9 -24
  94. package/apps/storefront/src/lib/edgeCache.ts +17 -0
  95. package/apps/storefront/src/lib/env.ts +51 -0
  96. package/apps/storefront/src/lib/http/fetchTransport.ts +63 -0
  97. package/apps/storefront/src/lib/i18n.ts +25 -0
  98. package/apps/storefront/src/lib/jsonld.ts +118 -0
  99. package/apps/storefront/src/lib/monitoring/manifest.ts +11 -11
  100. package/apps/storefront/src/lib/newsletter/confirmationEmail.ts +30 -0
  101. package/apps/storefront/src/lib/newsletter/consent.ts +23 -0
  102. package/apps/storefront/src/lib/newsletter/digest.ts +117 -0
  103. package/apps/storefront/src/lib/newsletter/resendClient.ts +79 -0
  104. package/apps/storefront/src/lib/newsletter/send.ts +265 -0
  105. package/apps/storefront/src/lib/newsletter/subscribers.ts +156 -0
  106. package/apps/storefront/src/lib/publish/adminPublishTab.ts +3519 -0
  107. package/apps/storefront/src/lib/publish/apex-readiness.ts +41 -18
  108. package/apps/storefront/src/lib/publish/dispatchHealth.ts +5 -7
  109. package/apps/storefront/src/lib/publish/domainState.ts +22 -13
  110. package/apps/storefront/src/lib/publish/panelPolling.ts +78 -0
  111. package/apps/storefront/src/lib/publish/shipWorkspace.ts +100 -42
  112. package/apps/storefront/src/lib/publish/stageBundleUpload.ts +215 -0
  113. package/apps/storefront/src/lib/rate/kvWindow.ts +53 -0
  114. package/apps/storefront/src/lib/search/index.ts +2 -2
  115. package/apps/storefront/src/lib/seo/alternates.ts +42 -0
  116. package/apps/storefront/src/lib/seo/meta.ts +65 -0
  117. package/apps/storefront/src/lib/social/golive.ts +212 -0
  118. package/apps/storefront/src/lib/social/notify.ts +32 -0
  119. package/apps/storefront/src/lib/social/tokenStore.ts +171 -0
  120. package/apps/storefront/src/lib/the-build/provider.ts +27 -0
  121. package/apps/storefront/src/lib/the-build/readingTime.ts +35 -0
  122. package/apps/storefront/src/lib/the-build/toc.ts +95 -0
  123. package/apps/storefront/src/lib/tot/ToTClient.ts +1 -1
  124. package/apps/storefront/src/lib/tot/d1Client.ts +2 -2
  125. package/apps/storefront/src/lib/tot/totClientInterface.ts +3 -4
  126. package/apps/storefront/src/lib/webhooks/deliveryStore.ts +16 -17
  127. package/apps/storefront/src/middleware/index.ts +130 -2
  128. package/apps/storefront/src/pages/admin/ops-timeline.astro +420 -0
  129. package/apps/storefront/src/pages/admin.astro +52 -1206
  130. package/apps/storefront/src/pages/api/activity.ts +137 -0
  131. package/apps/storefront/src/pages/api/admin/activity-alerts.ts +73 -0
  132. package/apps/storefront/src/pages/api/apps/admin/credentials/rotate.ts +27 -1
  133. package/apps/storefront/src/pages/api/apps/admin/install.ts +26 -1
  134. package/apps/storefront/src/pages/api/apps/admin/resume.ts +24 -1
  135. package/apps/storefront/src/pages/api/apps/admin/suspend.ts +24 -1
  136. package/apps/storefront/src/pages/api/apps/admin/uninstall.ts +25 -1
  137. package/apps/storefront/src/pages/api/apps/admin/update.ts +24 -1
  138. package/apps/storefront/src/pages/api/apps/admin/webhooks/deliveries/[deliveryId]/replay.ts +11 -0
  139. package/apps/storefront/src/pages/api/apps/internal/order-forward.ts +11 -0
  140. package/apps/storefront/src/pages/api/apps/v1/attribution.ts +20 -0
  141. package/apps/storefront/src/pages/api/apps/v1/webhooks/deliveries/[deliveryId]/replay.ts +12 -0
  142. package/apps/storefront/src/pages/api/blog/[collection]/[slug]/react.ts +104 -0
  143. package/apps/storefront/src/pages/api/cache-purge.ts +11 -0
  144. package/apps/storefront/src/pages/api/dashboard/enter-vendor.ts +30 -0
  145. package/apps/storefront/src/pages/api/newsletter/[collection]/subscribe.ts +146 -0
  146. package/apps/storefront/src/pages/api/newsletter/confirm.ts +75 -0
  147. package/apps/storefront/src/pages/api/newsletter/unsubscribe.ts +90 -0
  148. package/apps/storefront/src/pages/api/publish/stage-bundle.ts +70 -0
  149. package/apps/storefront/src/pages/api/rum/vitals.ts +21 -2
  150. package/apps/storefront/src/pages/auth/login.astro +5 -4
  151. package/apps/storefront/src/pages/blog/[slug].astro +96 -16
  152. package/apps/storefront/src/pages/blog/author/[author].astro +140 -0
  153. package/apps/storefront/src/pages/blog/category/[category].astro +67 -0
  154. package/apps/storefront/src/pages/blog/index.astro +2 -0
  155. package/apps/storefront/src/pages/blog/tag/[tag].astro +65 -0
  156. package/apps/storefront/src/pages/cockpit.astro +74 -12
  157. package/apps/storefront/src/pages/dashboard/[appDomain]/team.astro +15 -11
  158. package/apps/storefront/src/pages/search.astro +1 -1
  159. package/apps/storefront/src/pages/sitemap.xml.ts +20 -0
  160. package/apps/storefront/src/pages/the-build/[slug].astro +129 -0
  161. package/apps/storefront/src/pages/the-build/index.astro +146 -0
  162. package/apps/storefront/src/pages/the-build/rss.xml.ts +33 -0
  163. package/apps/storefront/src/styles/admin.css +1080 -0
  164. package/apps/storefront/tsconfig.json +5 -0
  165. package/package.json +1 -1
  166. package/packages/public-runtime/package.json +1 -0
  167. package/packages/public-runtime/src/activity/README.md +146 -0
  168. package/packages/public-runtime/src/activity/catalog.ts +553 -0
  169. package/packages/public-runtime/src/activity/event.ts +168 -0
  170. package/packages/public-runtime/src/activity/index.ts +16 -0
  171. package/packages/public-runtime/src/activity/redaction.ts +263 -0
  172. package/packages/public-runtime/src/candidate-index.ts +13 -0
  173. package/packages/public-runtime/src/catalog-d1.ts +1 -1
  174. package/packages/public-runtime/src/customization-preview.ts +25 -2
  175. package/packages/public-runtime/src/customization-runtime.ts +125 -3
  176. package/packages/public-runtime/src/customization-versioning.ts +10 -0
  177. package/packages/public-runtime/src/index.ts +7 -0
  178. package/packages/public-runtime/src/static-bundle.ts +357 -0
  179. package/packages/public-runtime/src/tenant.ts +36 -8
  180. package/scripts/build/copy-tenant-assets.mjs +14 -4
  181. package/scripts/dev/ai-edit.mjs +1 -1
  182. package/scripts/dev/checkout-watch.mjs +2 -2
  183. package/scripts/dev/file-browser.mjs +2 -4
  184. package/scripts/dev/file-writer.mjs +1 -1
  185. package/scripts/dev/git-status.mjs +2 -2
  186. package/scripts/dev/locate-handler.mjs +3 -3
  187. package/scripts/dev/port-check.mjs +3 -3
  188. package/scripts/dev/publish.mjs +5 -9
  189. package/scripts/dev/shot.mjs +1 -1
  190. package/scripts/dev/unified-diff.mjs +8 -3
  191. package/scripts/tot-dev.mjs +6 -9
  192. package/apps/storefront/src/lib/webhooks/signing.ts +0 -29
  193. package/apps/storefront/src/lib/webhooks/webhookSigningKey.ts +0 -146
@@ -0,0 +1,1160 @@
1
+ {
2
+ "version": "6",
3
+ "dialect": "sqlite",
4
+ "id": "70d4e64e-5fe9-42d2-9faf-079e1c5dafd3",
5
+ "prevId": "0fee5e2d-81e4-4ad7-a976-2d93db67ea1c",
6
+ "tables": {
7
+ "activity_events": {
8
+ "name": "activity_events",
9
+ "columns": {
10
+ "id": {
11
+ "name": "id",
12
+ "type": "text",
13
+ "primaryKey": true,
14
+ "notNull": true,
15
+ "autoincrement": false
16
+ },
17
+ "tenant_id": {
18
+ "name": "tenant_id",
19
+ "type": "text",
20
+ "primaryKey": false,
21
+ "notNull": true,
22
+ "autoincrement": false
23
+ },
24
+ "action": {
25
+ "name": "action",
26
+ "type": "text",
27
+ "primaryKey": false,
28
+ "notNull": true,
29
+ "autoincrement": false
30
+ },
31
+ "actor_kind": {
32
+ "name": "actor_kind",
33
+ "type": "text",
34
+ "primaryKey": false,
35
+ "notNull": true,
36
+ "autoincrement": false
37
+ },
38
+ "actor_id": {
39
+ "name": "actor_id",
40
+ "type": "text",
41
+ "primaryKey": false,
42
+ "notNull": true,
43
+ "autoincrement": false
44
+ },
45
+ "actor_ref": {
46
+ "name": "actor_ref",
47
+ "type": "text",
48
+ "primaryKey": false,
49
+ "notNull": false,
50
+ "autoincrement": false
51
+ },
52
+ "source": {
53
+ "name": "source",
54
+ "type": "text",
55
+ "primaryKey": false,
56
+ "notNull": true,
57
+ "autoincrement": false
58
+ },
59
+ "status": {
60
+ "name": "status",
61
+ "type": "text",
62
+ "primaryKey": false,
63
+ "notNull": true,
64
+ "autoincrement": false
65
+ },
66
+ "error_class": {
67
+ "name": "error_class",
68
+ "type": "text",
69
+ "primaryKey": false,
70
+ "notNull": false,
71
+ "autoincrement": false
72
+ },
73
+ "duration_ms": {
74
+ "name": "duration_ms",
75
+ "type": "integer",
76
+ "primaryKey": false,
77
+ "notNull": false,
78
+ "autoincrement": false
79
+ },
80
+ "change_id": {
81
+ "name": "change_id",
82
+ "type": "text",
83
+ "primaryKey": false,
84
+ "notNull": false,
85
+ "autoincrement": false
86
+ },
87
+ "trace_id": {
88
+ "name": "trace_id",
89
+ "type": "text",
90
+ "primaryKey": false,
91
+ "notNull": false,
92
+ "autoincrement": false
93
+ },
94
+ "payload": {
95
+ "name": "payload",
96
+ "type": "text",
97
+ "primaryKey": false,
98
+ "notNull": true,
99
+ "autoincrement": false,
100
+ "default": "'{}'"
101
+ },
102
+ "schema_version": {
103
+ "name": "schema_version",
104
+ "type": "integer",
105
+ "primaryKey": false,
106
+ "notNull": true,
107
+ "autoincrement": false
108
+ },
109
+ "at": {
110
+ "name": "at",
111
+ "type": "text",
112
+ "primaryKey": false,
113
+ "notNull": true,
114
+ "autoincrement": false
115
+ },
116
+ "ingested_at": {
117
+ "name": "ingested_at",
118
+ "type": "text",
119
+ "primaryKey": false,
120
+ "notNull": true,
121
+ "autoincrement": false
122
+ }
123
+ },
124
+ "indexes": {
125
+ "idx_activity_tenant_at": {
126
+ "name": "idx_activity_tenant_at",
127
+ "columns": [
128
+ "tenant_id",
129
+ "at"
130
+ ],
131
+ "isUnique": false
132
+ },
133
+ "idx_activity_tenant_action": {
134
+ "name": "idx_activity_tenant_action",
135
+ "columns": [
136
+ "tenant_id",
137
+ "action"
138
+ ],
139
+ "isUnique": false
140
+ },
141
+ "idx_activity_change": {
142
+ "name": "idx_activity_change",
143
+ "columns": [
144
+ "change_id"
145
+ ],
146
+ "isUnique": false
147
+ }
148
+ },
149
+ "foreignKeys": {},
150
+ "compositePrimaryKeys": {},
151
+ "uniqueConstraints": {},
152
+ "checkConstraints": {}
153
+ },
154
+ "app_attributions": {
155
+ "name": "app_attributions",
156
+ "columns": {
157
+ "install_id": {
158
+ "name": "install_id",
159
+ "type": "text",
160
+ "primaryKey": false,
161
+ "notNull": true,
162
+ "autoincrement": false
163
+ },
164
+ "attribution_id": {
165
+ "name": "attribution_id",
166
+ "type": "text",
167
+ "primaryKey": false,
168
+ "notNull": true,
169
+ "autoincrement": false
170
+ },
171
+ "tenant_id": {
172
+ "name": "tenant_id",
173
+ "type": "text",
174
+ "primaryKey": false,
175
+ "notNull": true,
176
+ "autoincrement": false
177
+ },
178
+ "order_id": {
179
+ "name": "order_id",
180
+ "type": "text",
181
+ "primaryKey": false,
182
+ "notNull": true,
183
+ "autoincrement": false
184
+ },
185
+ "campaign": {
186
+ "name": "campaign",
187
+ "type": "text",
188
+ "primaryKey": false,
189
+ "notNull": false,
190
+ "autoincrement": false
191
+ },
192
+ "referral_code": {
193
+ "name": "referral_code",
194
+ "type": "text",
195
+ "primaryKey": false,
196
+ "notNull": false,
197
+ "autoincrement": false
198
+ },
199
+ "commission_amount": {
200
+ "name": "commission_amount",
201
+ "type": "real",
202
+ "primaryKey": false,
203
+ "notNull": false,
204
+ "autoincrement": false
205
+ },
206
+ "commission_currency": {
207
+ "name": "commission_currency",
208
+ "type": "text",
209
+ "primaryKey": false,
210
+ "notNull": false,
211
+ "autoincrement": false
212
+ },
213
+ "customer_hash": {
214
+ "name": "customer_hash",
215
+ "type": "text",
216
+ "primaryKey": false,
217
+ "notNull": false,
218
+ "autoincrement": false
219
+ },
220
+ "recorded_at": {
221
+ "name": "recorded_at",
222
+ "type": "text",
223
+ "primaryKey": false,
224
+ "notNull": true,
225
+ "autoincrement": false
226
+ }
227
+ },
228
+ "indexes": {
229
+ "idx_app_attributions_tenant_order": {
230
+ "name": "idx_app_attributions_tenant_order",
231
+ "columns": [
232
+ "tenant_id",
233
+ "order_id"
234
+ ],
235
+ "isUnique": false
236
+ }
237
+ },
238
+ "foreignKeys": {},
239
+ "compositePrimaryKeys": {
240
+ "app_attributions_install_id_attribution_id_pk": {
241
+ "columns": [
242
+ "install_id",
243
+ "attribution_id"
244
+ ],
245
+ "name": "app_attributions_install_id_attribution_id_pk"
246
+ }
247
+ },
248
+ "uniqueConstraints": {},
249
+ "checkConstraints": {}
250
+ },
251
+ "app_audit_log": {
252
+ "name": "app_audit_log",
253
+ "columns": {
254
+ "id": {
255
+ "name": "id",
256
+ "type": "text",
257
+ "primaryKey": true,
258
+ "notNull": true,
259
+ "autoincrement": false
260
+ },
261
+ "install_id": {
262
+ "name": "install_id",
263
+ "type": "text",
264
+ "primaryKey": false,
265
+ "notNull": true,
266
+ "autoincrement": false
267
+ },
268
+ "tenant_id": {
269
+ "name": "tenant_id",
270
+ "type": "text",
271
+ "primaryKey": false,
272
+ "notNull": true,
273
+ "autoincrement": false
274
+ },
275
+ "event": {
276
+ "name": "event",
277
+ "type": "text",
278
+ "primaryKey": false,
279
+ "notNull": true,
280
+ "autoincrement": false
281
+ },
282
+ "actor": {
283
+ "name": "actor",
284
+ "type": "text",
285
+ "primaryKey": false,
286
+ "notNull": true,
287
+ "autoincrement": false
288
+ },
289
+ "trace_id": {
290
+ "name": "trace_id",
291
+ "type": "text",
292
+ "primaryKey": false,
293
+ "notNull": false,
294
+ "autoincrement": false
295
+ },
296
+ "detail": {
297
+ "name": "detail",
298
+ "type": "text",
299
+ "primaryKey": false,
300
+ "notNull": true,
301
+ "autoincrement": false,
302
+ "default": "'{}'"
303
+ },
304
+ "at": {
305
+ "name": "at",
306
+ "type": "text",
307
+ "primaryKey": false,
308
+ "notNull": true,
309
+ "autoincrement": false
310
+ }
311
+ },
312
+ "indexes": {
313
+ "idx_app_audit_install": {
314
+ "name": "idx_app_audit_install",
315
+ "columns": [
316
+ "install_id"
317
+ ],
318
+ "isUnique": false
319
+ }
320
+ },
321
+ "foreignKeys": {},
322
+ "compositePrimaryKeys": {},
323
+ "uniqueConstraints": {},
324
+ "checkConstraints": {}
325
+ },
326
+ "app_credentials": {
327
+ "name": "app_credentials",
328
+ "columns": {
329
+ "install_id": {
330
+ "name": "install_id",
331
+ "type": "text",
332
+ "primaryKey": true,
333
+ "notNull": true,
334
+ "autoincrement": false
335
+ },
336
+ "client_id": {
337
+ "name": "client_id",
338
+ "type": "text",
339
+ "primaryKey": false,
340
+ "notNull": true,
341
+ "autoincrement": false
342
+ },
343
+ "secret_hash": {
344
+ "name": "secret_hash",
345
+ "type": "text",
346
+ "primaryKey": false,
347
+ "notNull": true,
348
+ "autoincrement": false
349
+ },
350
+ "secret_created_at": {
351
+ "name": "secret_created_at",
352
+ "type": "text",
353
+ "primaryKey": false,
354
+ "notNull": true,
355
+ "autoincrement": false
356
+ },
357
+ "rotated_at": {
358
+ "name": "rotated_at",
359
+ "type": "text",
360
+ "primaryKey": false,
361
+ "notNull": false,
362
+ "autoincrement": false
363
+ },
364
+ "jwks_kid": {
365
+ "name": "jwks_kid",
366
+ "type": "text",
367
+ "primaryKey": false,
368
+ "notNull": true,
369
+ "autoincrement": false
370
+ }
371
+ },
372
+ "indexes": {
373
+ "app_credentials_client_id_unique": {
374
+ "name": "app_credentials_client_id_unique",
375
+ "columns": [
376
+ "client_id"
377
+ ],
378
+ "isUnique": true
379
+ }
380
+ },
381
+ "foreignKeys": {},
382
+ "compositePrimaryKeys": {},
383
+ "uniqueConstraints": {},
384
+ "checkConstraints": {}
385
+ },
386
+ "app_installs": {
387
+ "name": "app_installs",
388
+ "columns": {
389
+ "install_id": {
390
+ "name": "install_id",
391
+ "type": "text",
392
+ "primaryKey": true,
393
+ "notNull": true,
394
+ "autoincrement": false
395
+ },
396
+ "app_id": {
397
+ "name": "app_id",
398
+ "type": "text",
399
+ "primaryKey": false,
400
+ "notNull": true,
401
+ "autoincrement": false
402
+ },
403
+ "app_version": {
404
+ "name": "app_version",
405
+ "type": "text",
406
+ "primaryKey": false,
407
+ "notNull": true,
408
+ "autoincrement": false
409
+ },
410
+ "tenant_id": {
411
+ "name": "tenant_id",
412
+ "type": "text",
413
+ "primaryKey": false,
414
+ "notNull": true,
415
+ "autoincrement": false
416
+ },
417
+ "env": {
418
+ "name": "env",
419
+ "type": "text",
420
+ "primaryKey": false,
421
+ "notNull": true,
422
+ "autoincrement": false
423
+ },
424
+ "status": {
425
+ "name": "status",
426
+ "type": "text",
427
+ "primaryKey": false,
428
+ "notNull": true,
429
+ "autoincrement": false,
430
+ "default": "'active'"
431
+ },
432
+ "scopes": {
433
+ "name": "scopes",
434
+ "type": "text",
435
+ "primaryKey": false,
436
+ "notNull": true,
437
+ "autoincrement": false,
438
+ "default": "'[]'"
439
+ },
440
+ "manifest": {
441
+ "name": "manifest",
442
+ "type": "text",
443
+ "primaryKey": false,
444
+ "notNull": true,
445
+ "autoincrement": false
446
+ },
447
+ "webhook_endpoint": {
448
+ "name": "webhook_endpoint",
449
+ "type": "text",
450
+ "primaryKey": false,
451
+ "notNull": false,
452
+ "autoincrement": false
453
+ },
454
+ "widget_placements": {
455
+ "name": "widget_placements",
456
+ "type": "text",
457
+ "primaryKey": false,
458
+ "notNull": true,
459
+ "autoincrement": false,
460
+ "default": "'[]'"
461
+ },
462
+ "install_actor": {
463
+ "name": "install_actor",
464
+ "type": "text",
465
+ "primaryKey": false,
466
+ "notNull": true,
467
+ "autoincrement": false
468
+ },
469
+ "created_at": {
470
+ "name": "created_at",
471
+ "type": "text",
472
+ "primaryKey": false,
473
+ "notNull": true,
474
+ "autoincrement": false
475
+ },
476
+ "updated_at": {
477
+ "name": "updated_at",
478
+ "type": "text",
479
+ "primaryKey": false,
480
+ "notNull": true,
481
+ "autoincrement": false
482
+ }
483
+ },
484
+ "indexes": {
485
+ "uq_app_installs_app_tenant_env": {
486
+ "name": "uq_app_installs_app_tenant_env",
487
+ "columns": [
488
+ "app_id",
489
+ "tenant_id",
490
+ "env"
491
+ ],
492
+ "isUnique": true
493
+ },
494
+ "idx_app_installs_tenant": {
495
+ "name": "idx_app_installs_tenant",
496
+ "columns": [
497
+ "tenant_id"
498
+ ],
499
+ "isUnique": false
500
+ }
501
+ },
502
+ "foreignKeys": {},
503
+ "compositePrimaryKeys": {},
504
+ "uniqueConstraints": {},
505
+ "checkConstraints": {}
506
+ },
507
+ "idempotency_keys": {
508
+ "name": "idempotency_keys",
509
+ "columns": {
510
+ "install_id": {
511
+ "name": "install_id",
512
+ "type": "text",
513
+ "primaryKey": false,
514
+ "notNull": true,
515
+ "autoincrement": false
516
+ },
517
+ "idempotency_key": {
518
+ "name": "idempotency_key",
519
+ "type": "text",
520
+ "primaryKey": false,
521
+ "notNull": true,
522
+ "autoincrement": false
523
+ },
524
+ "body_hash": {
525
+ "name": "body_hash",
526
+ "type": "text",
527
+ "primaryKey": false,
528
+ "notNull": true,
529
+ "autoincrement": false
530
+ },
531
+ "response_body": {
532
+ "name": "response_body",
533
+ "type": "text",
534
+ "primaryKey": false,
535
+ "notNull": true,
536
+ "autoincrement": false
537
+ },
538
+ "created_at": {
539
+ "name": "created_at",
540
+ "type": "text",
541
+ "primaryKey": false,
542
+ "notNull": true,
543
+ "autoincrement": false
544
+ }
545
+ },
546
+ "indexes": {},
547
+ "foreignKeys": {},
548
+ "compositePrimaryKeys": {
549
+ "idempotency_keys_install_id_idempotency_key_pk": {
550
+ "columns": [
551
+ "install_id",
552
+ "idempotency_key"
553
+ ],
554
+ "name": "idempotency_keys_install_id_idempotency_key_pk"
555
+ }
556
+ },
557
+ "uniqueConstraints": {},
558
+ "checkConstraints": {}
559
+ },
560
+ "newsletter_sends": {
561
+ "name": "newsletter_sends",
562
+ "columns": {
563
+ "tenant_id": {
564
+ "name": "tenant_id",
565
+ "type": "text",
566
+ "primaryKey": false,
567
+ "notNull": true,
568
+ "autoincrement": false
569
+ },
570
+ "collection": {
571
+ "name": "collection",
572
+ "type": "text",
573
+ "primaryKey": false,
574
+ "notNull": true,
575
+ "autoincrement": false
576
+ },
577
+ "digest_id": {
578
+ "name": "digest_id",
579
+ "type": "text",
580
+ "primaryKey": false,
581
+ "notNull": true,
582
+ "autoincrement": false
583
+ },
584
+ "post_slugs": {
585
+ "name": "post_slugs",
586
+ "type": "text",
587
+ "primaryKey": false,
588
+ "notNull": true,
589
+ "autoincrement": false,
590
+ "default": "'[]'"
591
+ },
592
+ "recipient_count": {
593
+ "name": "recipient_count",
594
+ "type": "integer",
595
+ "primaryKey": false,
596
+ "notNull": true,
597
+ "autoincrement": false,
598
+ "default": 0
599
+ },
600
+ "sent_at": {
601
+ "name": "sent_at",
602
+ "type": "text",
603
+ "primaryKey": false,
604
+ "notNull": true,
605
+ "autoincrement": false
606
+ }
607
+ },
608
+ "indexes": {},
609
+ "foreignKeys": {},
610
+ "compositePrimaryKeys": {
611
+ "newsletter_sends_tenant_id_collection_digest_id_pk": {
612
+ "columns": [
613
+ "tenant_id",
614
+ "collection",
615
+ "digest_id"
616
+ ],
617
+ "name": "newsletter_sends_tenant_id_collection_digest_id_pk"
618
+ }
619
+ },
620
+ "uniqueConstraints": {},
621
+ "checkConstraints": {}
622
+ },
623
+ "newsletter_subscribers": {
624
+ "name": "newsletter_subscribers",
625
+ "columns": {
626
+ "tenant_id": {
627
+ "name": "tenant_id",
628
+ "type": "text",
629
+ "primaryKey": false,
630
+ "notNull": true,
631
+ "autoincrement": false
632
+ },
633
+ "collection": {
634
+ "name": "collection",
635
+ "type": "text",
636
+ "primaryKey": false,
637
+ "notNull": true,
638
+ "autoincrement": false
639
+ },
640
+ "email": {
641
+ "name": "email",
642
+ "type": "text",
643
+ "primaryKey": false,
644
+ "notNull": true,
645
+ "autoincrement": false
646
+ },
647
+ "status": {
648
+ "name": "status",
649
+ "type": "text",
650
+ "primaryKey": false,
651
+ "notNull": true,
652
+ "autoincrement": false,
653
+ "default": "'pending'"
654
+ },
655
+ "token": {
656
+ "name": "token",
657
+ "type": "text",
658
+ "primaryKey": false,
659
+ "notNull": true,
660
+ "autoincrement": false
661
+ },
662
+ "consent_source": {
663
+ "name": "consent_source",
664
+ "type": "text",
665
+ "primaryKey": false,
666
+ "notNull": false,
667
+ "autoincrement": false
668
+ },
669
+ "consent_ip_hash": {
670
+ "name": "consent_ip_hash",
671
+ "type": "text",
672
+ "primaryKey": false,
673
+ "notNull": false,
674
+ "autoincrement": false
675
+ },
676
+ "subscribed_at": {
677
+ "name": "subscribed_at",
678
+ "type": "text",
679
+ "primaryKey": false,
680
+ "notNull": true,
681
+ "autoincrement": false
682
+ },
683
+ "confirmed_at": {
684
+ "name": "confirmed_at",
685
+ "type": "text",
686
+ "primaryKey": false,
687
+ "notNull": false,
688
+ "autoincrement": false
689
+ },
690
+ "unsubscribed_at": {
691
+ "name": "unsubscribed_at",
692
+ "type": "text",
693
+ "primaryKey": false,
694
+ "notNull": false,
695
+ "autoincrement": false
696
+ },
697
+ "last_sent_at": {
698
+ "name": "last_sent_at",
699
+ "type": "text",
700
+ "primaryKey": false,
701
+ "notNull": false,
702
+ "autoincrement": false
703
+ }
704
+ },
705
+ "indexes": {
706
+ "idx_newsletter_tenant_coll_status": {
707
+ "name": "idx_newsletter_tenant_coll_status",
708
+ "columns": [
709
+ "tenant_id",
710
+ "collection",
711
+ "status"
712
+ ],
713
+ "isUnique": false
714
+ }
715
+ },
716
+ "foreignKeys": {},
717
+ "compositePrimaryKeys": {
718
+ "newsletter_subscribers_tenant_id_collection_email_pk": {
719
+ "columns": [
720
+ "tenant_id",
721
+ "collection",
722
+ "email"
723
+ ],
724
+ "name": "newsletter_subscribers_tenant_id_collection_email_pk"
725
+ }
726
+ },
727
+ "uniqueConstraints": {},
728
+ "checkConstraints": {}
729
+ },
730
+ "orders": {
731
+ "name": "orders",
732
+ "columns": {
733
+ "tenant_id": {
734
+ "name": "tenant_id",
735
+ "type": "text",
736
+ "primaryKey": false,
737
+ "notNull": true,
738
+ "autoincrement": false
739
+ },
740
+ "external_order_id": {
741
+ "name": "external_order_id",
742
+ "type": "text",
743
+ "primaryKey": false,
744
+ "notNull": true,
745
+ "autoincrement": false
746
+ },
747
+ "env": {
748
+ "name": "env",
749
+ "type": "text",
750
+ "primaryKey": false,
751
+ "notNull": true,
752
+ "autoincrement": false
753
+ },
754
+ "status": {
755
+ "name": "status",
756
+ "type": "text",
757
+ "primaryKey": false,
758
+ "notNull": true,
759
+ "autoincrement": false
760
+ },
761
+ "currency": {
762
+ "name": "currency",
763
+ "type": "text",
764
+ "primaryKey": false,
765
+ "notNull": true,
766
+ "autoincrement": false
767
+ },
768
+ "total": {
769
+ "name": "total",
770
+ "type": "real",
771
+ "primaryKey": false,
772
+ "notNull": true,
773
+ "autoincrement": false,
774
+ "default": 0
775
+ },
776
+ "subtotal": {
777
+ "name": "subtotal",
778
+ "type": "real",
779
+ "primaryKey": false,
780
+ "notNull": false,
781
+ "autoincrement": false
782
+ },
783
+ "customer_hash": {
784
+ "name": "customer_hash",
785
+ "type": "text",
786
+ "primaryKey": false,
787
+ "notNull": false,
788
+ "autoincrement": false
789
+ },
790
+ "line_items": {
791
+ "name": "line_items",
792
+ "type": "text",
793
+ "primaryKey": false,
794
+ "notNull": true,
795
+ "autoincrement": false,
796
+ "default": "'[]'"
797
+ },
798
+ "created_at": {
799
+ "name": "created_at",
800
+ "type": "text",
801
+ "primaryKey": false,
802
+ "notNull": true,
803
+ "autoincrement": false
804
+ },
805
+ "updated_at": {
806
+ "name": "updated_at",
807
+ "type": "text",
808
+ "primaryKey": false,
809
+ "notNull": true,
810
+ "autoincrement": false
811
+ }
812
+ },
813
+ "indexes": {
814
+ "idx_orders_tenant": {
815
+ "name": "idx_orders_tenant",
816
+ "columns": [
817
+ "tenant_id"
818
+ ],
819
+ "isUnique": false
820
+ }
821
+ },
822
+ "foreignKeys": {},
823
+ "compositePrimaryKeys": {
824
+ "orders_tenant_id_external_order_id_pk": {
825
+ "columns": [
826
+ "tenant_id",
827
+ "external_order_id"
828
+ ],
829
+ "name": "orders_tenant_id_external_order_id_pk"
830
+ }
831
+ },
832
+ "uniqueConstraints": {},
833
+ "checkConstraints": {}
834
+ },
835
+ "webhook_deliveries": {
836
+ "name": "webhook_deliveries",
837
+ "columns": {
838
+ "delivery_id": {
839
+ "name": "delivery_id",
840
+ "type": "text",
841
+ "primaryKey": true,
842
+ "notNull": true,
843
+ "autoincrement": false
844
+ },
845
+ "event_id": {
846
+ "name": "event_id",
847
+ "type": "text",
848
+ "primaryKey": false,
849
+ "notNull": true,
850
+ "autoincrement": false
851
+ },
852
+ "install_id": {
853
+ "name": "install_id",
854
+ "type": "text",
855
+ "primaryKey": false,
856
+ "notNull": true,
857
+ "autoincrement": false
858
+ },
859
+ "tenant_id": {
860
+ "name": "tenant_id",
861
+ "type": "text",
862
+ "primaryKey": false,
863
+ "notNull": true,
864
+ "autoincrement": false
865
+ },
866
+ "topic": {
867
+ "name": "topic",
868
+ "type": "text",
869
+ "primaryKey": false,
870
+ "notNull": true,
871
+ "autoincrement": false
872
+ },
873
+ "state": {
874
+ "name": "state",
875
+ "type": "text",
876
+ "primaryKey": false,
877
+ "notNull": true,
878
+ "autoincrement": false,
879
+ "default": "'pending'"
880
+ },
881
+ "attempts": {
882
+ "name": "attempts",
883
+ "type": "integer",
884
+ "primaryKey": false,
885
+ "notNull": true,
886
+ "autoincrement": false,
887
+ "default": 0
888
+ },
889
+ "last_status": {
890
+ "name": "last_status",
891
+ "type": "integer",
892
+ "primaryKey": false,
893
+ "notNull": false,
894
+ "autoincrement": false
895
+ },
896
+ "last_error_class": {
897
+ "name": "last_error_class",
898
+ "type": "text",
899
+ "primaryKey": false,
900
+ "notNull": false,
901
+ "autoincrement": false
902
+ },
903
+ "last_trace_id": {
904
+ "name": "last_trace_id",
905
+ "type": "text",
906
+ "primaryKey": false,
907
+ "notNull": false,
908
+ "autoincrement": false
909
+ },
910
+ "next_attempt_at": {
911
+ "name": "next_attempt_at",
912
+ "type": "text",
913
+ "primaryKey": false,
914
+ "notNull": false,
915
+ "autoincrement": false
916
+ },
917
+ "created_at": {
918
+ "name": "created_at",
919
+ "type": "text",
920
+ "primaryKey": false,
921
+ "notNull": true,
922
+ "autoincrement": false
923
+ },
924
+ "updated_at": {
925
+ "name": "updated_at",
926
+ "type": "text",
927
+ "primaryKey": false,
928
+ "notNull": true,
929
+ "autoincrement": false
930
+ }
931
+ },
932
+ "indexes": {
933
+ "idx_webhook_deliveries_install": {
934
+ "name": "idx_webhook_deliveries_install",
935
+ "columns": [
936
+ "install_id"
937
+ ],
938
+ "isUnique": false
939
+ },
940
+ "idx_webhook_deliveries_due": {
941
+ "name": "idx_webhook_deliveries_due",
942
+ "columns": [
943
+ "state",
944
+ "next_attempt_at"
945
+ ],
946
+ "isUnique": false
947
+ }
948
+ },
949
+ "foreignKeys": {},
950
+ "compositePrimaryKeys": {},
951
+ "uniqueConstraints": {},
952
+ "checkConstraints": {}
953
+ },
954
+ "webhook_delivery_attempts": {
955
+ "name": "webhook_delivery_attempts",
956
+ "columns": {
957
+ "id": {
958
+ "name": "id",
959
+ "type": "text",
960
+ "primaryKey": true,
961
+ "notNull": true,
962
+ "autoincrement": false
963
+ },
964
+ "delivery_id": {
965
+ "name": "delivery_id",
966
+ "type": "text",
967
+ "primaryKey": false,
968
+ "notNull": true,
969
+ "autoincrement": false
970
+ },
971
+ "attempt_no": {
972
+ "name": "attempt_no",
973
+ "type": "integer",
974
+ "primaryKey": false,
975
+ "notNull": true,
976
+ "autoincrement": false
977
+ },
978
+ "started_at": {
979
+ "name": "started_at",
980
+ "type": "text",
981
+ "primaryKey": false,
982
+ "notNull": true,
983
+ "autoincrement": false
984
+ },
985
+ "duration_ms": {
986
+ "name": "duration_ms",
987
+ "type": "integer",
988
+ "primaryKey": false,
989
+ "notNull": false,
990
+ "autoincrement": false
991
+ },
992
+ "http_status": {
993
+ "name": "http_status",
994
+ "type": "integer",
995
+ "primaryKey": false,
996
+ "notNull": false,
997
+ "autoincrement": false
998
+ },
999
+ "error_class": {
1000
+ "name": "error_class",
1001
+ "type": "text",
1002
+ "primaryKey": false,
1003
+ "notNull": false,
1004
+ "autoincrement": false
1005
+ },
1006
+ "trace_id": {
1007
+ "name": "trace_id",
1008
+ "type": "text",
1009
+ "primaryKey": false,
1010
+ "notNull": false,
1011
+ "autoincrement": false
1012
+ }
1013
+ },
1014
+ "indexes": {
1015
+ "idx_webhook_delivery_attempts_delivery": {
1016
+ "name": "idx_webhook_delivery_attempts_delivery",
1017
+ "columns": [
1018
+ "delivery_id"
1019
+ ],
1020
+ "isUnique": false
1021
+ }
1022
+ },
1023
+ "foreignKeys": {},
1024
+ "compositePrimaryKeys": {},
1025
+ "uniqueConstraints": {},
1026
+ "checkConstraints": {}
1027
+ },
1028
+ "webhook_events": {
1029
+ "name": "webhook_events",
1030
+ "columns": {
1031
+ "id": {
1032
+ "name": "id",
1033
+ "type": "text",
1034
+ "primaryKey": true,
1035
+ "notNull": true,
1036
+ "autoincrement": false
1037
+ },
1038
+ "tenant_id": {
1039
+ "name": "tenant_id",
1040
+ "type": "text",
1041
+ "primaryKey": false,
1042
+ "notNull": true,
1043
+ "autoincrement": false
1044
+ },
1045
+ "topic": {
1046
+ "name": "topic",
1047
+ "type": "text",
1048
+ "primaryKey": false,
1049
+ "notNull": true,
1050
+ "autoincrement": false
1051
+ },
1052
+ "dataschema_version": {
1053
+ "name": "dataschema_version",
1054
+ "type": "text",
1055
+ "primaryKey": false,
1056
+ "notNull": true,
1057
+ "autoincrement": false
1058
+ },
1059
+ "payload": {
1060
+ "name": "payload",
1061
+ "type": "text",
1062
+ "primaryKey": false,
1063
+ "notNull": true,
1064
+ "autoincrement": false
1065
+ },
1066
+ "created_at": {
1067
+ "name": "created_at",
1068
+ "type": "text",
1069
+ "primaryKey": false,
1070
+ "notNull": true,
1071
+ "autoincrement": false
1072
+ }
1073
+ },
1074
+ "indexes": {},
1075
+ "foreignKeys": {},
1076
+ "compositePrimaryKeys": {},
1077
+ "uniqueConstraints": {},
1078
+ "checkConstraints": {}
1079
+ },
1080
+ "webhook_install_health": {
1081
+ "name": "webhook_install_health",
1082
+ "columns": {
1083
+ "install_id": {
1084
+ "name": "install_id",
1085
+ "type": "text",
1086
+ "primaryKey": true,
1087
+ "notNull": true,
1088
+ "autoincrement": false
1089
+ },
1090
+ "last_success_at": {
1091
+ "name": "last_success_at",
1092
+ "type": "text",
1093
+ "primaryKey": false,
1094
+ "notNull": false,
1095
+ "autoincrement": false
1096
+ },
1097
+ "failure_streak": {
1098
+ "name": "failure_streak",
1099
+ "type": "integer",
1100
+ "primaryKey": false,
1101
+ "notNull": true,
1102
+ "autoincrement": false,
1103
+ "default": 0
1104
+ },
1105
+ "dlq_count": {
1106
+ "name": "dlq_count",
1107
+ "type": "integer",
1108
+ "primaryKey": false,
1109
+ "notNull": true,
1110
+ "autoincrement": false,
1111
+ "default": 0
1112
+ },
1113
+ "last_status": {
1114
+ "name": "last_status",
1115
+ "type": "integer",
1116
+ "primaryKey": false,
1117
+ "notNull": false,
1118
+ "autoincrement": false
1119
+ },
1120
+ "last_error_class": {
1121
+ "name": "last_error_class",
1122
+ "type": "text",
1123
+ "primaryKey": false,
1124
+ "notNull": false,
1125
+ "autoincrement": false
1126
+ },
1127
+ "recent_trace_ids": {
1128
+ "name": "recent_trace_ids",
1129
+ "type": "text",
1130
+ "primaryKey": false,
1131
+ "notNull": true,
1132
+ "autoincrement": false,
1133
+ "default": "'[]'"
1134
+ },
1135
+ "updated_at": {
1136
+ "name": "updated_at",
1137
+ "type": "text",
1138
+ "primaryKey": false,
1139
+ "notNull": true,
1140
+ "autoincrement": false
1141
+ }
1142
+ },
1143
+ "indexes": {},
1144
+ "foreignKeys": {},
1145
+ "compositePrimaryKeys": {},
1146
+ "uniqueConstraints": {},
1147
+ "checkConstraints": {}
1148
+ }
1149
+ },
1150
+ "views": {},
1151
+ "enums": {},
1152
+ "_meta": {
1153
+ "schemas": {},
1154
+ "tables": {},
1155
+ "columns": {}
1156
+ },
1157
+ "internal": {
1158
+ "indexes": {}
1159
+ }
1160
+ }