@synoikia/core 0.1.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 (209) hide show
  1. package/LICENSE +21 -0
  2. package/dist/app.d.ts +79 -0
  3. package/dist/app.js +155 -0
  4. package/dist/app.js.map +1 -0
  5. package/dist/approvals/links.d.ts +23 -0
  6. package/dist/approvals/links.js +49 -0
  7. package/dist/approvals/links.js.map +1 -0
  8. package/dist/approvals/service.d.ts +110 -0
  9. package/dist/approvals/service.js +182 -0
  10. package/dist/approvals/service.js.map +1 -0
  11. package/dist/audit-query.d.ts +52 -0
  12. package/dist/audit-query.js +116 -0
  13. package/dist/audit-query.js.map +1 -0
  14. package/dist/audit.d.ts +5 -0
  15. package/dist/audit.js +8 -0
  16. package/dist/audit.js.map +1 -0
  17. package/dist/auth/mcp-auth.d.ts +50 -0
  18. package/dist/auth/mcp-auth.js +160 -0
  19. package/dist/auth/mcp-auth.js.map +1 -0
  20. package/dist/auth/mcp-tokens.d.ts +57 -0
  21. package/dist/auth/mcp-tokens.js +143 -0
  22. package/dist/auth/mcp-tokens.js.map +1 -0
  23. package/dist/auth/oauth.d.ts +188 -0
  24. package/dist/auth/oauth.js +470 -0
  25. package/dist/auth/oauth.js.map +1 -0
  26. package/dist/auth/oidc.d.ts +110 -0
  27. package/dist/auth/oidc.js +221 -0
  28. package/dist/auth/oidc.js.map +1 -0
  29. package/dist/auth/sessions.d.ts +34 -0
  30. package/dist/auth/sessions.js +83 -0
  31. package/dist/auth/sessions.js.map +1 -0
  32. package/dist/auth/throttle.d.ts +31 -0
  33. package/dist/auth/throttle.js +52 -0
  34. package/dist/auth/throttle.js.map +1 -0
  35. package/dist/auth/tokens.d.ts +7 -0
  36. package/dist/auth/tokens.js +40 -0
  37. package/dist/auth/tokens.js.map +1 -0
  38. package/dist/auth/totp.d.ts +14 -0
  39. package/dist/auth/totp.js +81 -0
  40. package/dist/auth/totp.js.map +1 -0
  41. package/dist/auth/users.d.ts +70 -0
  42. package/dist/auth/users.js +296 -0
  43. package/dist/auth/users.js.map +1 -0
  44. package/dist/catalog/groups.d.ts +102 -0
  45. package/dist/catalog/groups.js +363 -0
  46. package/dist/catalog/groups.js.map +1 -0
  47. package/dist/catalog/registry.d.ts +25 -0
  48. package/dist/catalog/registry.js +80 -0
  49. package/dist/catalog/registry.js.map +1 -0
  50. package/dist/catalog/rules.d.ts +128 -0
  51. package/dist/catalog/rules.js +178 -0
  52. package/dist/catalog/rules.js.map +1 -0
  53. package/dist/catalog/sync.d.ts +29 -0
  54. package/dist/catalog/sync.js +222 -0
  55. package/dist/catalog/sync.js.map +1 -0
  56. package/dist/cli.d.ts +3 -0
  57. package/dist/cli.js +83 -0
  58. package/dist/cli.js.map +1 -0
  59. package/dist/config/env.d.ts +40 -0
  60. package/dist/config/env.js +71 -0
  61. package/dist/config/env.js.map +1 -0
  62. package/dist/crypto/index.d.ts +28 -0
  63. package/dist/crypto/index.js +88 -0
  64. package/dist/crypto/index.js.map +1 -0
  65. package/dist/crypto/rotate.d.ts +15 -0
  66. package/dist/crypto/rotate.js +61 -0
  67. package/dist/crypto/rotate.js.map +1 -0
  68. package/dist/db/index.d.ts +17 -0
  69. package/dist/db/index.js +29 -0
  70. package/dist/db/index.js.map +1 -0
  71. package/dist/db/schema.d.ts +4389 -0
  72. package/dist/db/schema.js +372 -0
  73. package/dist/db/schema.js.map +1 -0
  74. package/dist/endpoints/slug.d.ts +3 -0
  75. package/dist/endpoints/slug.js +7 -0
  76. package/dist/endpoints/slug.js.map +1 -0
  77. package/dist/errors.d.ts +16 -0
  78. package/dist/errors.js +29 -0
  79. package/dist/errors.js.map +1 -0
  80. package/dist/events.d.ts +43 -0
  81. package/dist/events.js +16 -0
  82. package/dist/events.js.map +1 -0
  83. package/dist/gate/access.d.ts +47 -0
  84. package/dist/gate/access.js +48 -0
  85. package/dist/gate/access.js.map +1 -0
  86. package/dist/gate/attestation.d.ts +23 -0
  87. package/dist/gate/attestation.js +33 -0
  88. package/dist/gate/attestation.js.map +1 -0
  89. package/dist/gate/canonical.d.ts +3 -0
  90. package/dist/gate/canonical.js +11 -0
  91. package/dist/gate/canonical.js.map +1 -0
  92. package/dist/gate/match.d.ts +67 -0
  93. package/dist/gate/match.js +133 -0
  94. package/dist/gate/match.js.map +1 -0
  95. package/dist/gate/pipeline.d.ts +61 -0
  96. package/dist/gate/pipeline.js +284 -0
  97. package/dist/gate/pipeline.js.map +1 -0
  98. package/dist/gate/preapproval.d.ts +24 -0
  99. package/dist/gate/preapproval.js +48 -0
  100. package/dist/gate/preapproval.js.map +1 -0
  101. package/dist/gate/rate-limit.d.ts +35 -0
  102. package/dist/gate/rate-limit.js +82 -0
  103. package/dist/gate/rate-limit.js.map +1 -0
  104. package/dist/gate/redact.d.ts +23 -0
  105. package/dist/gate/redact.js +87 -0
  106. package/dist/gate/redact.js.map +1 -0
  107. package/dist/http/admin/auth.d.ts +33 -0
  108. package/dist/http/admin/auth.js +338 -0
  109. package/dist/http/admin/auth.js.map +1 -0
  110. package/dist/http/admin/instances.d.ts +5 -0
  111. package/dist/http/admin/instances.js +193 -0
  112. package/dist/http/admin/instances.js.map +1 -0
  113. package/dist/http/admin/system.d.ts +5 -0
  114. package/dist/http/admin/system.js +225 -0
  115. package/dist/http/admin/system.js.map +1 -0
  116. package/dist/http/admin-app.d.ts +9 -0
  117. package/dist/http/admin-app.js +51 -0
  118. package/dist/http/admin-app.js.map +1 -0
  119. package/dist/http/common.d.ts +32 -0
  120. package/dist/http/common.js +80 -0
  121. package/dist/http/common.js.map +1 -0
  122. package/dist/http/mcp/approval-routes.d.ts +11 -0
  123. package/dist/http/mcp/approval-routes.js +117 -0
  124. package/dist/http/mcp/approval-routes.js.map +1 -0
  125. package/dist/http/mcp/endpoint.d.ts +32 -0
  126. package/dist/http/mcp/endpoint.js +293 -0
  127. package/dist/http/mcp/endpoint.js.map +1 -0
  128. package/dist/http/mcp/oauth-routes.d.ts +29 -0
  129. package/dist/http/mcp/oauth-routes.js +465 -0
  130. package/dist/http/mcp/oauth-routes.js.map +1 -0
  131. package/dist/http/mcp/pages.d.ts +63 -0
  132. package/dist/http/mcp/pages.js +200 -0
  133. package/dist/http/mcp/pages.js.map +1 -0
  134. package/dist/http/mcp-app.d.ts +7 -0
  135. package/dist/http/mcp-app.js +30 -0
  136. package/dist/http/mcp-app.js.map +1 -0
  137. package/dist/instances/connection.d.ts +37 -0
  138. package/dist/instances/connection.js +109 -0
  139. package/dist/instances/connection.js.map +1 -0
  140. package/dist/instances/manager.d.ts +313 -0
  141. package/dist/instances/manager.js +600 -0
  142. package/dist/instances/manager.js.map +1 -0
  143. package/dist/instances/settings.d.ts +42 -0
  144. package/dist/instances/settings.js +57 -0
  145. package/dist/instances/settings.js.map +1 -0
  146. package/dist/lenient.d.ts +16 -0
  147. package/dist/lenient.js +51 -0
  148. package/dist/lenient.js.map +1 -0
  149. package/dist/lock.d.ts +28 -0
  150. package/dist/lock.js +77 -0
  151. package/dist/lock.js.map +1 -0
  152. package/dist/main.d.ts +1 -0
  153. package/dist/main.js +38 -0
  154. package/dist/main.js.map +1 -0
  155. package/dist/maintenance.d.ts +10 -0
  156. package/dist/maintenance.js +48 -0
  157. package/dist/maintenance.js.map +1 -0
  158. package/dist/notify/service.d.ts +149 -0
  159. package/dist/notify/service.js +358 -0
  160. package/dist/notify/service.js.map +1 -0
  161. package/dist/plugins/discovery.d.ts +39 -0
  162. package/dist/plugins/discovery.js +157 -0
  163. package/dist/plugins/discovery.js.map +1 -0
  164. package/dist/plugins/minisign.d.ts +25 -0
  165. package/dist/plugins/minisign.js +49 -0
  166. package/dist/plugins/minisign.js.map +1 -0
  167. package/dist/plugins/process.d.ts +55 -0
  168. package/dist/plugins/process.js +162 -0
  169. package/dist/plugins/process.js.map +1 -0
  170. package/dist/plugins/repos.d.ts +198 -0
  171. package/dist/plugins/repos.js +612 -0
  172. package/dist/plugins/repos.js.map +1 -0
  173. package/dist/plugins/supervisor.d.ts +50 -0
  174. package/dist/plugins/supervisor.js +125 -0
  175. package/dist/plugins/supervisor.js.map +1 -0
  176. package/dist/runtime/index.d.ts +28 -0
  177. package/dist/runtime/index.js +248 -0
  178. package/dist/runtime/index.js.map +1 -0
  179. package/dist/sandbox/index.d.ts +53 -0
  180. package/dist/sandbox/index.js +197 -0
  181. package/dist/sandbox/index.js.map +1 -0
  182. package/dist/server.d.ts +16 -0
  183. package/dist/server.js +36 -0
  184. package/dist/server.js.map +1 -0
  185. package/dist/settings.d.ts +43 -0
  186. package/dist/settings.js +99 -0
  187. package/dist/settings.js.map +1 -0
  188. package/dist/testing/index.d.ts +73 -0
  189. package/dist/testing/index.js +174 -0
  190. package/dist/testing/index.js.map +1 -0
  191. package/dist/version.d.ts +2 -0
  192. package/dist/version.js +4 -0
  193. package/dist/version.js.map +1 -0
  194. package/drizzle/0000_init.sql +334 -0
  195. package/drizzle/0001_totp_last_step.sql +1 -0
  196. package/drizzle/0002_access_levels.sql +16 -0
  197. package/drizzle/0003_drop_exclusion_flags.sql +2 -0
  198. package/drizzle/0004_grant_instance_ids.sql +1 -0
  199. package/drizzle/0005_rule_strict_miss.sql +1 -0
  200. package/drizzle/0006_attestation_waived.sql +1 -0
  201. package/drizzle/meta/0000_snapshot.json +2318 -0
  202. package/drizzle/meta/0001_snapshot.json +2325 -0
  203. package/drizzle/meta/0002_snapshot.json +2348 -0
  204. package/drizzle/meta/0003_snapshot.json +2332 -0
  205. package/drizzle/meta/0004_snapshot.json +2339 -0
  206. package/drizzle/meta/0005_snapshot.json +2346 -0
  207. package/drizzle/meta/0006_snapshot.json +2354 -0
  208. package/drizzle/meta/_journal.json +55 -0
  209. package/package.json +58 -0
@@ -0,0 +1,2325 @@
1
+ {
2
+ "version": "6",
3
+ "dialect": "sqlite",
4
+ "id": "980cfd25-00e2-4e4f-8d93-c02148f02618",
5
+ "prevId": "bafb4849-5a6c-459b-bc79-d1c7cf4197a3",
6
+ "tables": {
7
+ "approval_links": {
8
+ "name": "approval_links",
9
+ "columns": {
10
+ "token_hash": {
11
+ "name": "token_hash",
12
+ "type": "text",
13
+ "primaryKey": true,
14
+ "notNull": true,
15
+ "autoincrement": false
16
+ },
17
+ "approval_id": {
18
+ "name": "approval_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
+ "expires_at": {
32
+ "name": "expires_at",
33
+ "type": "integer",
34
+ "primaryKey": false,
35
+ "notNull": true,
36
+ "autoincrement": false
37
+ },
38
+ "used_at": {
39
+ "name": "used_at",
40
+ "type": "integer",
41
+ "primaryKey": false,
42
+ "notNull": false,
43
+ "autoincrement": false
44
+ }
45
+ },
46
+ "indexes": {},
47
+ "foreignKeys": {
48
+ "approval_links_approval_id_pending_approvals_id_fk": {
49
+ "name": "approval_links_approval_id_pending_approvals_id_fk",
50
+ "tableFrom": "approval_links",
51
+ "tableTo": "pending_approvals",
52
+ "columnsFrom": [
53
+ "approval_id"
54
+ ],
55
+ "columnsTo": [
56
+ "id"
57
+ ],
58
+ "onDelete": "cascade",
59
+ "onUpdate": "no action"
60
+ }
61
+ },
62
+ "compositePrimaryKeys": {},
63
+ "uniqueConstraints": {},
64
+ "checkConstraints": {}
65
+ },
66
+ "audit_log": {
67
+ "name": "audit_log",
68
+ "columns": {
69
+ "id": {
70
+ "name": "id",
71
+ "type": "integer",
72
+ "primaryKey": true,
73
+ "notNull": true,
74
+ "autoincrement": true
75
+ },
76
+ "at": {
77
+ "name": "at",
78
+ "type": "integer",
79
+ "primaryKey": false,
80
+ "notNull": true,
81
+ "autoincrement": false
82
+ },
83
+ "kind": {
84
+ "name": "kind",
85
+ "type": "text",
86
+ "primaryKey": false,
87
+ "notNull": true,
88
+ "autoincrement": false
89
+ },
90
+ "instance_id": {
91
+ "name": "instance_id",
92
+ "type": "text",
93
+ "primaryKey": false,
94
+ "notNull": false,
95
+ "autoincrement": false
96
+ },
97
+ "operation_key": {
98
+ "name": "operation_key",
99
+ "type": "text",
100
+ "primaryKey": false,
101
+ "notNull": false,
102
+ "autoincrement": false
103
+ },
104
+ "classification": {
105
+ "name": "classification",
106
+ "type": "text",
107
+ "primaryKey": false,
108
+ "notNull": false,
109
+ "autoincrement": false
110
+ },
111
+ "decision": {
112
+ "name": "decision",
113
+ "type": "text",
114
+ "primaryKey": false,
115
+ "notNull": false,
116
+ "autoincrement": false
117
+ },
118
+ "actor_kind": {
119
+ "name": "actor_kind",
120
+ "type": "text",
121
+ "primaryKey": false,
122
+ "notNull": true,
123
+ "autoincrement": false
124
+ },
125
+ "actor_id": {
126
+ "name": "actor_id",
127
+ "type": "text",
128
+ "primaryKey": false,
129
+ "notNull": false,
130
+ "autoincrement": false
131
+ },
132
+ "decided_by": {
133
+ "name": "decided_by",
134
+ "type": "text",
135
+ "primaryKey": false,
136
+ "notNull": false,
137
+ "autoincrement": false
138
+ },
139
+ "decided_via": {
140
+ "name": "decided_via",
141
+ "type": "text",
142
+ "primaryKey": false,
143
+ "notNull": false,
144
+ "autoincrement": false
145
+ },
146
+ "params": {
147
+ "name": "params",
148
+ "type": "text",
149
+ "primaryKey": false,
150
+ "notNull": false,
151
+ "autoincrement": false
152
+ },
153
+ "resolved_targets": {
154
+ "name": "resolved_targets",
155
+ "type": "text",
156
+ "primaryKey": false,
157
+ "notNull": false,
158
+ "autoincrement": false
159
+ },
160
+ "result_status": {
161
+ "name": "result_status",
162
+ "type": "text",
163
+ "primaryKey": false,
164
+ "notNull": false,
165
+ "autoincrement": false
166
+ },
167
+ "duration_ms": {
168
+ "name": "duration_ms",
169
+ "type": "integer",
170
+ "primaryKey": false,
171
+ "notNull": false,
172
+ "autoincrement": false
173
+ },
174
+ "detail": {
175
+ "name": "detail",
176
+ "type": "text",
177
+ "primaryKey": false,
178
+ "notNull": false,
179
+ "autoincrement": false
180
+ }
181
+ },
182
+ "indexes": {
183
+ "audit_at_idx": {
184
+ "name": "audit_at_idx",
185
+ "columns": [
186
+ "at"
187
+ ],
188
+ "isUnique": false
189
+ },
190
+ "audit_instance_at_idx": {
191
+ "name": "audit_instance_at_idx",
192
+ "columns": [
193
+ "instance_id",
194
+ "at"
195
+ ],
196
+ "isUnique": false
197
+ }
198
+ },
199
+ "foreignKeys": {},
200
+ "compositePrimaryKeys": {},
201
+ "uniqueConstraints": {},
202
+ "checkConstraints": {}
203
+ },
204
+ "guides": {
205
+ "name": "guides",
206
+ "columns": {
207
+ "id": {
208
+ "name": "id",
209
+ "type": "text",
210
+ "primaryKey": true,
211
+ "notNull": true,
212
+ "autoincrement": false
213
+ },
214
+ "instance_id": {
215
+ "name": "instance_id",
216
+ "type": "text",
217
+ "primaryKey": false,
218
+ "notNull": true,
219
+ "autoincrement": false
220
+ },
221
+ "operation_id": {
222
+ "name": "operation_id",
223
+ "type": "text",
224
+ "primaryKey": false,
225
+ "notNull": true,
226
+ "autoincrement": false
227
+ },
228
+ "version": {
229
+ "name": "version",
230
+ "type": "text",
231
+ "primaryKey": false,
232
+ "notNull": true,
233
+ "autoincrement": false
234
+ },
235
+ "content": {
236
+ "name": "content",
237
+ "type": "text",
238
+ "primaryKey": false,
239
+ "notNull": true,
240
+ "autoincrement": false
241
+ },
242
+ "fetched_at": {
243
+ "name": "fetched_at",
244
+ "type": "integer",
245
+ "primaryKey": false,
246
+ "notNull": true,
247
+ "autoincrement": false
248
+ }
249
+ },
250
+ "indexes": {},
251
+ "foreignKeys": {
252
+ "guides_instance_id_plugin_instances_id_fk": {
253
+ "name": "guides_instance_id_plugin_instances_id_fk",
254
+ "tableFrom": "guides",
255
+ "tableTo": "plugin_instances",
256
+ "columnsFrom": [
257
+ "instance_id"
258
+ ],
259
+ "columnsTo": [
260
+ "id"
261
+ ],
262
+ "onDelete": "cascade",
263
+ "onUpdate": "no action"
264
+ },
265
+ "guides_operation_id_operations_id_fk": {
266
+ "name": "guides_operation_id_operations_id_fk",
267
+ "tableFrom": "guides",
268
+ "tableTo": "operations",
269
+ "columnsFrom": [
270
+ "operation_id"
271
+ ],
272
+ "columnsTo": [
273
+ "id"
274
+ ],
275
+ "onDelete": "cascade",
276
+ "onUpdate": "no action"
277
+ }
278
+ },
279
+ "compositePrimaryKeys": {},
280
+ "uniqueConstraints": {},
281
+ "checkConstraints": {}
282
+ },
283
+ "mcp_tokens": {
284
+ "name": "mcp_tokens",
285
+ "columns": {
286
+ "id": {
287
+ "name": "id",
288
+ "type": "text",
289
+ "primaryKey": true,
290
+ "notNull": true,
291
+ "autoincrement": false
292
+ },
293
+ "name": {
294
+ "name": "name",
295
+ "type": "text",
296
+ "primaryKey": false,
297
+ "notNull": true,
298
+ "autoincrement": false
299
+ },
300
+ "token_hash": {
301
+ "name": "token_hash",
302
+ "type": "text",
303
+ "primaryKey": false,
304
+ "notNull": true,
305
+ "autoincrement": false
306
+ },
307
+ "scope": {
308
+ "name": "scope",
309
+ "type": "text",
310
+ "primaryKey": false,
311
+ "notNull": true,
312
+ "autoincrement": false
313
+ },
314
+ "created_by": {
315
+ "name": "created_by",
316
+ "type": "text",
317
+ "primaryKey": false,
318
+ "notNull": false,
319
+ "autoincrement": false
320
+ },
321
+ "created_at": {
322
+ "name": "created_at",
323
+ "type": "integer",
324
+ "primaryKey": false,
325
+ "notNull": true,
326
+ "autoincrement": false,
327
+ "default": "(unixepoch() * 1000)"
328
+ },
329
+ "expires_at": {
330
+ "name": "expires_at",
331
+ "type": "integer",
332
+ "primaryKey": false,
333
+ "notNull": false,
334
+ "autoincrement": false
335
+ },
336
+ "last_used_at": {
337
+ "name": "last_used_at",
338
+ "type": "integer",
339
+ "primaryKey": false,
340
+ "notNull": false,
341
+ "autoincrement": false
342
+ },
343
+ "revoked_at": {
344
+ "name": "revoked_at",
345
+ "type": "integer",
346
+ "primaryKey": false,
347
+ "notNull": false,
348
+ "autoincrement": false
349
+ }
350
+ },
351
+ "indexes": {
352
+ "mcp_tokens_token_hash_unique": {
353
+ "name": "mcp_tokens_token_hash_unique",
354
+ "columns": [
355
+ "token_hash"
356
+ ],
357
+ "isUnique": true
358
+ }
359
+ },
360
+ "foreignKeys": {
361
+ "mcp_tokens_created_by_users_id_fk": {
362
+ "name": "mcp_tokens_created_by_users_id_fk",
363
+ "tableFrom": "mcp_tokens",
364
+ "tableTo": "users",
365
+ "columnsFrom": [
366
+ "created_by"
367
+ ],
368
+ "columnsTo": [
369
+ "id"
370
+ ],
371
+ "onDelete": "no action",
372
+ "onUpdate": "no action"
373
+ }
374
+ },
375
+ "compositePrimaryKeys": {},
376
+ "uniqueConstraints": {},
377
+ "checkConstraints": {}
378
+ },
379
+ "notifier_channels": {
380
+ "name": "notifier_channels",
381
+ "columns": {
382
+ "id": {
383
+ "name": "id",
384
+ "type": "text",
385
+ "primaryKey": true,
386
+ "notNull": true,
387
+ "autoincrement": false
388
+ },
389
+ "kind": {
390
+ "name": "kind",
391
+ "type": "text",
392
+ "primaryKey": false,
393
+ "notNull": true,
394
+ "autoincrement": false
395
+ },
396
+ "name": {
397
+ "name": "name",
398
+ "type": "text",
399
+ "primaryKey": false,
400
+ "notNull": true,
401
+ "autoincrement": false
402
+ },
403
+ "config": {
404
+ "name": "config",
405
+ "type": "text",
406
+ "primaryKey": false,
407
+ "notNull": true,
408
+ "autoincrement": false
409
+ },
410
+ "secrets_enc": {
411
+ "name": "secrets_enc",
412
+ "type": "blob",
413
+ "primaryKey": false,
414
+ "notNull": false,
415
+ "autoincrement": false
416
+ },
417
+ "events": {
418
+ "name": "events",
419
+ "type": "text",
420
+ "primaryKey": false,
421
+ "notNull": true,
422
+ "autoincrement": false
423
+ },
424
+ "instance_filter": {
425
+ "name": "instance_filter",
426
+ "type": "text",
427
+ "primaryKey": false,
428
+ "notNull": false,
429
+ "autoincrement": false
430
+ },
431
+ "enabled": {
432
+ "name": "enabled",
433
+ "type": "integer",
434
+ "primaryKey": false,
435
+ "notNull": true,
436
+ "autoincrement": false,
437
+ "default": true
438
+ },
439
+ "last_sent_at": {
440
+ "name": "last_sent_at",
441
+ "type": "integer",
442
+ "primaryKey": false,
443
+ "notNull": false,
444
+ "autoincrement": false
445
+ },
446
+ "last_error": {
447
+ "name": "last_error",
448
+ "type": "text",
449
+ "primaryKey": false,
450
+ "notNull": false,
451
+ "autoincrement": false
452
+ }
453
+ },
454
+ "indexes": {},
455
+ "foreignKeys": {},
456
+ "compositePrimaryKeys": {},
457
+ "uniqueConstraints": {},
458
+ "checkConstraints": {}
459
+ },
460
+ "oauth_clients": {
461
+ "name": "oauth_clients",
462
+ "columns": {
463
+ "id": {
464
+ "name": "id",
465
+ "type": "text",
466
+ "primaryKey": true,
467
+ "notNull": true,
468
+ "autoincrement": false
469
+ },
470
+ "client_id": {
471
+ "name": "client_id",
472
+ "type": "text",
473
+ "primaryKey": false,
474
+ "notNull": true,
475
+ "autoincrement": false
476
+ },
477
+ "client_secret_hash": {
478
+ "name": "client_secret_hash",
479
+ "type": "text",
480
+ "primaryKey": false,
481
+ "notNull": false,
482
+ "autoincrement": false
483
+ },
484
+ "name": {
485
+ "name": "name",
486
+ "type": "text",
487
+ "primaryKey": false,
488
+ "notNull": true,
489
+ "autoincrement": false
490
+ },
491
+ "redirect_uris": {
492
+ "name": "redirect_uris",
493
+ "type": "text",
494
+ "primaryKey": false,
495
+ "notNull": true,
496
+ "autoincrement": false
497
+ },
498
+ "registered_via": {
499
+ "name": "registered_via",
500
+ "type": "text",
501
+ "primaryKey": false,
502
+ "notNull": true,
503
+ "autoincrement": false
504
+ },
505
+ "created_at": {
506
+ "name": "created_at",
507
+ "type": "integer",
508
+ "primaryKey": false,
509
+ "notNull": true,
510
+ "autoincrement": false,
511
+ "default": "(unixepoch() * 1000)"
512
+ },
513
+ "revoked_at": {
514
+ "name": "revoked_at",
515
+ "type": "integer",
516
+ "primaryKey": false,
517
+ "notNull": false,
518
+ "autoincrement": false
519
+ }
520
+ },
521
+ "indexes": {
522
+ "oauth_clients_client_id_unique": {
523
+ "name": "oauth_clients_client_id_unique",
524
+ "columns": [
525
+ "client_id"
526
+ ],
527
+ "isUnique": true
528
+ }
529
+ },
530
+ "foreignKeys": {},
531
+ "compositePrimaryKeys": {},
532
+ "uniqueConstraints": {},
533
+ "checkConstraints": {}
534
+ },
535
+ "oauth_codes": {
536
+ "name": "oauth_codes",
537
+ "columns": {
538
+ "code_hash": {
539
+ "name": "code_hash",
540
+ "type": "text",
541
+ "primaryKey": true,
542
+ "notNull": true,
543
+ "autoincrement": false
544
+ },
545
+ "grant_id": {
546
+ "name": "grant_id",
547
+ "type": "text",
548
+ "primaryKey": false,
549
+ "notNull": true,
550
+ "autoincrement": false
551
+ },
552
+ "code_challenge": {
553
+ "name": "code_challenge",
554
+ "type": "text",
555
+ "primaryKey": false,
556
+ "notNull": true,
557
+ "autoincrement": false
558
+ },
559
+ "redirect_uri": {
560
+ "name": "redirect_uri",
561
+ "type": "text",
562
+ "primaryKey": false,
563
+ "notNull": true,
564
+ "autoincrement": false
565
+ },
566
+ "resources": {
567
+ "name": "resources",
568
+ "type": "text",
569
+ "primaryKey": false,
570
+ "notNull": true,
571
+ "autoincrement": false
572
+ },
573
+ "expires_at": {
574
+ "name": "expires_at",
575
+ "type": "integer",
576
+ "primaryKey": false,
577
+ "notNull": true,
578
+ "autoincrement": false
579
+ },
580
+ "used_at": {
581
+ "name": "used_at",
582
+ "type": "integer",
583
+ "primaryKey": false,
584
+ "notNull": false,
585
+ "autoincrement": false
586
+ }
587
+ },
588
+ "indexes": {},
589
+ "foreignKeys": {
590
+ "oauth_codes_grant_id_oauth_grants_id_fk": {
591
+ "name": "oauth_codes_grant_id_oauth_grants_id_fk",
592
+ "tableFrom": "oauth_codes",
593
+ "tableTo": "oauth_grants",
594
+ "columnsFrom": [
595
+ "grant_id"
596
+ ],
597
+ "columnsTo": [
598
+ "id"
599
+ ],
600
+ "onDelete": "cascade",
601
+ "onUpdate": "no action"
602
+ }
603
+ },
604
+ "compositePrimaryKeys": {},
605
+ "uniqueConstraints": {},
606
+ "checkConstraints": {}
607
+ },
608
+ "oauth_grants": {
609
+ "name": "oauth_grants",
610
+ "columns": {
611
+ "id": {
612
+ "name": "id",
613
+ "type": "text",
614
+ "primaryKey": true,
615
+ "notNull": true,
616
+ "autoincrement": false
617
+ },
618
+ "client_id": {
619
+ "name": "client_id",
620
+ "type": "text",
621
+ "primaryKey": false,
622
+ "notNull": true,
623
+ "autoincrement": false
624
+ },
625
+ "user_id": {
626
+ "name": "user_id",
627
+ "type": "text",
628
+ "primaryKey": false,
629
+ "notNull": true,
630
+ "autoincrement": false
631
+ },
632
+ "resources": {
633
+ "name": "resources",
634
+ "type": "text",
635
+ "primaryKey": false,
636
+ "notNull": true,
637
+ "autoincrement": false
638
+ },
639
+ "created_at": {
640
+ "name": "created_at",
641
+ "type": "integer",
642
+ "primaryKey": false,
643
+ "notNull": true,
644
+ "autoincrement": false,
645
+ "default": "(unixepoch() * 1000)"
646
+ },
647
+ "revoked_at": {
648
+ "name": "revoked_at",
649
+ "type": "integer",
650
+ "primaryKey": false,
651
+ "notNull": false,
652
+ "autoincrement": false
653
+ }
654
+ },
655
+ "indexes": {},
656
+ "foreignKeys": {
657
+ "oauth_grants_client_id_oauth_clients_id_fk": {
658
+ "name": "oauth_grants_client_id_oauth_clients_id_fk",
659
+ "tableFrom": "oauth_grants",
660
+ "tableTo": "oauth_clients",
661
+ "columnsFrom": [
662
+ "client_id"
663
+ ],
664
+ "columnsTo": [
665
+ "id"
666
+ ],
667
+ "onDelete": "cascade",
668
+ "onUpdate": "no action"
669
+ },
670
+ "oauth_grants_user_id_users_id_fk": {
671
+ "name": "oauth_grants_user_id_users_id_fk",
672
+ "tableFrom": "oauth_grants",
673
+ "tableTo": "users",
674
+ "columnsFrom": [
675
+ "user_id"
676
+ ],
677
+ "columnsTo": [
678
+ "id"
679
+ ],
680
+ "onDelete": "cascade",
681
+ "onUpdate": "no action"
682
+ }
683
+ },
684
+ "compositePrimaryKeys": {},
685
+ "uniqueConstraints": {},
686
+ "checkConstraints": {}
687
+ },
688
+ "oauth_tokens": {
689
+ "name": "oauth_tokens",
690
+ "columns": {
691
+ "token_hash": {
692
+ "name": "token_hash",
693
+ "type": "text",
694
+ "primaryKey": true,
695
+ "notNull": true,
696
+ "autoincrement": false
697
+ },
698
+ "grant_id": {
699
+ "name": "grant_id",
700
+ "type": "text",
701
+ "primaryKey": false,
702
+ "notNull": true,
703
+ "autoincrement": false
704
+ },
705
+ "kind": {
706
+ "name": "kind",
707
+ "type": "text",
708
+ "primaryKey": false,
709
+ "notNull": true,
710
+ "autoincrement": false
711
+ },
712
+ "family_id": {
713
+ "name": "family_id",
714
+ "type": "text",
715
+ "primaryKey": false,
716
+ "notNull": true,
717
+ "autoincrement": false
718
+ },
719
+ "resources": {
720
+ "name": "resources",
721
+ "type": "text",
722
+ "primaryKey": false,
723
+ "notNull": true,
724
+ "autoincrement": false
725
+ },
726
+ "expires_at": {
727
+ "name": "expires_at",
728
+ "type": "integer",
729
+ "primaryKey": false,
730
+ "notNull": true,
731
+ "autoincrement": false
732
+ },
733
+ "revoked_at": {
734
+ "name": "revoked_at",
735
+ "type": "integer",
736
+ "primaryKey": false,
737
+ "notNull": false,
738
+ "autoincrement": false
739
+ }
740
+ },
741
+ "indexes": {},
742
+ "foreignKeys": {
743
+ "oauth_tokens_grant_id_oauth_grants_id_fk": {
744
+ "name": "oauth_tokens_grant_id_oauth_grants_id_fk",
745
+ "tableFrom": "oauth_tokens",
746
+ "tableTo": "oauth_grants",
747
+ "columnsFrom": [
748
+ "grant_id"
749
+ ],
750
+ "columnsTo": [
751
+ "id"
752
+ ],
753
+ "onDelete": "cascade",
754
+ "onUpdate": "no action"
755
+ }
756
+ },
757
+ "compositePrimaryKeys": {},
758
+ "uniqueConstraints": {},
759
+ "checkConstraints": {}
760
+ },
761
+ "oidc_config": {
762
+ "name": "oidc_config",
763
+ "columns": {
764
+ "id": {
765
+ "name": "id",
766
+ "type": "integer",
767
+ "primaryKey": true,
768
+ "notNull": true,
769
+ "autoincrement": false
770
+ },
771
+ "issuer": {
772
+ "name": "issuer",
773
+ "type": "text",
774
+ "primaryKey": false,
775
+ "notNull": true,
776
+ "autoincrement": false
777
+ },
778
+ "client_id": {
779
+ "name": "client_id",
780
+ "type": "text",
781
+ "primaryKey": false,
782
+ "notNull": true,
783
+ "autoincrement": false
784
+ },
785
+ "client_secret_enc": {
786
+ "name": "client_secret_enc",
787
+ "type": "blob",
788
+ "primaryKey": false,
789
+ "notNull": false,
790
+ "autoincrement": false
791
+ },
792
+ "scopes": {
793
+ "name": "scopes",
794
+ "type": "text",
795
+ "primaryKey": false,
796
+ "notNull": true,
797
+ "autoincrement": false,
798
+ "default": "'openid email profile'"
799
+ },
800
+ "allow_policy": {
801
+ "name": "allow_policy",
802
+ "type": "text",
803
+ "primaryKey": false,
804
+ "notNull": false,
805
+ "autoincrement": false
806
+ },
807
+ "auto_provision": {
808
+ "name": "auto_provision",
809
+ "type": "integer",
810
+ "primaryKey": false,
811
+ "notNull": true,
812
+ "autoincrement": false,
813
+ "default": false
814
+ },
815
+ "enabled": {
816
+ "name": "enabled",
817
+ "type": "integer",
818
+ "primaryKey": false,
819
+ "notNull": true,
820
+ "autoincrement": false,
821
+ "default": false
822
+ }
823
+ },
824
+ "indexes": {},
825
+ "foreignKeys": {},
826
+ "compositePrimaryKeys": {},
827
+ "uniqueConstraints": {},
828
+ "checkConstraints": {}
829
+ },
830
+ "operation_group_aliases": {
831
+ "name": "operation_group_aliases",
832
+ "columns": {
833
+ "instance_id": {
834
+ "name": "instance_id",
835
+ "type": "text",
836
+ "primaryKey": false,
837
+ "notNull": true,
838
+ "autoincrement": false
839
+ },
840
+ "plugin_group": {
841
+ "name": "plugin_group",
842
+ "type": "text",
843
+ "primaryKey": false,
844
+ "notNull": true,
845
+ "autoincrement": false
846
+ },
847
+ "group_key": {
848
+ "name": "group_key",
849
+ "type": "text",
850
+ "primaryKey": false,
851
+ "notNull": true,
852
+ "autoincrement": false
853
+ }
854
+ },
855
+ "indexes": {
856
+ "operation_group_aliases_idx": {
857
+ "name": "operation_group_aliases_idx",
858
+ "columns": [
859
+ "instance_id",
860
+ "plugin_group"
861
+ ],
862
+ "isUnique": true
863
+ }
864
+ },
865
+ "foreignKeys": {
866
+ "operation_group_aliases_instance_id_plugin_instances_id_fk": {
867
+ "name": "operation_group_aliases_instance_id_plugin_instances_id_fk",
868
+ "tableFrom": "operation_group_aliases",
869
+ "tableTo": "plugin_instances",
870
+ "columnsFrom": [
871
+ "instance_id"
872
+ ],
873
+ "columnsTo": [
874
+ "id"
875
+ ],
876
+ "onDelete": "cascade",
877
+ "onUpdate": "no action"
878
+ }
879
+ },
880
+ "compositePrimaryKeys": {},
881
+ "uniqueConstraints": {},
882
+ "checkConstraints": {}
883
+ },
884
+ "operation_groups": {
885
+ "name": "operation_groups",
886
+ "columns": {
887
+ "id": {
888
+ "name": "id",
889
+ "type": "text",
890
+ "primaryKey": true,
891
+ "notNull": true,
892
+ "autoincrement": false
893
+ },
894
+ "instance_id": {
895
+ "name": "instance_id",
896
+ "type": "text",
897
+ "primaryKey": false,
898
+ "notNull": true,
899
+ "autoincrement": false
900
+ },
901
+ "key": {
902
+ "name": "key",
903
+ "type": "text",
904
+ "primaryKey": false,
905
+ "notNull": true,
906
+ "autoincrement": false
907
+ },
908
+ "label": {
909
+ "name": "label",
910
+ "type": "text",
911
+ "primaryKey": false,
912
+ "notNull": true,
913
+ "autoincrement": false
914
+ },
915
+ "level": {
916
+ "name": "level",
917
+ "type": "text",
918
+ "primaryKey": false,
919
+ "notNull": true,
920
+ "autoincrement": false,
921
+ "default": "'read'"
922
+ },
923
+ "level_changed_at": {
924
+ "name": "level_changed_at",
925
+ "type": "integer",
926
+ "primaryKey": false,
927
+ "notNull": false,
928
+ "autoincrement": false
929
+ },
930
+ "level_changed_by": {
931
+ "name": "level_changed_by",
932
+ "type": "text",
933
+ "primaryKey": false,
934
+ "notNull": false,
935
+ "autoincrement": false
936
+ },
937
+ "first_seen_at": {
938
+ "name": "first_seen_at",
939
+ "type": "integer",
940
+ "primaryKey": false,
941
+ "notNull": true,
942
+ "autoincrement": false
943
+ },
944
+ "stale": {
945
+ "name": "stale",
946
+ "type": "integer",
947
+ "primaryKey": false,
948
+ "notNull": true,
949
+ "autoincrement": false,
950
+ "default": false
951
+ }
952
+ },
953
+ "indexes": {
954
+ "operation_groups_instance_key_idx": {
955
+ "name": "operation_groups_instance_key_idx",
956
+ "columns": [
957
+ "instance_id",
958
+ "key"
959
+ ],
960
+ "isUnique": true
961
+ }
962
+ },
963
+ "foreignKeys": {
964
+ "operation_groups_instance_id_plugin_instances_id_fk": {
965
+ "name": "operation_groups_instance_id_plugin_instances_id_fk",
966
+ "tableFrom": "operation_groups",
967
+ "tableTo": "plugin_instances",
968
+ "columnsFrom": [
969
+ "instance_id"
970
+ ],
971
+ "columnsTo": [
972
+ "id"
973
+ ],
974
+ "onDelete": "cascade",
975
+ "onUpdate": "no action"
976
+ },
977
+ "operation_groups_level_changed_by_users_id_fk": {
978
+ "name": "operation_groups_level_changed_by_users_id_fk",
979
+ "tableFrom": "operation_groups",
980
+ "tableTo": "users",
981
+ "columnsFrom": [
982
+ "level_changed_by"
983
+ ],
984
+ "columnsTo": [
985
+ "id"
986
+ ],
987
+ "onDelete": "no action",
988
+ "onUpdate": "no action"
989
+ }
990
+ },
991
+ "compositePrimaryKeys": {},
992
+ "uniqueConstraints": {},
993
+ "checkConstraints": {}
994
+ },
995
+ "operations": {
996
+ "name": "operations",
997
+ "columns": {
998
+ "id": {
999
+ "name": "id",
1000
+ "type": "text",
1001
+ "primaryKey": true,
1002
+ "notNull": true,
1003
+ "autoincrement": false
1004
+ },
1005
+ "instance_id": {
1006
+ "name": "instance_id",
1007
+ "type": "text",
1008
+ "primaryKey": false,
1009
+ "notNull": true,
1010
+ "autoincrement": false
1011
+ },
1012
+ "key": {
1013
+ "name": "key",
1014
+ "type": "text",
1015
+ "primaryKey": false,
1016
+ "notNull": true,
1017
+ "autoincrement": false
1018
+ },
1019
+ "display_name": {
1020
+ "name": "display_name",
1021
+ "type": "text",
1022
+ "primaryKey": false,
1023
+ "notNull": false,
1024
+ "autoincrement": false
1025
+ },
1026
+ "kind": {
1027
+ "name": "kind",
1028
+ "type": "text",
1029
+ "primaryKey": false,
1030
+ "notNull": true,
1031
+ "autoincrement": false
1032
+ },
1033
+ "plugin_group": {
1034
+ "name": "plugin_group",
1035
+ "type": "text",
1036
+ "primaryKey": false,
1037
+ "notNull": true,
1038
+ "autoincrement": false
1039
+ },
1040
+ "group_id": {
1041
+ "name": "group_id",
1042
+ "type": "text",
1043
+ "primaryKey": false,
1044
+ "notNull": true,
1045
+ "autoincrement": false
1046
+ },
1047
+ "tag": {
1048
+ "name": "tag",
1049
+ "type": "text",
1050
+ "primaryKey": false,
1051
+ "notNull": false,
1052
+ "autoincrement": false
1053
+ },
1054
+ "classification": {
1055
+ "name": "classification",
1056
+ "type": "text",
1057
+ "primaryKey": false,
1058
+ "notNull": true,
1059
+ "autoincrement": false
1060
+ },
1061
+ "classification_source": {
1062
+ "name": "classification_source",
1063
+ "type": "text",
1064
+ "primaryKey": false,
1065
+ "notNull": true,
1066
+ "autoincrement": false
1067
+ },
1068
+ "inferred_classification": {
1069
+ "name": "inferred_classification",
1070
+ "type": "text",
1071
+ "primaryKey": false,
1072
+ "notNull": true,
1073
+ "autoincrement": false
1074
+ },
1075
+ "inferred_reason": {
1076
+ "name": "inferred_reason",
1077
+ "type": "text",
1078
+ "primaryKey": false,
1079
+ "notNull": true,
1080
+ "autoincrement": false
1081
+ },
1082
+ "locked": {
1083
+ "name": "locked",
1084
+ "type": "integer",
1085
+ "primaryKey": false,
1086
+ "notNull": true,
1087
+ "autoincrement": false,
1088
+ "default": false
1089
+ },
1090
+ "excluded": {
1091
+ "name": "excluded",
1092
+ "type": "integer",
1093
+ "primaryKey": false,
1094
+ "notNull": true,
1095
+ "autoincrement": false,
1096
+ "default": false
1097
+ },
1098
+ "locked_opt_in": {
1099
+ "name": "locked_opt_in",
1100
+ "type": "integer",
1101
+ "primaryKey": false,
1102
+ "notNull": true,
1103
+ "autoincrement": false,
1104
+ "default": false
1105
+ },
1106
+ "write_acknowledged": {
1107
+ "name": "write_acknowledged",
1108
+ "type": "integer",
1109
+ "primaryKey": false,
1110
+ "notNull": true,
1111
+ "autoincrement": false,
1112
+ "default": false
1113
+ },
1114
+ "acknowledged_at": {
1115
+ "name": "acknowledged_at",
1116
+ "type": "integer",
1117
+ "primaryKey": false,
1118
+ "notNull": false,
1119
+ "autoincrement": false
1120
+ },
1121
+ "acknowledged_by": {
1122
+ "name": "acknowledged_by",
1123
+ "type": "text",
1124
+ "primaryKey": false,
1125
+ "notNull": false,
1126
+ "autoincrement": false
1127
+ },
1128
+ "typed_confirmation": {
1129
+ "name": "typed_confirmation",
1130
+ "type": "integer",
1131
+ "primaryKey": false,
1132
+ "notNull": true,
1133
+ "autoincrement": false,
1134
+ "default": false
1135
+ },
1136
+ "attestation_required": {
1137
+ "name": "attestation_required",
1138
+ "type": "integer",
1139
+ "primaryKey": false,
1140
+ "notNull": true,
1141
+ "autoincrement": false,
1142
+ "default": false
1143
+ },
1144
+ "needs_review": {
1145
+ "name": "needs_review",
1146
+ "type": "integer",
1147
+ "primaryKey": false,
1148
+ "notNull": true,
1149
+ "autoincrement": false,
1150
+ "default": false
1151
+ },
1152
+ "match_profile": {
1153
+ "name": "match_profile",
1154
+ "type": "text",
1155
+ "primaryKey": false,
1156
+ "notNull": false,
1157
+ "autoincrement": false
1158
+ },
1159
+ "params_schema": {
1160
+ "name": "params_schema",
1161
+ "type": "text",
1162
+ "primaryKey": false,
1163
+ "notNull": false,
1164
+ "autoincrement": false
1165
+ },
1166
+ "docs": {
1167
+ "name": "docs",
1168
+ "type": "text",
1169
+ "primaryKey": false,
1170
+ "notNull": false,
1171
+ "autoincrement": false
1172
+ },
1173
+ "first_seen_at": {
1174
+ "name": "first_seen_at",
1175
+ "type": "integer",
1176
+ "primaryKey": false,
1177
+ "notNull": true,
1178
+ "autoincrement": false
1179
+ },
1180
+ "last_seen_at": {
1181
+ "name": "last_seen_at",
1182
+ "type": "integer",
1183
+ "primaryKey": false,
1184
+ "notNull": true,
1185
+ "autoincrement": false
1186
+ },
1187
+ "stale": {
1188
+ "name": "stale",
1189
+ "type": "integer",
1190
+ "primaryKey": false,
1191
+ "notNull": true,
1192
+ "autoincrement": false,
1193
+ "default": false
1194
+ }
1195
+ },
1196
+ "indexes": {
1197
+ "operations_instance_key_idx": {
1198
+ "name": "operations_instance_key_idx",
1199
+ "columns": [
1200
+ "instance_id",
1201
+ "key"
1202
+ ],
1203
+ "isUnique": true
1204
+ },
1205
+ "operations_group_idx": {
1206
+ "name": "operations_group_idx",
1207
+ "columns": [
1208
+ "group_id"
1209
+ ],
1210
+ "isUnique": false
1211
+ }
1212
+ },
1213
+ "foreignKeys": {
1214
+ "operations_instance_id_plugin_instances_id_fk": {
1215
+ "name": "operations_instance_id_plugin_instances_id_fk",
1216
+ "tableFrom": "operations",
1217
+ "tableTo": "plugin_instances",
1218
+ "columnsFrom": [
1219
+ "instance_id"
1220
+ ],
1221
+ "columnsTo": [
1222
+ "id"
1223
+ ],
1224
+ "onDelete": "cascade",
1225
+ "onUpdate": "no action"
1226
+ },
1227
+ "operations_group_id_operation_groups_id_fk": {
1228
+ "name": "operations_group_id_operation_groups_id_fk",
1229
+ "tableFrom": "operations",
1230
+ "tableTo": "operation_groups",
1231
+ "columnsFrom": [
1232
+ "group_id"
1233
+ ],
1234
+ "columnsTo": [
1235
+ "id"
1236
+ ],
1237
+ "onDelete": "no action",
1238
+ "onUpdate": "no action"
1239
+ },
1240
+ "operations_acknowledged_by_users_id_fk": {
1241
+ "name": "operations_acknowledged_by_users_id_fk",
1242
+ "tableFrom": "operations",
1243
+ "tableTo": "users",
1244
+ "columnsFrom": [
1245
+ "acknowledged_by"
1246
+ ],
1247
+ "columnsTo": [
1248
+ "id"
1249
+ ],
1250
+ "onDelete": "no action",
1251
+ "onUpdate": "no action"
1252
+ }
1253
+ },
1254
+ "compositePrimaryKeys": {},
1255
+ "uniqueConstraints": {},
1256
+ "checkConstraints": {}
1257
+ },
1258
+ "pending_approvals": {
1259
+ "name": "pending_approvals",
1260
+ "columns": {
1261
+ "id": {
1262
+ "name": "id",
1263
+ "type": "text",
1264
+ "primaryKey": true,
1265
+ "notNull": true,
1266
+ "autoincrement": false
1267
+ },
1268
+ "instance_id": {
1269
+ "name": "instance_id",
1270
+ "type": "text",
1271
+ "primaryKey": false,
1272
+ "notNull": true,
1273
+ "autoincrement": false
1274
+ },
1275
+ "operation_id": {
1276
+ "name": "operation_id",
1277
+ "type": "text",
1278
+ "primaryKey": false,
1279
+ "notNull": true,
1280
+ "autoincrement": false
1281
+ },
1282
+ "params_display": {
1283
+ "name": "params_display",
1284
+ "type": "text",
1285
+ "primaryKey": false,
1286
+ "notNull": false,
1287
+ "autoincrement": false
1288
+ },
1289
+ "params_hash": {
1290
+ "name": "params_hash",
1291
+ "type": "text",
1292
+ "primaryKey": false,
1293
+ "notNull": true,
1294
+ "autoincrement": false
1295
+ },
1296
+ "resolved_targets": {
1297
+ "name": "resolved_targets",
1298
+ "type": "text",
1299
+ "primaryKey": false,
1300
+ "notNull": false,
1301
+ "autoincrement": false
1302
+ },
1303
+ "summary": {
1304
+ "name": "summary",
1305
+ "type": "text",
1306
+ "primaryKey": false,
1307
+ "notNull": true,
1308
+ "autoincrement": false
1309
+ },
1310
+ "confirm_literal": {
1311
+ "name": "confirm_literal",
1312
+ "type": "text",
1313
+ "primaryKey": false,
1314
+ "notNull": false,
1315
+ "autoincrement": false
1316
+ },
1317
+ "diff": {
1318
+ "name": "diff",
1319
+ "type": "text",
1320
+ "primaryKey": false,
1321
+ "notNull": false,
1322
+ "autoincrement": false
1323
+ },
1324
+ "expected_hash": {
1325
+ "name": "expected_hash",
1326
+ "type": "text",
1327
+ "primaryKey": false,
1328
+ "notNull": false,
1329
+ "autoincrement": false
1330
+ },
1331
+ "client_kind": {
1332
+ "name": "client_kind",
1333
+ "type": "text",
1334
+ "primaryKey": false,
1335
+ "notNull": false,
1336
+ "autoincrement": false
1337
+ },
1338
+ "client_id": {
1339
+ "name": "client_id",
1340
+ "type": "text",
1341
+ "primaryKey": false,
1342
+ "notNull": false,
1343
+ "autoincrement": false
1344
+ },
1345
+ "mcp_session_id": {
1346
+ "name": "mcp_session_id",
1347
+ "type": "text",
1348
+ "primaryKey": false,
1349
+ "notNull": false,
1350
+ "autoincrement": false
1351
+ },
1352
+ "requested_at": {
1353
+ "name": "requested_at",
1354
+ "type": "integer",
1355
+ "primaryKey": false,
1356
+ "notNull": true,
1357
+ "autoincrement": false
1358
+ },
1359
+ "expires_at": {
1360
+ "name": "expires_at",
1361
+ "type": "integer",
1362
+ "primaryKey": false,
1363
+ "notNull": true,
1364
+ "autoincrement": false
1365
+ },
1366
+ "status": {
1367
+ "name": "status",
1368
+ "type": "text",
1369
+ "primaryKey": false,
1370
+ "notNull": true,
1371
+ "autoincrement": false,
1372
+ "default": "'pending'"
1373
+ },
1374
+ "decided_by": {
1375
+ "name": "decided_by",
1376
+ "type": "text",
1377
+ "primaryKey": false,
1378
+ "notNull": false,
1379
+ "autoincrement": false
1380
+ },
1381
+ "decided_via": {
1382
+ "name": "decided_via",
1383
+ "type": "text",
1384
+ "primaryKey": false,
1385
+ "notNull": false,
1386
+ "autoincrement": false
1387
+ },
1388
+ "decided_at": {
1389
+ "name": "decided_at",
1390
+ "type": "integer",
1391
+ "primaryKey": false,
1392
+ "notNull": false,
1393
+ "autoincrement": false
1394
+ }
1395
+ },
1396
+ "indexes": {},
1397
+ "foreignKeys": {
1398
+ "pending_approvals_instance_id_plugin_instances_id_fk": {
1399
+ "name": "pending_approvals_instance_id_plugin_instances_id_fk",
1400
+ "tableFrom": "pending_approvals",
1401
+ "tableTo": "plugin_instances",
1402
+ "columnsFrom": [
1403
+ "instance_id"
1404
+ ],
1405
+ "columnsTo": [
1406
+ "id"
1407
+ ],
1408
+ "onDelete": "no action",
1409
+ "onUpdate": "no action"
1410
+ },
1411
+ "pending_approvals_operation_id_operations_id_fk": {
1412
+ "name": "pending_approvals_operation_id_operations_id_fk",
1413
+ "tableFrom": "pending_approvals",
1414
+ "tableTo": "operations",
1415
+ "columnsFrom": [
1416
+ "operation_id"
1417
+ ],
1418
+ "columnsTo": [
1419
+ "id"
1420
+ ],
1421
+ "onDelete": "no action",
1422
+ "onUpdate": "no action"
1423
+ }
1424
+ },
1425
+ "compositePrimaryKeys": {},
1426
+ "uniqueConstraints": {},
1427
+ "checkConstraints": {}
1428
+ },
1429
+ "plugin_instances": {
1430
+ "name": "plugin_instances",
1431
+ "columns": {
1432
+ "id": {
1433
+ "name": "id",
1434
+ "type": "text",
1435
+ "primaryKey": true,
1436
+ "notNull": true,
1437
+ "autoincrement": false
1438
+ },
1439
+ "plugin_id": {
1440
+ "name": "plugin_id",
1441
+ "type": "text",
1442
+ "primaryKey": false,
1443
+ "notNull": true,
1444
+ "autoincrement": false
1445
+ },
1446
+ "slug": {
1447
+ "name": "slug",
1448
+ "type": "text",
1449
+ "primaryKey": false,
1450
+ "notNull": true,
1451
+ "autoincrement": false
1452
+ },
1453
+ "display_name": {
1454
+ "name": "display_name",
1455
+ "type": "text",
1456
+ "primaryKey": false,
1457
+ "notNull": true,
1458
+ "autoincrement": false
1459
+ },
1460
+ "enabled": {
1461
+ "name": "enabled",
1462
+ "type": "integer",
1463
+ "primaryKey": false,
1464
+ "notNull": true,
1465
+ "autoincrement": false,
1466
+ "default": true
1467
+ },
1468
+ "config": {
1469
+ "name": "config",
1470
+ "type": "text",
1471
+ "primaryKey": false,
1472
+ "notNull": true,
1473
+ "autoincrement": false,
1474
+ "default": "'{}'"
1475
+ },
1476
+ "secrets_enc": {
1477
+ "name": "secrets_enc",
1478
+ "type": "blob",
1479
+ "primaryKey": false,
1480
+ "notNull": false,
1481
+ "autoincrement": false
1482
+ },
1483
+ "auth_mode": {
1484
+ "name": "auth_mode",
1485
+ "type": "text",
1486
+ "primaryKey": false,
1487
+ "notNull": false,
1488
+ "autoincrement": false
1489
+ },
1490
+ "settings": {
1491
+ "name": "settings",
1492
+ "type": "text",
1493
+ "primaryKey": false,
1494
+ "notNull": true,
1495
+ "autoincrement": false,
1496
+ "default": "'{}'"
1497
+ },
1498
+ "status": {
1499
+ "name": "status",
1500
+ "type": "text",
1501
+ "primaryKey": false,
1502
+ "notNull": true,
1503
+ "autoincrement": false,
1504
+ "default": "'stopped'"
1505
+ },
1506
+ "status_error": {
1507
+ "name": "status_error",
1508
+ "type": "text",
1509
+ "primaryKey": false,
1510
+ "notNull": false,
1511
+ "autoincrement": false
1512
+ },
1513
+ "upstream_version": {
1514
+ "name": "upstream_version",
1515
+ "type": "text",
1516
+ "primaryKey": false,
1517
+ "notNull": false,
1518
+ "autoincrement": false
1519
+ },
1520
+ "source_ref": {
1521
+ "name": "source_ref",
1522
+ "type": "text",
1523
+ "primaryKey": false,
1524
+ "notNull": false,
1525
+ "autoincrement": false
1526
+ },
1527
+ "last_synced_at": {
1528
+ "name": "last_synced_at",
1529
+ "type": "integer",
1530
+ "primaryKey": false,
1531
+ "notNull": false,
1532
+ "autoincrement": false
1533
+ },
1534
+ "last_sync_status": {
1535
+ "name": "last_sync_status",
1536
+ "type": "text",
1537
+ "primaryKey": false,
1538
+ "notNull": false,
1539
+ "autoincrement": false
1540
+ },
1541
+ "created_at": {
1542
+ "name": "created_at",
1543
+ "type": "integer",
1544
+ "primaryKey": false,
1545
+ "notNull": true,
1546
+ "autoincrement": false,
1547
+ "default": "(unixepoch() * 1000)"
1548
+ }
1549
+ },
1550
+ "indexes": {
1551
+ "plugin_instances_slug_unique": {
1552
+ "name": "plugin_instances_slug_unique",
1553
+ "columns": [
1554
+ "slug"
1555
+ ],
1556
+ "isUnique": true
1557
+ }
1558
+ },
1559
+ "foreignKeys": {
1560
+ "plugin_instances_plugin_id_plugins_id_fk": {
1561
+ "name": "plugin_instances_plugin_id_plugins_id_fk",
1562
+ "tableFrom": "plugin_instances",
1563
+ "tableTo": "plugins",
1564
+ "columnsFrom": [
1565
+ "plugin_id"
1566
+ ],
1567
+ "columnsTo": [
1568
+ "id"
1569
+ ],
1570
+ "onDelete": "no action",
1571
+ "onUpdate": "no action"
1572
+ }
1573
+ },
1574
+ "compositePrimaryKeys": {},
1575
+ "uniqueConstraints": {},
1576
+ "checkConstraints": {}
1577
+ },
1578
+ "plugin_repos": {
1579
+ "name": "plugin_repos",
1580
+ "columns": {
1581
+ "id": {
1582
+ "name": "id",
1583
+ "type": "text",
1584
+ "primaryKey": true,
1585
+ "notNull": true,
1586
+ "autoincrement": false
1587
+ },
1588
+ "url": {
1589
+ "name": "url",
1590
+ "type": "text",
1591
+ "primaryKey": false,
1592
+ "notNull": true,
1593
+ "autoincrement": false
1594
+ },
1595
+ "name": {
1596
+ "name": "name",
1597
+ "type": "text",
1598
+ "primaryKey": false,
1599
+ "notNull": false,
1600
+ "autoincrement": false
1601
+ },
1602
+ "signing_mode": {
1603
+ "name": "signing_mode",
1604
+ "type": "text",
1605
+ "primaryKey": false,
1606
+ "notNull": true,
1607
+ "autoincrement": false
1608
+ },
1609
+ "public_key": {
1610
+ "name": "public_key",
1611
+ "type": "text",
1612
+ "primaryKey": false,
1613
+ "notNull": false,
1614
+ "autoincrement": false
1615
+ },
1616
+ "key_fingerprint": {
1617
+ "name": "key_fingerprint",
1618
+ "type": "text",
1619
+ "primaryKey": false,
1620
+ "notNull": false,
1621
+ "autoincrement": false
1622
+ },
1623
+ "key_status": {
1624
+ "name": "key_status",
1625
+ "type": "text",
1626
+ "primaryKey": false,
1627
+ "notNull": true,
1628
+ "autoincrement": false,
1629
+ "default": "'ok'"
1630
+ },
1631
+ "index_cache": {
1632
+ "name": "index_cache",
1633
+ "type": "text",
1634
+ "primaryKey": false,
1635
+ "notNull": false,
1636
+ "autoincrement": false
1637
+ },
1638
+ "last_fetched_at": {
1639
+ "name": "last_fetched_at",
1640
+ "type": "integer",
1641
+ "primaryKey": false,
1642
+ "notNull": false,
1643
+ "autoincrement": false
1644
+ },
1645
+ "last_fetch_error": {
1646
+ "name": "last_fetch_error",
1647
+ "type": "text",
1648
+ "primaryKey": false,
1649
+ "notNull": false,
1650
+ "autoincrement": false
1651
+ }
1652
+ },
1653
+ "indexes": {
1654
+ "plugin_repos_url_unique": {
1655
+ "name": "plugin_repos_url_unique",
1656
+ "columns": [
1657
+ "url"
1658
+ ],
1659
+ "isUnique": true
1660
+ }
1661
+ },
1662
+ "foreignKeys": {},
1663
+ "compositePrimaryKeys": {},
1664
+ "uniqueConstraints": {},
1665
+ "checkConstraints": {}
1666
+ },
1667
+ "plugins": {
1668
+ "name": "plugins",
1669
+ "columns": {
1670
+ "id": {
1671
+ "name": "id",
1672
+ "type": "text",
1673
+ "primaryKey": true,
1674
+ "notNull": true,
1675
+ "autoincrement": false
1676
+ },
1677
+ "plugin_id": {
1678
+ "name": "plugin_id",
1679
+ "type": "text",
1680
+ "primaryKey": false,
1681
+ "notNull": true,
1682
+ "autoincrement": false
1683
+ },
1684
+ "version": {
1685
+ "name": "version",
1686
+ "type": "text",
1687
+ "primaryKey": false,
1688
+ "notNull": true,
1689
+ "autoincrement": false
1690
+ },
1691
+ "source": {
1692
+ "name": "source",
1693
+ "type": "text",
1694
+ "primaryKey": false,
1695
+ "notNull": true,
1696
+ "autoincrement": false
1697
+ },
1698
+ "repo_id": {
1699
+ "name": "repo_id",
1700
+ "type": "text",
1701
+ "primaryKey": false,
1702
+ "notNull": false,
1703
+ "autoincrement": false
1704
+ },
1705
+ "path": {
1706
+ "name": "path",
1707
+ "type": "text",
1708
+ "primaryKey": false,
1709
+ "notNull": true,
1710
+ "autoincrement": false
1711
+ },
1712
+ "sha256": {
1713
+ "name": "sha256",
1714
+ "type": "text",
1715
+ "primaryKey": false,
1716
+ "notNull": false,
1717
+ "autoincrement": false
1718
+ },
1719
+ "signature_verified": {
1720
+ "name": "signature_verified",
1721
+ "type": "integer",
1722
+ "primaryKey": false,
1723
+ "notNull": true,
1724
+ "autoincrement": false,
1725
+ "default": false
1726
+ },
1727
+ "manifest": {
1728
+ "name": "manifest",
1729
+ "type": "text",
1730
+ "primaryKey": false,
1731
+ "notNull": true,
1732
+ "autoincrement": false
1733
+ },
1734
+ "status": {
1735
+ "name": "status",
1736
+ "type": "text",
1737
+ "primaryKey": false,
1738
+ "notNull": true,
1739
+ "autoincrement": false
1740
+ },
1741
+ "status_error": {
1742
+ "name": "status_error",
1743
+ "type": "text",
1744
+ "primaryKey": false,
1745
+ "notNull": false,
1746
+ "autoincrement": false
1747
+ },
1748
+ "enabled": {
1749
+ "name": "enabled",
1750
+ "type": "integer",
1751
+ "primaryKey": false,
1752
+ "notNull": true,
1753
+ "autoincrement": false,
1754
+ "default": false
1755
+ },
1756
+ "created_at": {
1757
+ "name": "created_at",
1758
+ "type": "integer",
1759
+ "primaryKey": false,
1760
+ "notNull": true,
1761
+ "autoincrement": false,
1762
+ "default": "(unixepoch() * 1000)"
1763
+ }
1764
+ },
1765
+ "indexes": {
1766
+ "plugins_plugin_id_unique": {
1767
+ "name": "plugins_plugin_id_unique",
1768
+ "columns": [
1769
+ "plugin_id"
1770
+ ],
1771
+ "isUnique": true
1772
+ }
1773
+ },
1774
+ "foreignKeys": {
1775
+ "plugins_repo_id_plugin_repos_id_fk": {
1776
+ "name": "plugins_repo_id_plugin_repos_id_fk",
1777
+ "tableFrom": "plugins",
1778
+ "tableTo": "plugin_repos",
1779
+ "columnsFrom": [
1780
+ "repo_id"
1781
+ ],
1782
+ "columnsTo": [
1783
+ "id"
1784
+ ],
1785
+ "onDelete": "no action",
1786
+ "onUpdate": "no action"
1787
+ }
1788
+ },
1789
+ "compositePrimaryKeys": {},
1790
+ "uniqueConstraints": {},
1791
+ "checkConstraints": {}
1792
+ },
1793
+ "pre_approval_hits": {
1794
+ "name": "pre_approval_hits",
1795
+ "columns": {
1796
+ "id": {
1797
+ "name": "id",
1798
+ "type": "integer",
1799
+ "primaryKey": true,
1800
+ "notNull": true,
1801
+ "autoincrement": true
1802
+ },
1803
+ "rule_id": {
1804
+ "name": "rule_id",
1805
+ "type": "text",
1806
+ "primaryKey": false,
1807
+ "notNull": true,
1808
+ "autoincrement": false
1809
+ },
1810
+ "occurred_at": {
1811
+ "name": "occurred_at",
1812
+ "type": "integer",
1813
+ "primaryKey": false,
1814
+ "notNull": true,
1815
+ "autoincrement": false
1816
+ }
1817
+ },
1818
+ "indexes": {
1819
+ "hits_rule_time_idx": {
1820
+ "name": "hits_rule_time_idx",
1821
+ "columns": [
1822
+ "rule_id",
1823
+ "occurred_at"
1824
+ ],
1825
+ "isUnique": false
1826
+ }
1827
+ },
1828
+ "foreignKeys": {
1829
+ "pre_approval_hits_rule_id_pre_approval_rules_id_fk": {
1830
+ "name": "pre_approval_hits_rule_id_pre_approval_rules_id_fk",
1831
+ "tableFrom": "pre_approval_hits",
1832
+ "tableTo": "pre_approval_rules",
1833
+ "columnsFrom": [
1834
+ "rule_id"
1835
+ ],
1836
+ "columnsTo": [
1837
+ "id"
1838
+ ],
1839
+ "onDelete": "cascade",
1840
+ "onUpdate": "no action"
1841
+ }
1842
+ },
1843
+ "compositePrimaryKeys": {},
1844
+ "uniqueConstraints": {},
1845
+ "checkConstraints": {}
1846
+ },
1847
+ "pre_approval_rules": {
1848
+ "name": "pre_approval_rules",
1849
+ "columns": {
1850
+ "id": {
1851
+ "name": "id",
1852
+ "type": "text",
1853
+ "primaryKey": true,
1854
+ "notNull": true,
1855
+ "autoincrement": false
1856
+ },
1857
+ "instance_id": {
1858
+ "name": "instance_id",
1859
+ "type": "text",
1860
+ "primaryKey": false,
1861
+ "notNull": true,
1862
+ "autoincrement": false
1863
+ },
1864
+ "operation_id": {
1865
+ "name": "operation_id",
1866
+ "type": "text",
1867
+ "primaryKey": false,
1868
+ "notNull": true,
1869
+ "autoincrement": false
1870
+ },
1871
+ "match": {
1872
+ "name": "match",
1873
+ "type": "text",
1874
+ "primaryKey": false,
1875
+ "notNull": true,
1876
+ "autoincrement": false,
1877
+ "default": "'[]'"
1878
+ },
1879
+ "rate_limit": {
1880
+ "name": "rate_limit",
1881
+ "type": "integer",
1882
+ "primaryKey": false,
1883
+ "notNull": false,
1884
+ "autoincrement": false
1885
+ },
1886
+ "window_seconds": {
1887
+ "name": "window_seconds",
1888
+ "type": "integer",
1889
+ "primaryKey": false,
1890
+ "notNull": false,
1891
+ "autoincrement": false
1892
+ },
1893
+ "expires_at": {
1894
+ "name": "expires_at",
1895
+ "type": "integer",
1896
+ "primaryKey": false,
1897
+ "notNull": false,
1898
+ "autoincrement": false
1899
+ },
1900
+ "reason": {
1901
+ "name": "reason",
1902
+ "type": "text",
1903
+ "primaryKey": false,
1904
+ "notNull": true,
1905
+ "autoincrement": false
1906
+ },
1907
+ "enabled": {
1908
+ "name": "enabled",
1909
+ "type": "integer",
1910
+ "primaryKey": false,
1911
+ "notNull": true,
1912
+ "autoincrement": false,
1913
+ "default": true
1914
+ },
1915
+ "created_by": {
1916
+ "name": "created_by",
1917
+ "type": "text",
1918
+ "primaryKey": false,
1919
+ "notNull": false,
1920
+ "autoincrement": false
1921
+ },
1922
+ "created_at": {
1923
+ "name": "created_at",
1924
+ "type": "integer",
1925
+ "primaryKey": false,
1926
+ "notNull": true,
1927
+ "autoincrement": false,
1928
+ "default": "(unixepoch() * 1000)"
1929
+ },
1930
+ "updated_at": {
1931
+ "name": "updated_at",
1932
+ "type": "integer",
1933
+ "primaryKey": false,
1934
+ "notNull": false,
1935
+ "autoincrement": false
1936
+ },
1937
+ "last_triggered_at": {
1938
+ "name": "last_triggered_at",
1939
+ "type": "integer",
1940
+ "primaryKey": false,
1941
+ "notNull": false,
1942
+ "autoincrement": false
1943
+ }
1944
+ },
1945
+ "indexes": {},
1946
+ "foreignKeys": {
1947
+ "pre_approval_rules_instance_id_plugin_instances_id_fk": {
1948
+ "name": "pre_approval_rules_instance_id_plugin_instances_id_fk",
1949
+ "tableFrom": "pre_approval_rules",
1950
+ "tableTo": "plugin_instances",
1951
+ "columnsFrom": [
1952
+ "instance_id"
1953
+ ],
1954
+ "columnsTo": [
1955
+ "id"
1956
+ ],
1957
+ "onDelete": "cascade",
1958
+ "onUpdate": "no action"
1959
+ },
1960
+ "pre_approval_rules_operation_id_operations_id_fk": {
1961
+ "name": "pre_approval_rules_operation_id_operations_id_fk",
1962
+ "tableFrom": "pre_approval_rules",
1963
+ "tableTo": "operations",
1964
+ "columnsFrom": [
1965
+ "operation_id"
1966
+ ],
1967
+ "columnsTo": [
1968
+ "id"
1969
+ ],
1970
+ "onDelete": "no action",
1971
+ "onUpdate": "no action"
1972
+ },
1973
+ "pre_approval_rules_created_by_users_id_fk": {
1974
+ "name": "pre_approval_rules_created_by_users_id_fk",
1975
+ "tableFrom": "pre_approval_rules",
1976
+ "tableTo": "users",
1977
+ "columnsFrom": [
1978
+ "created_by"
1979
+ ],
1980
+ "columnsTo": [
1981
+ "id"
1982
+ ],
1983
+ "onDelete": "no action",
1984
+ "onUpdate": "no action"
1985
+ }
1986
+ },
1987
+ "compositePrimaryKeys": {},
1988
+ "uniqueConstraints": {},
1989
+ "checkConstraints": {}
1990
+ },
1991
+ "registry_entries": {
1992
+ "name": "registry_entries",
1993
+ "columns": {
1994
+ "id": {
1995
+ "name": "id",
1996
+ "type": "text",
1997
+ "primaryKey": true,
1998
+ "notNull": true,
1999
+ "autoincrement": false
2000
+ },
2001
+ "instance_id": {
2002
+ "name": "instance_id",
2003
+ "type": "text",
2004
+ "primaryKey": false,
2005
+ "notNull": true,
2006
+ "autoincrement": false
2007
+ },
2008
+ "kind": {
2009
+ "name": "kind",
2010
+ "type": "text",
2011
+ "primaryKey": false,
2012
+ "notNull": true,
2013
+ "autoincrement": false
2014
+ },
2015
+ "ext_id": {
2016
+ "name": "ext_id",
2017
+ "type": "text",
2018
+ "primaryKey": false,
2019
+ "notNull": true,
2020
+ "autoincrement": false
2021
+ },
2022
+ "name": {
2023
+ "name": "name",
2024
+ "type": "text",
2025
+ "primaryKey": false,
2026
+ "notNull": true,
2027
+ "autoincrement": false
2028
+ },
2029
+ "parent_ext_id": {
2030
+ "name": "parent_ext_id",
2031
+ "type": "text",
2032
+ "primaryKey": false,
2033
+ "notNull": false,
2034
+ "autoincrement": false
2035
+ },
2036
+ "domain": {
2037
+ "name": "domain",
2038
+ "type": "text",
2039
+ "primaryKey": false,
2040
+ "notNull": false,
2041
+ "autoincrement": false
2042
+ },
2043
+ "attrs": {
2044
+ "name": "attrs",
2045
+ "type": "text",
2046
+ "primaryKey": false,
2047
+ "notNull": false,
2048
+ "autoincrement": false
2049
+ },
2050
+ "stale": {
2051
+ "name": "stale",
2052
+ "type": "integer",
2053
+ "primaryKey": false,
2054
+ "notNull": true,
2055
+ "autoincrement": false,
2056
+ "default": false
2057
+ },
2058
+ "last_synced_at": {
2059
+ "name": "last_synced_at",
2060
+ "type": "integer",
2061
+ "primaryKey": false,
2062
+ "notNull": true,
2063
+ "autoincrement": false
2064
+ }
2065
+ },
2066
+ "indexes": {
2067
+ "registry_instance_kind_ext_idx": {
2068
+ "name": "registry_instance_kind_ext_idx",
2069
+ "columns": [
2070
+ "instance_id",
2071
+ "kind",
2072
+ "ext_id"
2073
+ ],
2074
+ "isUnique": true
2075
+ }
2076
+ },
2077
+ "foreignKeys": {
2078
+ "registry_entries_instance_id_plugin_instances_id_fk": {
2079
+ "name": "registry_entries_instance_id_plugin_instances_id_fk",
2080
+ "tableFrom": "registry_entries",
2081
+ "tableTo": "plugin_instances",
2082
+ "columnsFrom": [
2083
+ "instance_id"
2084
+ ],
2085
+ "columnsTo": [
2086
+ "id"
2087
+ ],
2088
+ "onDelete": "cascade",
2089
+ "onUpdate": "no action"
2090
+ }
2091
+ },
2092
+ "compositePrimaryKeys": {},
2093
+ "uniqueConstraints": {},
2094
+ "checkConstraints": {}
2095
+ },
2096
+ "sessions": {
2097
+ "name": "sessions",
2098
+ "columns": {
2099
+ "id_hash": {
2100
+ "name": "id_hash",
2101
+ "type": "text",
2102
+ "primaryKey": true,
2103
+ "notNull": true,
2104
+ "autoincrement": false
2105
+ },
2106
+ "user_id": {
2107
+ "name": "user_id",
2108
+ "type": "text",
2109
+ "primaryKey": false,
2110
+ "notNull": true,
2111
+ "autoincrement": false
2112
+ },
2113
+ "kind": {
2114
+ "name": "kind",
2115
+ "type": "text",
2116
+ "primaryKey": false,
2117
+ "notNull": true,
2118
+ "autoincrement": false
2119
+ },
2120
+ "created_at": {
2121
+ "name": "created_at",
2122
+ "type": "integer",
2123
+ "primaryKey": false,
2124
+ "notNull": true,
2125
+ "autoincrement": false,
2126
+ "default": "(unixepoch() * 1000)"
2127
+ },
2128
+ "last_seen_at": {
2129
+ "name": "last_seen_at",
2130
+ "type": "integer",
2131
+ "primaryKey": false,
2132
+ "notNull": true,
2133
+ "autoincrement": false
2134
+ },
2135
+ "expires_at": {
2136
+ "name": "expires_at",
2137
+ "type": "integer",
2138
+ "primaryKey": false,
2139
+ "notNull": true,
2140
+ "autoincrement": false
2141
+ },
2142
+ "ip": {
2143
+ "name": "ip",
2144
+ "type": "text",
2145
+ "primaryKey": false,
2146
+ "notNull": false,
2147
+ "autoincrement": false
2148
+ },
2149
+ "user_agent": {
2150
+ "name": "user_agent",
2151
+ "type": "text",
2152
+ "primaryKey": false,
2153
+ "notNull": false,
2154
+ "autoincrement": false
2155
+ }
2156
+ },
2157
+ "indexes": {
2158
+ "sessions_user_idx": {
2159
+ "name": "sessions_user_idx",
2160
+ "columns": [
2161
+ "user_id"
2162
+ ],
2163
+ "isUnique": false
2164
+ }
2165
+ },
2166
+ "foreignKeys": {
2167
+ "sessions_user_id_users_id_fk": {
2168
+ "name": "sessions_user_id_users_id_fk",
2169
+ "tableFrom": "sessions",
2170
+ "tableTo": "users",
2171
+ "columnsFrom": [
2172
+ "user_id"
2173
+ ],
2174
+ "columnsTo": [
2175
+ "id"
2176
+ ],
2177
+ "onDelete": "cascade",
2178
+ "onUpdate": "no action"
2179
+ }
2180
+ },
2181
+ "compositePrimaryKeys": {},
2182
+ "uniqueConstraints": {},
2183
+ "checkConstraints": {}
2184
+ },
2185
+ "settings": {
2186
+ "name": "settings",
2187
+ "columns": {
2188
+ "key": {
2189
+ "name": "key",
2190
+ "type": "text",
2191
+ "primaryKey": true,
2192
+ "notNull": true,
2193
+ "autoincrement": false
2194
+ },
2195
+ "value": {
2196
+ "name": "value",
2197
+ "type": "text",
2198
+ "primaryKey": false,
2199
+ "notNull": true,
2200
+ "autoincrement": false
2201
+ }
2202
+ },
2203
+ "indexes": {},
2204
+ "foreignKeys": {},
2205
+ "compositePrimaryKeys": {},
2206
+ "uniqueConstraints": {},
2207
+ "checkConstraints": {}
2208
+ },
2209
+ "users": {
2210
+ "name": "users",
2211
+ "columns": {
2212
+ "id": {
2213
+ "name": "id",
2214
+ "type": "text",
2215
+ "primaryKey": true,
2216
+ "notNull": true,
2217
+ "autoincrement": false
2218
+ },
2219
+ "username": {
2220
+ "name": "username",
2221
+ "type": "text",
2222
+ "primaryKey": false,
2223
+ "notNull": true,
2224
+ "autoincrement": false
2225
+ },
2226
+ "password_hash": {
2227
+ "name": "password_hash",
2228
+ "type": "text",
2229
+ "primaryKey": false,
2230
+ "notNull": false,
2231
+ "autoincrement": false
2232
+ },
2233
+ "totp_secret_enc": {
2234
+ "name": "totp_secret_enc",
2235
+ "type": "blob",
2236
+ "primaryKey": false,
2237
+ "notNull": false,
2238
+ "autoincrement": false
2239
+ },
2240
+ "totp_enabled": {
2241
+ "name": "totp_enabled",
2242
+ "type": "integer",
2243
+ "primaryKey": false,
2244
+ "notNull": true,
2245
+ "autoincrement": false,
2246
+ "default": false
2247
+ },
2248
+ "totp_last_step": {
2249
+ "name": "totp_last_step",
2250
+ "type": "integer",
2251
+ "primaryKey": false,
2252
+ "notNull": false,
2253
+ "autoincrement": false
2254
+ },
2255
+ "recovery_codes_hash": {
2256
+ "name": "recovery_codes_hash",
2257
+ "type": "text",
2258
+ "primaryKey": false,
2259
+ "notNull": false,
2260
+ "autoincrement": false
2261
+ },
2262
+ "oidc_issuer": {
2263
+ "name": "oidc_issuer",
2264
+ "type": "text",
2265
+ "primaryKey": false,
2266
+ "notNull": false,
2267
+ "autoincrement": false
2268
+ },
2269
+ "oidc_subject": {
2270
+ "name": "oidc_subject",
2271
+ "type": "text",
2272
+ "primaryKey": false,
2273
+ "notNull": false,
2274
+ "autoincrement": false
2275
+ },
2276
+ "created_at": {
2277
+ "name": "created_at",
2278
+ "type": "integer",
2279
+ "primaryKey": false,
2280
+ "notNull": true,
2281
+ "autoincrement": false,
2282
+ "default": "(unixepoch() * 1000)"
2283
+ },
2284
+ "last_login_at": {
2285
+ "name": "last_login_at",
2286
+ "type": "integer",
2287
+ "primaryKey": false,
2288
+ "notNull": false,
2289
+ "autoincrement": false
2290
+ },
2291
+ "disabled": {
2292
+ "name": "disabled",
2293
+ "type": "integer",
2294
+ "primaryKey": false,
2295
+ "notNull": true,
2296
+ "autoincrement": false,
2297
+ "default": false
2298
+ }
2299
+ },
2300
+ "indexes": {
2301
+ "users_username_unique": {
2302
+ "name": "users_username_unique",
2303
+ "columns": [
2304
+ "username"
2305
+ ],
2306
+ "isUnique": true
2307
+ }
2308
+ },
2309
+ "foreignKeys": {},
2310
+ "compositePrimaryKeys": {},
2311
+ "uniqueConstraints": {},
2312
+ "checkConstraints": {}
2313
+ }
2314
+ },
2315
+ "views": {},
2316
+ "enums": {},
2317
+ "_meta": {
2318
+ "schemas": {},
2319
+ "tables": {},
2320
+ "columns": {}
2321
+ },
2322
+ "internal": {
2323
+ "indexes": {}
2324
+ }
2325
+ }