@coffre/db 0.3.0 → 0.4.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 (76) hide show
  1. package/dist/connect.d.ts +1 -1
  2. package/dist/{database-Cq_52uUo.d.ts → database-edkMkG02.d.ts} +1 -1
  3. package/dist/dialect.d.ts +10 -2
  4. package/dist/dialect.js +34 -1
  5. package/dist/grants.d.ts +32 -0
  6. package/dist/grants.js +27 -0
  7. package/dist/hyperdrive.d.ts +1 -1
  8. package/dist/index.d.ts +2 -2
  9. package/dist/log.d.ts +1 -1
  10. package/dist/migrate.js +6 -1
  11. package/dist/migrations/postgres/0000_baseline.sql +174 -46
  12. package/dist/migrations/postgres/0001_mcp_approvals.sql +24 -0
  13. package/dist/migrations/postgres/meta/0000_snapshot.json +963 -185
  14. package/dist/migrations/postgres/meta/0001_snapshot.json +1171 -30
  15. package/dist/migrations/postgres/meta/_journal.json +3 -24
  16. package/dist/migrations/sqlite/0000_baseline.sql +142 -35
  17. package/dist/migrations/sqlite/0001_mcp_approvals.sql +19 -0
  18. package/dist/migrations/sqlite/meta/0000_snapshot.json +878 -235
  19. package/dist/migrations/sqlite/meta/0001_snapshot.json +1062 -57
  20. package/dist/migrations/sqlite/meta/_journal.json +3 -24
  21. package/dist/portable.d.ts +2 -2
  22. package/dist/{schema-Wt-p8AOh.d.ts → schema-BqCB3XFm.d.ts} +1153 -83
  23. package/dist/schema-sqlite.d.ts +1171 -60
  24. package/dist/schema-sqlite.js +173 -11
  25. package/dist/schema-version.d.ts +9 -13
  26. package/dist/schema-version.js +38 -90
  27. package/dist/schema.d.ts +2 -2
  28. package/dist/schema.js +208 -15
  29. package/package.json +7 -2
  30. package/src/baseline/postgres.sql +46 -10
  31. package/src/baseline/sqlite.sql +15 -0
  32. package/src/baseline.ts +7 -3
  33. package/src/dialect.ts +25 -1
  34. package/src/grants.ts +51 -0
  35. package/src/migrate.ts +5 -0
  36. package/src/migrations/postgres/0000_baseline.sql +174 -46
  37. package/src/migrations/postgres/0001_mcp_approvals.sql +24 -0
  38. package/src/migrations/postgres/meta/0000_snapshot.json +963 -185
  39. package/src/migrations/postgres/meta/0001_snapshot.json +1171 -30
  40. package/src/migrations/postgres/meta/_journal.json +3 -24
  41. package/src/migrations/sqlite/0000_baseline.sql +142 -35
  42. package/src/migrations/sqlite/0001_mcp_approvals.sql +19 -0
  43. package/src/migrations/sqlite/meta/0000_snapshot.json +878 -235
  44. package/src/migrations/sqlite/meta/0001_snapshot.json +1062 -57
  45. package/src/migrations/sqlite/meta/_journal.json +3 -24
  46. package/src/schema-version.ts +26 -18
  47. package/src/schema.sqlite.ts +223 -8
  48. package/src/schema.ts +263 -11
  49. package/dist/migrations/postgres/0001_remove_syncs.sql +0 -13
  50. package/dist/migrations/postgres/0002_service_bindings.sql +0 -28
  51. package/dist/migrations/postgres/0003_exchanges.sql +0 -10
  52. package/dist/migrations/postgres/0004_live_indexes.sql +0 -3
  53. package/dist/migrations/postgres/meta/0002_snapshot.json +0 -1870
  54. package/dist/migrations/postgres/meta/0003_snapshot.json +0 -1917
  55. package/dist/migrations/postgres/meta/0004_snapshot.json +0 -2006
  56. package/dist/migrations/sqlite/0001_remove_syncs.sql +0 -13
  57. package/dist/migrations/sqlite/0002_service_bindings.sql +0 -23
  58. package/dist/migrations/sqlite/0003_exchanges.sql +0 -7
  59. package/dist/migrations/sqlite/0004_live_indexes.sql +0 -3
  60. package/dist/migrations/sqlite/meta/0002_snapshot.json +0 -1736
  61. package/dist/migrations/sqlite/meta/0003_snapshot.json +0 -1781
  62. package/dist/migrations/sqlite/meta/0004_snapshot.json +0 -1811
  63. package/src/migrations/postgres/0001_remove_syncs.sql +0 -13
  64. package/src/migrations/postgres/0002_service_bindings.sql +0 -28
  65. package/src/migrations/postgres/0003_exchanges.sql +0 -10
  66. package/src/migrations/postgres/0004_live_indexes.sql +0 -3
  67. package/src/migrations/postgres/meta/0002_snapshot.json +0 -1870
  68. package/src/migrations/postgres/meta/0003_snapshot.json +0 -1917
  69. package/src/migrations/postgres/meta/0004_snapshot.json +0 -2006
  70. package/src/migrations/sqlite/0001_remove_syncs.sql +0 -13
  71. package/src/migrations/sqlite/0002_service_bindings.sql +0 -23
  72. package/src/migrations/sqlite/0003_exchanges.sql +0 -7
  73. package/src/migrations/sqlite/0004_live_indexes.sql +0 -3
  74. package/src/migrations/sqlite/meta/0002_snapshot.json +0 -1736
  75. package/src/migrations/sqlite/meta/0003_snapshot.json +0 -1781
  76. package/src/migrations/sqlite/meta/0004_snapshot.json +0 -1811
@@ -1,1736 +0,0 @@
1
- {
2
- "version": "6",
3
- "dialect": "sqlite",
4
- "id": "e312ab5e-5dc8-4863-ab2f-a8ebd0b4e5ca",
5
- "prevId": "b24525b7-a286-4409-93b5-ec8b99033dac",
6
- "tables": {
7
- "audit_chain_head": {
8
- "name": "audit_chain_head",
9
- "columns": {
10
- "only_row": {
11
- "name": "only_row",
12
- "type": "integer",
13
- "primaryKey": true,
14
- "notNull": true,
15
- "autoincrement": false,
16
- "default": true
17
- },
18
- "next_seq": {
19
- "name": "next_seq",
20
- "type": "integer",
21
- "primaryKey": false,
22
- "notNull": true,
23
- "autoincrement": false,
24
- "default": "0"
25
- },
26
- "head_hash": {
27
- "name": "head_hash",
28
- "type": "blob",
29
- "primaryKey": false,
30
- "notNull": true,
31
- "autoincrement": false
32
- }
33
- },
34
- "indexes": {},
35
- "foreignKeys": {},
36
- "compositePrimaryKeys": {},
37
- "uniqueConstraints": {},
38
- "checkConstraints": {
39
- "audit_chain_head_only_row_check": {
40
- "name": "audit_chain_head_only_row_check",
41
- "value": "\"audit_chain_head\".\"only_row\""
42
- },
43
- "audit_chain_head_next_seq_check": {
44
- "name": "audit_chain_head_next_seq_check",
45
- "value": "\"audit_chain_head\".\"next_seq\" >= 0"
46
- },
47
- "audit_chain_head_head_hash_check": {
48
- "name": "audit_chain_head_head_hash_check",
49
- "value": "octet_length(\"audit_chain_head\".\"head_hash\") = 32"
50
- }
51
- }
52
- },
53
- "audit_log": {
54
- "name": "audit_log",
55
- "columns": {
56
- "seq": {
57
- "name": "seq",
58
- "type": "integer",
59
- "primaryKey": true,
60
- "notNull": true,
61
- "autoincrement": false
62
- },
63
- "author": {
64
- "name": "author",
65
- "type": "text",
66
- "primaryKey": false,
67
- "notNull": true,
68
- "autoincrement": false
69
- },
70
- "key_id": {
71
- "name": "key_id",
72
- "type": "text",
73
- "primaryKey": false,
74
- "notNull": true,
75
- "autoincrement": false
76
- },
77
- "occurred_at": {
78
- "name": "occurred_at",
79
- "type": "integer",
80
- "primaryKey": false,
81
- "notNull": true,
82
- "autoincrement": false
83
- },
84
- "actor": {
85
- "name": "actor",
86
- "type": "text",
87
- "primaryKey": false,
88
- "notNull": true,
89
- "autoincrement": false
90
- },
91
- "action": {
92
- "name": "action",
93
- "type": "text",
94
- "primaryKey": false,
95
- "notNull": true,
96
- "autoincrement": false
97
- },
98
- "decision": {
99
- "name": "decision",
100
- "type": "text",
101
- "primaryKey": false,
102
- "notNull": true,
103
- "autoincrement": false
104
- },
105
- "code": {
106
- "name": "code",
107
- "type": "text",
108
- "primaryKey": false,
109
- "notNull": false,
110
- "autoincrement": false
111
- },
112
- "subject_principal": {
113
- "name": "subject_principal",
114
- "type": "text",
115
- "primaryKey": false,
116
- "notNull": false,
117
- "autoincrement": false
118
- },
119
- "project_id": {
120
- "name": "project_id",
121
- "type": "text",
122
- "primaryKey": false,
123
- "notNull": false,
124
- "autoincrement": false
125
- },
126
- "environment_id": {
127
- "name": "environment_id",
128
- "type": "text",
129
- "primaryKey": false,
130
- "notNull": false,
131
- "autoincrement": false
132
- },
133
- "secret_id": {
134
- "name": "secret_id",
135
- "type": "text",
136
- "primaryKey": false,
137
- "notNull": false,
138
- "autoincrement": false
139
- },
140
- "secret_version_id": {
141
- "name": "secret_version_id",
142
- "type": "text",
143
- "primaryKey": false,
144
- "notNull": false,
145
- "autoincrement": false
146
- },
147
- "operation_id": {
148
- "name": "operation_id",
149
- "type": "text",
150
- "primaryKey": false,
151
- "notNull": false,
152
- "autoincrement": false
153
- },
154
- "request_id": {
155
- "name": "request_id",
156
- "type": "text",
157
- "primaryKey": false,
158
- "notNull": false,
159
- "autoincrement": false
160
- },
161
- "source_ip": {
162
- "name": "source_ip",
163
- "type": "text",
164
- "primaryKey": false,
165
- "notNull": false,
166
- "autoincrement": false
167
- },
168
- "related_seq": {
169
- "name": "related_seq",
170
- "type": "integer",
171
- "primaryKey": false,
172
- "notNull": false,
173
- "autoincrement": false
174
- },
175
- "metadata": {
176
- "name": "metadata",
177
- "type": "text",
178
- "primaryKey": false,
179
- "notNull": true,
180
- "autoincrement": false,
181
- "default": "'{}'"
182
- },
183
- "prev_hash": {
184
- "name": "prev_hash",
185
- "type": "blob",
186
- "primaryKey": false,
187
- "notNull": true,
188
- "autoincrement": false
189
- },
190
- "mac": {
191
- "name": "mac",
192
- "type": "blob",
193
- "primaryKey": false,
194
- "notNull": true,
195
- "autoincrement": false
196
- },
197
- "hash": {
198
- "name": "hash",
199
- "type": "blob",
200
- "primaryKey": false,
201
- "notNull": true,
202
- "autoincrement": false
203
- }
204
- },
205
- "indexes": {
206
- "audit_log_project_idx": {
207
- "name": "audit_log_project_idx",
208
- "columns": [
209
- "project_id",
210
- "seq"
211
- ],
212
- "isUnique": false
213
- },
214
- "audit_log_environment_idx": {
215
- "name": "audit_log_environment_idx",
216
- "columns": [
217
- "environment_id",
218
- "seq"
219
- ],
220
- "isUnique": false
221
- },
222
- "audit_log_secret_idx": {
223
- "name": "audit_log_secret_idx",
224
- "columns": [
225
- "secret_id",
226
- "seq"
227
- ],
228
- "isUnique": false
229
- },
230
- "audit_log_actor_idx": {
231
- "name": "audit_log_actor_idx",
232
- "columns": [
233
- "actor",
234
- "seq"
235
- ],
236
- "isUnique": false
237
- },
238
- "audit_log_operation_idx": {
239
- "name": "audit_log_operation_idx",
240
- "columns": [
241
- "operation_id",
242
- "seq"
243
- ],
244
- "isUnique": false
245
- },
246
- "audit_log_action_idx": {
247
- "name": "audit_log_action_idx",
248
- "columns": [
249
- "author",
250
- "action",
251
- "seq"
252
- ],
253
- "isUnique": false
254
- },
255
- "audit_log_releases_idx": {
256
- "name": "audit_log_releases_idx",
257
- "columns": [
258
- "author",
259
- "actor",
260
- "action",
261
- "decision",
262
- "occurred_at"
263
- ],
264
- "isUnique": false
265
- },
266
- "audit_log_subject_idx": {
267
- "name": "audit_log_subject_idx",
268
- "columns": [
269
- "author",
270
- "subject_principal",
271
- "seq"
272
- ],
273
- "isUnique": false
274
- },
275
- "audit_log_unbind_idx": {
276
- "name": "audit_log_unbind_idx",
277
- "columns": [
278
- "json_extract(\"metadata\", '$.bindingId')"
279
- ],
280
- "isUnique": false,
281
- "where": "\"audit_log\".\"author\" = 'app' AND \"audit_log\".\"action\" = 'token.unbind' AND \"audit_log\".\"decision\" = 'allow'"
282
- }
283
- },
284
- "foreignKeys": {
285
- "audit_log_project_id_fkey": {
286
- "name": "audit_log_project_id_fkey",
287
- "tableFrom": "audit_log",
288
- "tableTo": "projects",
289
- "columnsFrom": [
290
- "project_id"
291
- ],
292
- "columnsTo": [
293
- "id"
294
- ],
295
- "onDelete": "restrict",
296
- "onUpdate": "no action"
297
- },
298
- "audit_log_environment_id_fkey": {
299
- "name": "audit_log_environment_id_fkey",
300
- "tableFrom": "audit_log",
301
- "tableTo": "environments",
302
- "columnsFrom": [
303
- "environment_id"
304
- ],
305
- "columnsTo": [
306
- "id"
307
- ],
308
- "onDelete": "restrict",
309
- "onUpdate": "no action"
310
- },
311
- "audit_log_secret_id_fkey": {
312
- "name": "audit_log_secret_id_fkey",
313
- "tableFrom": "audit_log",
314
- "tableTo": "secrets",
315
- "columnsFrom": [
316
- "secret_id"
317
- ],
318
- "columnsTo": [
319
- "id"
320
- ],
321
- "onDelete": "restrict",
322
- "onUpdate": "no action"
323
- },
324
- "audit_log_secret_version_id_fkey": {
325
- "name": "audit_log_secret_version_id_fkey",
326
- "tableFrom": "audit_log",
327
- "tableTo": "secret_versions",
328
- "columnsFrom": [
329
- "secret_version_id"
330
- ],
331
- "columnsTo": [
332
- "id"
333
- ],
334
- "onDelete": "restrict",
335
- "onUpdate": "no action"
336
- },
337
- "audit_log_related_seq_fkey": {
338
- "name": "audit_log_related_seq_fkey",
339
- "tableFrom": "audit_log",
340
- "tableTo": "audit_log",
341
- "columnsFrom": [
342
- "related_seq"
343
- ],
344
- "columnsTo": [
345
- "seq"
346
- ],
347
- "onDelete": "restrict",
348
- "onUpdate": "no action"
349
- }
350
- },
351
- "compositePrimaryKeys": {},
352
- "uniqueConstraints": {},
353
- "checkConstraints": {
354
- "audit_log_author_check": {
355
- "name": "audit_log_author_check",
356
- "value": "\"audit_log\".\"author\" IN ('app', 'vault')"
357
- },
358
- "audit_log_actor_check": {
359
- "name": "audit_log_actor_check",
360
- "value": "\"audit_log\".\"actor\" GLOB 'user:?*' OR \"audit_log\".\"actor\" GLOB 'token:?*' OR \"audit_log\".\"actor\" GLOB 'sync:?*' OR \"audit_log\".\"actor\" GLOB 'system:?*'"
361
- },
362
- "audit_log_decision_check": {
363
- "name": "audit_log_decision_check",
364
- "value": "\"audit_log\".\"decision\" IN ('allow', 'deny')"
365
- },
366
- "audit_log_metadata_check": {
367
- "name": "audit_log_metadata_check",
368
- "value": "json_valid(\"audit_log\".\"metadata\")"
369
- },
370
- "audit_log_prev_hash_check": {
371
- "name": "audit_log_prev_hash_check",
372
- "value": "octet_length(\"audit_log\".\"prev_hash\") = 32"
373
- },
374
- "audit_log_mac_check": {
375
- "name": "audit_log_mac_check",
376
- "value": "octet_length(\"audit_log\".\"mac\") = 32"
377
- },
378
- "audit_log_hash_check": {
379
- "name": "audit_log_hash_check",
380
- "value": "octet_length(\"audit_log\".\"hash\") = 32"
381
- }
382
- }
383
- },
384
- "credentials": {
385
- "name": "credentials",
386
- "columns": {
387
- "id": {
388
- "name": "id",
389
- "type": "text",
390
- "primaryKey": true,
391
- "notNull": true,
392
- "autoincrement": false
393
- },
394
- "kind": {
395
- "name": "kind",
396
- "type": "text",
397
- "primaryKey": false,
398
- "notNull": true,
399
- "autoincrement": false
400
- },
401
- "auth_mac": {
402
- "name": "auth_mac",
403
- "type": "blob",
404
- "primaryKey": false,
405
- "notNull": true,
406
- "autoincrement": false
407
- },
408
- "token_hash": {
409
- "name": "token_hash",
410
- "type": "blob",
411
- "primaryKey": false,
412
- "notNull": true,
413
- "autoincrement": false
414
- },
415
- "token_hint": {
416
- "name": "token_hint",
417
- "type": "text",
418
- "primaryKey": false,
419
- "notNull": true,
420
- "autoincrement": false
421
- },
422
- "generation": {
423
- "name": "generation",
424
- "type": "integer",
425
- "primaryKey": false,
426
- "notNull": true,
427
- "autoincrement": false
428
- },
429
- "principal": {
430
- "name": "principal",
431
- "type": "text",
432
- "primaryKey": false,
433
- "notNull": true,
434
- "autoincrement": false
435
- },
436
- "identity_id": {
437
- "name": "identity_id",
438
- "type": "text",
439
- "primaryKey": false,
440
- "notNull": false,
441
- "autoincrement": false
442
- },
443
- "label": {
444
- "name": "label",
445
- "type": "text",
446
- "primaryKey": false,
447
- "notNull": false,
448
- "autoincrement": false
449
- },
450
- "created_at": {
451
- "name": "created_at",
452
- "type": "integer",
453
- "primaryKey": false,
454
- "notNull": true,
455
- "autoincrement": false,
456
- "default": "(CAST(unixepoch('subsec') * 1000 AS INTEGER))"
457
- },
458
- "created_by": {
459
- "name": "created_by",
460
- "type": "text",
461
- "primaryKey": false,
462
- "notNull": true,
463
- "autoincrement": false
464
- },
465
- "expires_at": {
466
- "name": "expires_at",
467
- "type": "integer",
468
- "primaryKey": false,
469
- "notNull": true,
470
- "autoincrement": false
471
- },
472
- "last_used_at": {
473
- "name": "last_used_at",
474
- "type": "integer",
475
- "primaryKey": false,
476
- "notNull": false,
477
- "autoincrement": false
478
- },
479
- "last_used_ip": {
480
- "name": "last_used_ip",
481
- "type": "text",
482
- "primaryKey": false,
483
- "notNull": false,
484
- "autoincrement": false
485
- },
486
- "revoked_at": {
487
- "name": "revoked_at",
488
- "type": "integer",
489
- "primaryKey": false,
490
- "notNull": false,
491
- "autoincrement": false
492
- },
493
- "revoked_by": {
494
- "name": "revoked_by",
495
- "type": "text",
496
- "primaryKey": false,
497
- "notNull": false,
498
- "autoincrement": false
499
- }
500
- },
501
- "indexes": {
502
- "credentials_principal_idx": {
503
- "name": "credentials_principal_idx",
504
- "columns": [
505
- "principal",
506
- "generation"
507
- ],
508
- "isUnique": false
509
- },
510
- "credentials_token_hash_key": {
511
- "name": "credentials_token_hash_key",
512
- "columns": [
513
- "token_hash"
514
- ],
515
- "isUnique": true
516
- }
517
- },
518
- "foreignKeys": {
519
- "credentials_principal_fkey": {
520
- "name": "credentials_principal_fkey",
521
- "tableFrom": "credentials",
522
- "tableTo": "vault_members",
523
- "columnsFrom": [
524
- "principal"
525
- ],
526
- "columnsTo": [
527
- "principal"
528
- ],
529
- "onDelete": "restrict",
530
- "onUpdate": "no action"
531
- },
532
- "credentials_identity_id_fkey": {
533
- "name": "credentials_identity_id_fkey",
534
- "tableFrom": "credentials",
535
- "tableTo": "identities",
536
- "columnsFrom": [
537
- "identity_id",
538
- "principal",
539
- "generation"
540
- ],
541
- "columnsTo": [
542
- "id",
543
- "principal",
544
- "generation"
545
- ],
546
- "onDelete": "restrict",
547
- "onUpdate": "no action"
548
- }
549
- },
550
- "compositePrimaryKeys": {},
551
- "uniqueConstraints": {},
552
- "checkConstraints": {
553
- "credentials_kind_check": {
554
- "name": "credentials_kind_check",
555
- "value": "\"credentials\".\"kind\" IN ('browser', 'cli', 'service')"
556
- },
557
- "credentials_principal_check": {
558
- "name": "credentials_principal_check",
559
- "value": "\"credentials\".\"principal\" LIKE 'user:%' OR \"credentials\".\"principal\" LIKE 'token:%'"
560
- },
561
- "credentials_kind_matches_principal": {
562
- "name": "credentials_kind_matches_principal",
563
- "value": "(\"credentials\".\"kind\" = 'service') = (\"credentials\".\"principal\" LIKE 'token:%')"
564
- },
565
- "credentials_token_hash_check": {
566
- "name": "credentials_token_hash_check",
567
- "value": "octet_length(\"credentials\".\"token_hash\") = 32"
568
- },
569
- "credentials_auth_mac_check": {
570
- "name": "credentials_auth_mac_check",
571
- "value": "octet_length(\"credentials\".\"auth_mac\") = 32"
572
- }
573
- }
574
- },
575
- "device_authorizations": {
576
- "name": "device_authorizations",
577
- "columns": {
578
- "id": {
579
- "name": "id",
580
- "type": "text",
581
- "primaryKey": true,
582
- "notNull": true,
583
- "autoincrement": false
584
- },
585
- "device_code_hash": {
586
- "name": "device_code_hash",
587
- "type": "blob",
588
- "primaryKey": false,
589
- "notNull": true,
590
- "autoincrement": false
591
- },
592
- "auth_mac": {
593
- "name": "auth_mac",
594
- "type": "blob",
595
- "primaryKey": false,
596
- "notNull": true,
597
- "autoincrement": false
598
- },
599
- "user_code": {
600
- "name": "user_code",
601
- "type": "text",
602
- "primaryKey": false,
603
- "notNull": true,
604
- "autoincrement": false
605
- },
606
- "client_label": {
607
- "name": "client_label",
608
- "type": "text",
609
- "primaryKey": false,
610
- "notNull": false,
611
- "autoincrement": false
612
- },
613
- "client_ip": {
614
- "name": "client_ip",
615
- "type": "text",
616
- "primaryKey": false,
617
- "notNull": false,
618
- "autoincrement": false
619
- },
620
- "created_at": {
621
- "name": "created_at",
622
- "type": "integer",
623
- "primaryKey": false,
624
- "notNull": true,
625
- "autoincrement": false,
626
- "default": "(CAST(unixepoch('subsec') * 1000 AS INTEGER))"
627
- },
628
- "expires_at": {
629
- "name": "expires_at",
630
- "type": "integer",
631
- "primaryKey": false,
632
- "notNull": true,
633
- "autoincrement": false
634
- },
635
- "decided_at": {
636
- "name": "decided_at",
637
- "type": "integer",
638
- "primaryKey": false,
639
- "notNull": false,
640
- "autoincrement": false
641
- },
642
- "decision": {
643
- "name": "decision",
644
- "type": "text",
645
- "primaryKey": false,
646
- "notNull": false,
647
- "autoincrement": false
648
- },
649
- "generation": {
650
- "name": "generation",
651
- "type": "integer",
652
- "primaryKey": false,
653
- "notNull": true,
654
- "autoincrement": false,
655
- "default": 0
656
- },
657
- "principal": {
658
- "name": "principal",
659
- "type": "text",
660
- "primaryKey": false,
661
- "notNull": false,
662
- "autoincrement": false
663
- },
664
- "consumed_at": {
665
- "name": "consumed_at",
666
- "type": "integer",
667
- "primaryKey": false,
668
- "notNull": false,
669
- "autoincrement": false
670
- }
671
- },
672
- "indexes": {
673
- "device_authorizations_device_code_hash_key": {
674
- "name": "device_authorizations_device_code_hash_key",
675
- "columns": [
676
- "device_code_hash"
677
- ],
678
- "isUnique": true
679
- },
680
- "device_authorizations_user_code_key": {
681
- "name": "device_authorizations_user_code_key",
682
- "columns": [
683
- "user_code"
684
- ],
685
- "isUnique": true
686
- }
687
- },
688
- "foreignKeys": {
689
- "device_authorizations_principal_fkey": {
690
- "name": "device_authorizations_principal_fkey",
691
- "tableFrom": "device_authorizations",
692
- "tableTo": "vault_members",
693
- "columnsFrom": [
694
- "principal"
695
- ],
696
- "columnsTo": [
697
- "principal"
698
- ],
699
- "onDelete": "restrict",
700
- "onUpdate": "no action"
701
- }
702
- },
703
- "compositePrimaryKeys": {},
704
- "uniqueConstraints": {},
705
- "checkConstraints": {
706
- "device_authorizations_auth_mac_check": {
707
- "name": "device_authorizations_auth_mac_check",
708
- "value": "octet_length(\"device_authorizations\".\"auth_mac\") = 32"
709
- },
710
- "device_authorizations_decision_check": {
711
- "name": "device_authorizations_decision_check",
712
- "value": "\"device_authorizations\".\"decision\" IS NULL OR \"device_authorizations\".\"decision\" IN ('approved', 'denied')"
713
- },
714
- "device_authorizations_approval_names_principal": {
715
- "name": "device_authorizations_approval_names_principal",
716
- "value": "(\"device_authorizations\".\"decision\" IS NULL AND \"device_authorizations\".\"decided_at\" IS NULL AND \"device_authorizations\".\"principal\" IS NULL AND \"device_authorizations\".\"generation\" = 0 AND \"device_authorizations\".\"consumed_at\" IS NULL)\n OR (\"device_authorizations\".\"decision\" IS NOT NULL AND \"device_authorizations\".\"decided_at\" IS NOT NULL AND (\n (\"device_authorizations\".\"decision\" = 'denied' AND \"device_authorizations\".\"principal\" IS NULL AND \"device_authorizations\".\"generation\" = 0 AND \"device_authorizations\".\"consumed_at\" IS NULL)\n OR (\"device_authorizations\".\"decision\" = 'approved' AND \"device_authorizations\".\"principal\" IS NOT NULL AND \"device_authorizations\".\"principal\" LIKE 'user:%')\n ))"
717
- }
718
- }
719
- },
720
- "environments": {
721
- "name": "environments",
722
- "columns": {
723
- "id": {
724
- "name": "id",
725
- "type": "text",
726
- "primaryKey": true,
727
- "notNull": true,
728
- "autoincrement": false
729
- },
730
- "project_id": {
731
- "name": "project_id",
732
- "type": "text",
733
- "primaryKey": false,
734
- "notNull": true,
735
- "autoincrement": false
736
- },
737
- "slug": {
738
- "name": "slug",
739
- "type": "text",
740
- "primaryKey": false,
741
- "notNull": true,
742
- "autoincrement": false
743
- },
744
- "name": {
745
- "name": "name",
746
- "type": "text",
747
- "primaryKey": false,
748
- "notNull": true,
749
- "autoincrement": false
750
- },
751
- "created_at": {
752
- "name": "created_at",
753
- "type": "integer",
754
- "primaryKey": false,
755
- "notNull": true,
756
- "autoincrement": false,
757
- "default": "(CAST(unixepoch('subsec') * 1000 AS INTEGER))"
758
- },
759
- "archived_at": {
760
- "name": "archived_at",
761
- "type": "integer",
762
- "primaryKey": false,
763
- "notNull": false,
764
- "autoincrement": false
765
- }
766
- },
767
- "indexes": {
768
- "environments_project_id_slug_key": {
769
- "name": "environments_project_id_slug_key",
770
- "columns": [
771
- "project_id",
772
- "slug"
773
- ],
774
- "isUnique": true
775
- },
776
- "environments_project_scoped": {
777
- "name": "environments_project_scoped",
778
- "columns": [
779
- "id",
780
- "project_id"
781
- ],
782
- "isUnique": true
783
- }
784
- },
785
- "foreignKeys": {
786
- "environments_project_id_fkey": {
787
- "name": "environments_project_id_fkey",
788
- "tableFrom": "environments",
789
- "tableTo": "projects",
790
- "columnsFrom": [
791
- "project_id"
792
- ],
793
- "columnsTo": [
794
- "id"
795
- ],
796
- "onDelete": "restrict",
797
- "onUpdate": "no action"
798
- }
799
- },
800
- "compositePrimaryKeys": {},
801
- "uniqueConstraints": {},
802
- "checkConstraints": {
803
- "environments_slug_check": {
804
- "name": "environments_slug_check",
805
- "value": "length(\"environments\".\"slug\") BETWEEN 1 AND 63 AND \"environments\".\"slug\" GLOB '[a-z0-9]*' AND \"environments\".\"slug\" NOT GLOB '*[^a-z0-9-]*'"
806
- }
807
- }
808
- },
809
- "identities": {
810
- "name": "identities",
811
- "columns": {
812
- "id": {
813
- "name": "id",
814
- "type": "text",
815
- "primaryKey": true,
816
- "notNull": true,
817
- "autoincrement": false
818
- },
819
- "provider": {
820
- "name": "provider",
821
- "type": "text",
822
- "primaryKey": false,
823
- "notNull": true,
824
- "autoincrement": false
825
- },
826
- "auth_mac": {
827
- "name": "auth_mac",
828
- "type": "blob",
829
- "primaryKey": false,
830
- "notNull": true,
831
- "autoincrement": false
832
- },
833
- "subject": {
834
- "name": "subject",
835
- "type": "text",
836
- "primaryKey": false,
837
- "notNull": true,
838
- "autoincrement": false
839
- },
840
- "issuer_hash": {
841
- "name": "issuer_hash",
842
- "type": "text",
843
- "primaryKey": false,
844
- "notNull": true,
845
- "autoincrement": false
846
- },
847
- "generation": {
848
- "name": "generation",
849
- "type": "integer",
850
- "primaryKey": false,
851
- "notNull": true,
852
- "autoincrement": false
853
- },
854
- "principal": {
855
- "name": "principal",
856
- "type": "text",
857
- "primaryKey": false,
858
- "notNull": true,
859
- "autoincrement": false
860
- },
861
- "email": {
862
- "name": "email",
863
- "type": "text",
864
- "primaryKey": false,
865
- "notNull": false,
866
- "autoincrement": false
867
- },
868
- "created_at": {
869
- "name": "created_at",
870
- "type": "integer",
871
- "primaryKey": false,
872
- "notNull": true,
873
- "autoincrement": false,
874
- "default": "(CAST(unixepoch('subsec') * 1000 AS INTEGER))"
875
- },
876
- "created_by": {
877
- "name": "created_by",
878
- "type": "text",
879
- "primaryKey": false,
880
- "notNull": true,
881
- "autoincrement": false
882
- },
883
- "last_sign_in_at": {
884
- "name": "last_sign_in_at",
885
- "type": "integer",
886
- "primaryKey": false,
887
- "notNull": false,
888
- "autoincrement": false
889
- },
890
- "revoked_at": {
891
- "name": "revoked_at",
892
- "type": "integer",
893
- "primaryKey": false,
894
- "notNull": false,
895
- "autoincrement": false
896
- },
897
- "revoked_by": {
898
- "name": "revoked_by",
899
- "type": "text",
900
- "primaryKey": false,
901
- "notNull": false,
902
- "autoincrement": false
903
- },
904
- "active_subject": {
905
- "name": "active_subject",
906
- "type": "text",
907
- "primaryKey": false,
908
- "notNull": false,
909
- "autoincrement": false,
910
- "generated": {
911
- "as": "(CASE WHEN revoked_at IS NULL THEN subject END)",
912
- "type": "stored"
913
- }
914
- }
915
- },
916
- "indexes": {
917
- "identities_active_subject": {
918
- "name": "identities_active_subject",
919
- "columns": [
920
- "provider",
921
- "issuer_hash",
922
- "active_subject"
923
- ],
924
- "isUnique": true
925
- },
926
- "identities_principal_idx": {
927
- "name": "identities_principal_idx",
928
- "columns": [
929
- "principal",
930
- "generation"
931
- ],
932
- "isUnique": false
933
- },
934
- "identities_member_generation_key": {
935
- "name": "identities_member_generation_key",
936
- "columns": [
937
- "id",
938
- "principal",
939
- "generation"
940
- ],
941
- "isUnique": true
942
- }
943
- },
944
- "foreignKeys": {
945
- "identities_principal_fkey": {
946
- "name": "identities_principal_fkey",
947
- "tableFrom": "identities",
948
- "tableTo": "vault_members",
949
- "columnsFrom": [
950
- "principal"
951
- ],
952
- "columnsTo": [
953
- "principal"
954
- ],
955
- "onDelete": "restrict",
956
- "onUpdate": "no action"
957
- }
958
- },
959
- "compositePrimaryKeys": {},
960
- "uniqueConstraints": {},
961
- "checkConstraints": {
962
- "identities_principal_check": {
963
- "name": "identities_principal_check",
964
- "value": "\"identities\".\"principal\" LIKE 'user:%'"
965
- },
966
- "identities_provider_check": {
967
- "name": "identities_provider_check",
968
- "value": "length(\"identities\".\"provider\") BETWEEN 1 AND 32 AND \"identities\".\"provider\" GLOB '[a-z0-9]*' AND \"identities\".\"provider\" NOT GLOB '*[^a-z0-9-]*'"
969
- },
970
- "identities_auth_mac_check": {
971
- "name": "identities_auth_mac_check",
972
- "value": "octet_length(\"identities\".\"auth_mac\") = 32"
973
- }
974
- }
975
- },
976
- "projects": {
977
- "name": "projects",
978
- "columns": {
979
- "id": {
980
- "name": "id",
981
- "type": "text",
982
- "primaryKey": true,
983
- "notNull": true,
984
- "autoincrement": false
985
- },
986
- "slug": {
987
- "name": "slug",
988
- "type": "text",
989
- "primaryKey": false,
990
- "notNull": true,
991
- "autoincrement": false
992
- },
993
- "name": {
994
- "name": "name",
995
- "type": "text",
996
- "primaryKey": false,
997
- "notNull": true,
998
- "autoincrement": false
999
- },
1000
- "created_at": {
1001
- "name": "created_at",
1002
- "type": "integer",
1003
- "primaryKey": false,
1004
- "notNull": true,
1005
- "autoincrement": false,
1006
- "default": "(CAST(unixepoch('subsec') * 1000 AS INTEGER))"
1007
- },
1008
- "archived_at": {
1009
- "name": "archived_at",
1010
- "type": "integer",
1011
- "primaryKey": false,
1012
- "notNull": false,
1013
- "autoincrement": false
1014
- }
1015
- },
1016
- "indexes": {
1017
- "projects_slug_key": {
1018
- "name": "projects_slug_key",
1019
- "columns": [
1020
- "slug"
1021
- ],
1022
- "isUnique": true
1023
- }
1024
- },
1025
- "foreignKeys": {},
1026
- "compositePrimaryKeys": {},
1027
- "uniqueConstraints": {},
1028
- "checkConstraints": {
1029
- "projects_slug_check": {
1030
- "name": "projects_slug_check",
1031
- "value": "length(\"projects\".\"slug\") BETWEEN 1 AND 63 AND \"projects\".\"slug\" GLOB '[a-z0-9]*' AND \"projects\".\"slug\" NOT GLOB '*[^a-z0-9-]*'"
1032
- }
1033
- }
1034
- },
1035
- "secret_versions": {
1036
- "name": "secret_versions",
1037
- "columns": {
1038
- "id": {
1039
- "name": "id",
1040
- "type": "text",
1041
- "primaryKey": true,
1042
- "notNull": true,
1043
- "autoincrement": false
1044
- },
1045
- "secret_id": {
1046
- "name": "secret_id",
1047
- "type": "text",
1048
- "primaryKey": false,
1049
- "notNull": true,
1050
- "autoincrement": false
1051
- },
1052
- "version": {
1053
- "name": "version",
1054
- "type": "integer",
1055
- "primaryKey": false,
1056
- "notNull": true,
1057
- "autoincrement": false
1058
- },
1059
- "envelope_version": {
1060
- "name": "envelope_version",
1061
- "type": "integer",
1062
- "primaryKey": false,
1063
- "notNull": true,
1064
- "autoincrement": false
1065
- },
1066
- "ciphertext": {
1067
- "name": "ciphertext",
1068
- "type": "blob",
1069
- "primaryKey": false,
1070
- "notNull": true,
1071
- "autoincrement": false
1072
- },
1073
- "iv": {
1074
- "name": "iv",
1075
- "type": "blob",
1076
- "primaryKey": false,
1077
- "notNull": true,
1078
- "autoincrement": false
1079
- },
1080
- "auth_tag": {
1081
- "name": "auth_tag",
1082
- "type": "blob",
1083
- "primaryKey": false,
1084
- "notNull": true,
1085
- "autoincrement": false
1086
- },
1087
- "wrapped_dek": {
1088
- "name": "wrapped_dek",
1089
- "type": "blob",
1090
- "primaryKey": false,
1091
- "notNull": true,
1092
- "autoincrement": false
1093
- },
1094
- "kek_provider": {
1095
- "name": "kek_provider",
1096
- "type": "text",
1097
- "primaryKey": false,
1098
- "notNull": true,
1099
- "autoincrement": false
1100
- },
1101
- "kek_id": {
1102
- "name": "kek_id",
1103
- "type": "text",
1104
- "primaryKey": false,
1105
- "notNull": true,
1106
- "autoincrement": false
1107
- },
1108
- "kek_version": {
1109
- "name": "kek_version",
1110
- "type": "text",
1111
- "primaryKey": false,
1112
- "notNull": true,
1113
- "autoincrement": false
1114
- },
1115
- "created_at": {
1116
- "name": "created_at",
1117
- "type": "integer",
1118
- "primaryKey": false,
1119
- "notNull": true,
1120
- "autoincrement": false,
1121
- "default": "(CAST(unixepoch('subsec') * 1000 AS INTEGER))"
1122
- },
1123
- "created_by": {
1124
- "name": "created_by",
1125
- "type": "text",
1126
- "primaryKey": false,
1127
- "notNull": true,
1128
- "autoincrement": false
1129
- }
1130
- },
1131
- "indexes": {
1132
- "secret_versions_secret_idx": {
1133
- "name": "secret_versions_secret_idx",
1134
- "columns": [
1135
- "secret_id",
1136
- "version"
1137
- ],
1138
- "isUnique": false
1139
- },
1140
- "secret_versions_secret_id_version_key": {
1141
- "name": "secret_versions_secret_id_version_key",
1142
- "columns": [
1143
- "secret_id",
1144
- "version"
1145
- ],
1146
- "isUnique": true
1147
- }
1148
- },
1149
- "foreignKeys": {
1150
- "secret_versions_secret_id_fkey": {
1151
- "name": "secret_versions_secret_id_fkey",
1152
- "tableFrom": "secret_versions",
1153
- "tableTo": "secrets",
1154
- "columnsFrom": [
1155
- "secret_id"
1156
- ],
1157
- "columnsTo": [
1158
- "id"
1159
- ],
1160
- "onDelete": "restrict",
1161
- "onUpdate": "no action"
1162
- }
1163
- },
1164
- "compositePrimaryKeys": {},
1165
- "uniqueConstraints": {},
1166
- "checkConstraints": {
1167
- "secret_versions_version_check": {
1168
- "name": "secret_versions_version_check",
1169
- "value": "\"secret_versions\".\"version\" > 0"
1170
- },
1171
- "secret_versions_iv_check": {
1172
- "name": "secret_versions_iv_check",
1173
- "value": "octet_length(\"secret_versions\".\"iv\") = 12"
1174
- },
1175
- "secret_versions_auth_tag_check": {
1176
- "name": "secret_versions_auth_tag_check",
1177
- "value": "octet_length(\"secret_versions\".\"auth_tag\") = 16"
1178
- }
1179
- }
1180
- },
1181
- "secrets": {
1182
- "name": "secrets",
1183
- "columns": {
1184
- "id": {
1185
- "name": "id",
1186
- "type": "text",
1187
- "primaryKey": true,
1188
- "notNull": true,
1189
- "autoincrement": false
1190
- },
1191
- "project_id": {
1192
- "name": "project_id",
1193
- "type": "text",
1194
- "primaryKey": false,
1195
- "notNull": true,
1196
- "autoincrement": false
1197
- },
1198
- "environment_id": {
1199
- "name": "environment_id",
1200
- "type": "text",
1201
- "primaryKey": false,
1202
- "notNull": true,
1203
- "autoincrement": false
1204
- },
1205
- "key": {
1206
- "name": "key",
1207
- "type": "text",
1208
- "primaryKey": false,
1209
- "notNull": true,
1210
- "autoincrement": false
1211
- },
1212
- "created_at": {
1213
- "name": "created_at",
1214
- "type": "integer",
1215
- "primaryKey": false,
1216
- "notNull": true,
1217
- "autoincrement": false,
1218
- "default": "(CAST(unixepoch('subsec') * 1000 AS INTEGER))"
1219
- },
1220
- "updated_at": {
1221
- "name": "updated_at",
1222
- "type": "integer",
1223
- "primaryKey": false,
1224
- "notNull": true,
1225
- "autoincrement": false,
1226
- "default": "(CAST(unixepoch('subsec') * 1000 AS INTEGER))"
1227
- },
1228
- "current_version_id": {
1229
- "name": "current_version_id",
1230
- "type": "text",
1231
- "primaryKey": false,
1232
- "notNull": false,
1233
- "autoincrement": false
1234
- },
1235
- "current_version": {
1236
- "name": "current_version",
1237
- "type": "integer",
1238
- "primaryKey": false,
1239
- "notNull": true,
1240
- "autoincrement": false,
1241
- "default": 0
1242
- },
1243
- "archived_at": {
1244
- "name": "archived_at",
1245
- "type": "integer",
1246
- "primaryKey": false,
1247
- "notNull": false,
1248
- "autoincrement": false
1249
- }
1250
- },
1251
- "indexes": {
1252
- "secrets_lookup_idx": {
1253
- "name": "secrets_lookup_idx",
1254
- "columns": [
1255
- "project_id",
1256
- "environment_id",
1257
- "key"
1258
- ],
1259
- "isUnique": false
1260
- },
1261
- "secrets_project_id_environment_id_key_key": {
1262
- "name": "secrets_project_id_environment_id_key_key",
1263
- "columns": [
1264
- "project_id",
1265
- "environment_id",
1266
- "key"
1267
- ],
1268
- "isUnique": true
1269
- }
1270
- },
1271
- "foreignKeys": {
1272
- "secrets_current_version_id_secret_versions_id_fk": {
1273
- "name": "secrets_current_version_id_secret_versions_id_fk",
1274
- "tableFrom": "secrets",
1275
- "tableTo": "secret_versions",
1276
- "columnsFrom": [
1277
- "current_version_id"
1278
- ],
1279
- "columnsTo": [
1280
- "id"
1281
- ],
1282
- "onDelete": "no action",
1283
- "onUpdate": "no action"
1284
- },
1285
- "secrets_project_id_fkey": {
1286
- "name": "secrets_project_id_fkey",
1287
- "tableFrom": "secrets",
1288
- "tableTo": "projects",
1289
- "columnsFrom": [
1290
- "project_id"
1291
- ],
1292
- "columnsTo": [
1293
- "id"
1294
- ],
1295
- "onDelete": "restrict",
1296
- "onUpdate": "no action"
1297
- },
1298
- "secrets_environment_id_fkey": {
1299
- "name": "secrets_environment_id_fkey",
1300
- "tableFrom": "secrets",
1301
- "tableTo": "environments",
1302
- "columnsFrom": [
1303
- "environment_id"
1304
- ],
1305
- "columnsTo": [
1306
- "id"
1307
- ],
1308
- "onDelete": "restrict",
1309
- "onUpdate": "no action"
1310
- },
1311
- "secrets_environment_in_project": {
1312
- "name": "secrets_environment_in_project",
1313
- "tableFrom": "secrets",
1314
- "tableTo": "environments",
1315
- "columnsFrom": [
1316
- "environment_id",
1317
- "project_id"
1318
- ],
1319
- "columnsTo": [
1320
- "id",
1321
- "project_id"
1322
- ],
1323
- "onDelete": "no action",
1324
- "onUpdate": "no action"
1325
- }
1326
- },
1327
- "compositePrimaryKeys": {},
1328
- "uniqueConstraints": {},
1329
- "checkConstraints": {
1330
- "secrets_key_check": {
1331
- "name": "secrets_key_check",
1332
- "value": "length(\"secrets\".\"key\") BETWEEN 1 AND 128 AND \"secrets\".\"key\" GLOB '[A-Za-z_]*' AND \"secrets\".\"key\" NOT GLOB '*[^A-Za-z0-9_]*'"
1333
- }
1334
- }
1335
- },
1336
- "service_bindings": {
1337
- "name": "service_bindings",
1338
- "columns": {
1339
- "id": {
1340
- "name": "id",
1341
- "type": "text",
1342
- "primaryKey": true,
1343
- "notNull": true,
1344
- "autoincrement": false
1345
- },
1346
- "auth_mac": {
1347
- "name": "auth_mac",
1348
- "type": "blob",
1349
- "primaryKey": false,
1350
- "notNull": true,
1351
- "autoincrement": false
1352
- },
1353
- "principal": {
1354
- "name": "principal",
1355
- "type": "text",
1356
- "primaryKey": false,
1357
- "notNull": true,
1358
- "autoincrement": false
1359
- },
1360
- "generation": {
1361
- "name": "generation",
1362
- "type": "integer",
1363
- "primaryKey": false,
1364
- "notNull": true,
1365
- "autoincrement": false
1366
- },
1367
- "profile": {
1368
- "name": "profile",
1369
- "type": "text",
1370
- "primaryKey": false,
1371
- "notNull": true,
1372
- "autoincrement": false
1373
- },
1374
- "issuer": {
1375
- "name": "issuer",
1376
- "type": "text",
1377
- "primaryKey": false,
1378
- "notNull": true,
1379
- "autoincrement": false
1380
- },
1381
- "jwks_uri": {
1382
- "name": "jwks_uri",
1383
- "type": "text",
1384
- "primaryKey": false,
1385
- "notNull": true,
1386
- "autoincrement": false
1387
- },
1388
- "claims": {
1389
- "name": "claims",
1390
- "type": "text",
1391
- "primaryKey": false,
1392
- "notNull": true,
1393
- "autoincrement": false
1394
- },
1395
- "label": {
1396
- "name": "label",
1397
- "type": "text",
1398
- "primaryKey": false,
1399
- "notNull": false,
1400
- "autoincrement": false
1401
- },
1402
- "created_at": {
1403
- "name": "created_at",
1404
- "type": "integer",
1405
- "primaryKey": false,
1406
- "notNull": true,
1407
- "autoincrement": false,
1408
- "default": "(CAST(unixepoch('subsec') * 1000 AS INTEGER))"
1409
- },
1410
- "created_by": {
1411
- "name": "created_by",
1412
- "type": "text",
1413
- "primaryKey": false,
1414
- "notNull": true,
1415
- "autoincrement": false
1416
- },
1417
- "last_used_at": {
1418
- "name": "last_used_at",
1419
- "type": "integer",
1420
- "primaryKey": false,
1421
- "notNull": false,
1422
- "autoincrement": false
1423
- },
1424
- "revoked_at": {
1425
- "name": "revoked_at",
1426
- "type": "integer",
1427
- "primaryKey": false,
1428
- "notNull": false,
1429
- "autoincrement": false
1430
- },
1431
- "revoked_by": {
1432
- "name": "revoked_by",
1433
- "type": "text",
1434
- "primaryKey": false,
1435
- "notNull": false,
1436
- "autoincrement": false
1437
- }
1438
- },
1439
- "indexes": {
1440
- "service_bindings_principal_idx": {
1441
- "name": "service_bindings_principal_idx",
1442
- "columns": [
1443
- "principal",
1444
- "issuer"
1445
- ],
1446
- "isUnique": false
1447
- }
1448
- },
1449
- "foreignKeys": {
1450
- "service_bindings_principal_fkey": {
1451
- "name": "service_bindings_principal_fkey",
1452
- "tableFrom": "service_bindings",
1453
- "tableTo": "vault_members",
1454
- "columnsFrom": [
1455
- "principal"
1456
- ],
1457
- "columnsTo": [
1458
- "principal"
1459
- ],
1460
- "onDelete": "restrict",
1461
- "onUpdate": "no action"
1462
- }
1463
- },
1464
- "compositePrimaryKeys": {},
1465
- "uniqueConstraints": {},
1466
- "checkConstraints": {
1467
- "service_bindings_principal_check": {
1468
- "name": "service_bindings_principal_check",
1469
- "value": "\"service_bindings\".\"principal\" LIKE 'token:%'"
1470
- },
1471
- "service_bindings_auth_mac_check": {
1472
- "name": "service_bindings_auth_mac_check",
1473
- "value": "octet_length(\"service_bindings\".\"auth_mac\") = 32"
1474
- },
1475
- "service_bindings_claims_check": {
1476
- "name": "service_bindings_claims_check",
1477
- "value": "json_valid(\"service_bindings\".\"claims\")"
1478
- }
1479
- }
1480
- },
1481
- "vault_grants": {
1482
- "name": "vault_grants",
1483
- "columns": {
1484
- "principal": {
1485
- "name": "principal",
1486
- "type": "text",
1487
- "primaryKey": false,
1488
- "notNull": true,
1489
- "autoincrement": false
1490
- },
1491
- "project_id": {
1492
- "name": "project_id",
1493
- "type": "text",
1494
- "primaryKey": false,
1495
- "notNull": false,
1496
- "autoincrement": false
1497
- },
1498
- "environment_id": {
1499
- "name": "environment_id",
1500
- "type": "text",
1501
- "primaryKey": false,
1502
- "notNull": false,
1503
- "autoincrement": false
1504
- },
1505
- "role": {
1506
- "name": "role",
1507
- "type": "text",
1508
- "primaryKey": false,
1509
- "notNull": true,
1510
- "autoincrement": false
1511
- },
1512
- "expires_at": {
1513
- "name": "expires_at",
1514
- "type": "integer",
1515
- "primaryKey": false,
1516
- "notNull": false,
1517
- "autoincrement": false
1518
- },
1519
- "granted_at": {
1520
- "name": "granted_at",
1521
- "type": "integer",
1522
- "primaryKey": false,
1523
- "notNull": true,
1524
- "autoincrement": false
1525
- },
1526
- "granted_by": {
1527
- "name": "granted_by",
1528
- "type": "text",
1529
- "primaryKey": false,
1530
- "notNull": true,
1531
- "autoincrement": false
1532
- }
1533
- },
1534
- "indexes": {
1535
- "vault_grants_on_project": {
1536
- "name": "vault_grants_on_project",
1537
- "columns": [
1538
- "principal",
1539
- "project_id"
1540
- ],
1541
- "isUnique": true
1542
- },
1543
- "vault_grants_on_environment": {
1544
- "name": "vault_grants_on_environment",
1545
- "columns": [
1546
- "principal",
1547
- "environment_id"
1548
- ],
1549
- "isUnique": true
1550
- }
1551
- },
1552
- "foreignKeys": {
1553
- "vault_grants_principal_fkey": {
1554
- "name": "vault_grants_principal_fkey",
1555
- "tableFrom": "vault_grants",
1556
- "tableTo": "vault_members",
1557
- "columnsFrom": [
1558
- "principal"
1559
- ],
1560
- "columnsTo": [
1561
- "principal"
1562
- ],
1563
- "onDelete": "restrict",
1564
- "onUpdate": "no action"
1565
- },
1566
- "vault_grants_project_id_fkey": {
1567
- "name": "vault_grants_project_id_fkey",
1568
- "tableFrom": "vault_grants",
1569
- "tableTo": "projects",
1570
- "columnsFrom": [
1571
- "project_id"
1572
- ],
1573
- "columnsTo": [
1574
- "id"
1575
- ],
1576
- "onDelete": "restrict",
1577
- "onUpdate": "no action"
1578
- },
1579
- "vault_grants_environment_id_fkey": {
1580
- "name": "vault_grants_environment_id_fkey",
1581
- "tableFrom": "vault_grants",
1582
- "tableTo": "environments",
1583
- "columnsFrom": [
1584
- "environment_id"
1585
- ],
1586
- "columnsTo": [
1587
- "id"
1588
- ],
1589
- "onDelete": "restrict",
1590
- "onUpdate": "no action"
1591
- }
1592
- },
1593
- "compositePrimaryKeys": {},
1594
- "uniqueConstraints": {},
1595
- "checkConstraints": {
1596
- "vault_grants_one_place": {
1597
- "name": "vault_grants_one_place",
1598
- "value": "(\"vault_grants\".\"project_id\" IS NULL) <> (\"vault_grants\".\"environment_id\" IS NULL)"
1599
- },
1600
- "vault_grants_role_check": {
1601
- "name": "vault_grants_role_check",
1602
- "value": "\"vault_grants\".\"role\" IN ('viewer', 'developer', 'maintainer', 'access-manager', 'auditor', 'owner')"
1603
- },
1604
- "vault_grants_environment_role_check": {
1605
- "name": "vault_grants_environment_role_check",
1606
- "value": "\"vault_grants\".\"environment_id\" IS NULL OR \"vault_grants\".\"role\" IN ('viewer', 'developer', 'auditor')"
1607
- }
1608
- }
1609
- },
1610
- "vault_members": {
1611
- "name": "vault_members",
1612
- "columns": {
1613
- "principal": {
1614
- "name": "principal",
1615
- "type": "text",
1616
- "primaryKey": true,
1617
- "notNull": true,
1618
- "autoincrement": false
1619
- },
1620
- "status": {
1621
- "name": "status",
1622
- "type": "text",
1623
- "primaryKey": false,
1624
- "notNull": true,
1625
- "autoincrement": false
1626
- },
1627
- "owner": {
1628
- "name": "owner",
1629
- "type": "integer",
1630
- "primaryKey": false,
1631
- "notNull": true,
1632
- "autoincrement": false,
1633
- "default": false
1634
- },
1635
- "generation": {
1636
- "name": "generation",
1637
- "type": "integer",
1638
- "primaryKey": false,
1639
- "notNull": true,
1640
- "autoincrement": false,
1641
- "default": 0
1642
- },
1643
- "created_at": {
1644
- "name": "created_at",
1645
- "type": "integer",
1646
- "primaryKey": false,
1647
- "notNull": true,
1648
- "autoincrement": false
1649
- },
1650
- "created_by": {
1651
- "name": "created_by",
1652
- "type": "text",
1653
- "primaryKey": false,
1654
- "notNull": true,
1655
- "autoincrement": false
1656
- },
1657
- "status_changed_at": {
1658
- "name": "status_changed_at",
1659
- "type": "integer",
1660
- "primaryKey": false,
1661
- "notNull": true,
1662
- "autoincrement": false
1663
- },
1664
- "status_changed_by": {
1665
- "name": "status_changed_by",
1666
- "type": "text",
1667
- "primaryKey": false,
1668
- "notNull": true,
1669
- "autoincrement": false
1670
- },
1671
- "access_seq": {
1672
- "name": "access_seq",
1673
- "type": "integer",
1674
- "primaryKey": false,
1675
- "notNull": true,
1676
- "autoincrement": false
1677
- },
1678
- "mac": {
1679
- "name": "mac",
1680
- "type": "blob",
1681
- "primaryKey": false,
1682
- "notNull": true,
1683
- "autoincrement": false
1684
- }
1685
- },
1686
- "indexes": {},
1687
- "foreignKeys": {},
1688
- "compositePrimaryKeys": {},
1689
- "uniqueConstraints": {},
1690
- "checkConstraints": {
1691
- "vault_members_mac_check": {
1692
- "name": "vault_members_mac_check",
1693
- "value": "octet_length(\"vault_members\".\"mac\") = 32"
1694
- },
1695
- "vault_members_principal_check": {
1696
- "name": "vault_members_principal_check",
1697
- "value": "(\"vault_members\".\"principal\" GLOB 'user:?*' OR \"vault_members\".\"principal\" GLOB 'token:?*' OR \"vault_members\".\"principal\" GLOB 'sync:?*')\n AND substr(\"vault_members\".\"principal\", instr(\"vault_members\".\"principal\", ':') + 1, 1) <> ':'\n AND instr(\"vault_members\".\"principal\", ' ') = 0 AND instr(\"vault_members\".\"principal\", char(9)) = 0\n AND instr(\"vault_members\".\"principal\", char(10)) = 0 AND instr(\"vault_members\".\"principal\", char(13)) = 0"
1698
- },
1699
- "vault_members_user_lowercase": {
1700
- "name": "vault_members_user_lowercase",
1701
- "value": "\"vault_members\".\"principal\" NOT LIKE 'user:%' OR \"vault_members\".\"principal\" = lower(\"vault_members\".\"principal\")"
1702
- },
1703
- "vault_members_status_check": {
1704
- "name": "vault_members_status_check",
1705
- "value": "\"vault_members\".\"status\" IN ('active', 'removed')"
1706
- },
1707
- "vault_members_owner_check": {
1708
- "name": "vault_members_owner_check",
1709
- "value": "NOT \"vault_members\".\"owner\" OR (\"vault_members\".\"status\" = 'active' AND \"vault_members\".\"principal\" LIKE 'user:%')"
1710
- },
1711
- "vault_members_generation_check": {
1712
- "name": "vault_members_generation_check",
1713
- "value": "\"vault_members\".\"generation\" >= 0"
1714
- }
1715
- }
1716
- }
1717
- },
1718
- "views": {},
1719
- "enums": {},
1720
- "_meta": {
1721
- "schemas": {},
1722
- "tables": {},
1723
- "columns": {}
1724
- },
1725
- "internal": {
1726
- "indexes": {
1727
- "audit_log_unbind_idx": {
1728
- "columns": {
1729
- "json_extract(\"metadata\", '$.bindingId')": {
1730
- "isExpression": true
1731
- }
1732
- }
1733
- }
1734
- }
1735
- }
1736
- }