@alteran/astro 0.7.6 → 0.8.1

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 (75) hide show
  1. package/README.md +25 -25
  2. package/migrations/0010_eminent_klaw.sql +37 -0
  3. package/migrations/0011_chief_darwin.sql +31 -0
  4. package/migrations/0012_backfill_blob_usage.sql +39 -0
  5. package/migrations/meta/0010_snapshot.json +790 -0
  6. package/migrations/meta/0011_snapshot.json +813 -0
  7. package/migrations/meta/_journal.json +22 -1
  8. package/package.json +24 -41
  9. package/src/db/blob.ts +323 -0
  10. package/src/db/dal.ts +224 -78
  11. package/src/db/repo.ts +205 -25
  12. package/src/db/schema.ts +14 -5
  13. package/src/handlers/debug.ts +4 -3
  14. package/src/lib/appview/auth-policy.ts +7 -24
  15. package/src/lib/appview/proxy.ts +56 -23
  16. package/src/lib/appview/types.ts +1 -6
  17. package/src/lib/auth-scope.ts +399 -0
  18. package/src/lib/auth.ts +40 -39
  19. package/src/lib/commit.ts +37 -15
  20. package/src/lib/did-document.ts +4 -5
  21. package/src/lib/jwt.ts +3 -1
  22. package/src/lib/mime.ts +9 -0
  23. package/src/lib/oauth/observability.ts +53 -12
  24. package/src/lib/oauth/resource.ts +49 -0
  25. package/src/lib/preference-policy.ts +45 -0
  26. package/src/lib/preferences.ts +0 -4
  27. package/src/lib/public-host.ts +127 -0
  28. package/src/lib/ratelimit.ts +37 -12
  29. package/src/lib/relay.ts +7 -27
  30. package/src/lib/repo-write-blob-constraints.ts +141 -0
  31. package/src/lib/repo-write-data.ts +195 -0
  32. package/src/lib/repo-write-error.ts +46 -0
  33. package/src/lib/repo-write-validation.ts +463 -0
  34. package/src/lib/session-tokens.ts +22 -5
  35. package/src/lib/unsupported-routes.ts +32 -0
  36. package/src/lib/util.ts +57 -2
  37. package/src/pages/.well-known/atproto-did.ts +15 -3
  38. package/src/pages/.well-known/did.json.ts +13 -7
  39. package/src/pages/debug/db/bootstrap.ts +4 -3
  40. package/src/pages/debug/gc/blobs.ts +11 -8
  41. package/src/pages/debug/record.ts +11 -0
  42. package/src/pages/oauth/token.ts +78 -33
  43. package/src/pages/xrpc/[...nsid].ts +17 -9
  44. package/src/pages/xrpc/app.bsky.actor.getPreferences.ts +9 -3
  45. package/src/pages/xrpc/app.bsky.actor.putPreferences.ts +17 -4
  46. package/src/pages/xrpc/app.bsky.unspecced.getAgeAssuranceState.ts +4 -2
  47. package/src/pages/xrpc/chat.bsky.convo.getLog.ts +4 -2
  48. package/src/pages/xrpc/chat.bsky.convo.listConvos.ts +4 -2
  49. package/src/pages/xrpc/com.atproto.identity.getRecommendedDidCredentials.ts +10 -6
  50. package/src/pages/xrpc/com.atproto.identity.requestPlcOperationSignature.ts +4 -3
  51. package/src/pages/xrpc/com.atproto.identity.resolveHandle.ts +13 -5
  52. package/src/pages/xrpc/com.atproto.identity.signPlcOperation.ts +4 -2
  53. package/src/pages/xrpc/com.atproto.identity.submitPlcOperation.ts +4 -2
  54. package/src/pages/xrpc/com.atproto.identity.updateHandle.ts +12 -36
  55. package/src/pages/xrpc/com.atproto.repo.applyWrites.ts +90 -139
  56. package/src/pages/xrpc/com.atproto.repo.createRecord.ts +74 -47
  57. package/src/pages/xrpc/com.atproto.repo.deleteRecord.ts +119 -46
  58. package/src/pages/xrpc/com.atproto.repo.describeRepo.ts +21 -20
  59. package/src/pages/xrpc/com.atproto.repo.getRecord.ts +6 -1
  60. package/src/pages/xrpc/com.atproto.repo.listMissingBlobs.ts +4 -2
  61. package/src/pages/xrpc/com.atproto.repo.putRecord.ts +84 -47
  62. package/src/pages/xrpc/com.atproto.repo.uploadBlob.ts +199 -78
  63. package/src/pages/xrpc/com.atproto.server.checkAccountStatus.ts +4 -2
  64. package/src/pages/xrpc/com.atproto.server.getServiceAuth.ts +88 -21
  65. package/src/pages/xrpc/com.atproto.server.getSession.ts +3 -13
  66. package/src/pages/xrpc/com.atproto.sync.getBlob.ts +92 -74
  67. package/src/pages/xrpc/com.atproto.sync.listBlobs.ts +45 -23
  68. package/src/services/car.ts +13 -0
  69. package/src/services/repo/apply-prepared-writes.ts +185 -0
  70. package/src/services/repo/blob-refs.ts +48 -0
  71. package/src/services/repo/blockstore-ops.ts +59 -17
  72. package/src/services/repo/list-blobs.ts +43 -0
  73. package/src/services/repo-manager.ts +221 -78
  74. package/src/worker/runtime.ts +1 -1
  75. package/src/worker/sequencer/upgrade.ts +4 -1
@@ -0,0 +1,813 @@
1
+ {
2
+ "version": "6",
3
+ "dialect": "sqlite",
4
+ "id": "5ae4e65f-7d3a-482f-94fa-7d4b7db7be8a",
5
+ "prevId": "84905523-1c36-4c05-9566-31675c1f1ccf",
6
+ "tables": {
7
+ "account": {
8
+ "name": "account",
9
+ "columns": {
10
+ "did": {
11
+ "name": "did",
12
+ "type": "text",
13
+ "primaryKey": true,
14
+ "notNull": true,
15
+ "autoincrement": false
16
+ },
17
+ "handle": {
18
+ "name": "handle",
19
+ "type": "text",
20
+ "primaryKey": false,
21
+ "notNull": true,
22
+ "autoincrement": false
23
+ },
24
+ "password_scrypt": {
25
+ "name": "password_scrypt",
26
+ "type": "text",
27
+ "primaryKey": false,
28
+ "notNull": false,
29
+ "autoincrement": false
30
+ },
31
+ "email": {
32
+ "name": "email",
33
+ "type": "text",
34
+ "primaryKey": false,
35
+ "notNull": false,
36
+ "autoincrement": false
37
+ },
38
+ "created_at": {
39
+ "name": "created_at",
40
+ "type": "integer",
41
+ "primaryKey": false,
42
+ "notNull": true,
43
+ "autoincrement": false
44
+ },
45
+ "updated_at": {
46
+ "name": "updated_at",
47
+ "type": "integer",
48
+ "primaryKey": false,
49
+ "notNull": true,
50
+ "autoincrement": false
51
+ }
52
+ },
53
+ "indexes": {
54
+ "account_handle_unique": {
55
+ "name": "account_handle_unique",
56
+ "columns": [
57
+ "handle"
58
+ ],
59
+ "isUnique": true
60
+ }
61
+ },
62
+ "foreignKeys": {},
63
+ "compositePrimaryKeys": {},
64
+ "uniqueConstraints": {},
65
+ "checkConstraints": {}
66
+ },
67
+ "account_state": {
68
+ "name": "account_state",
69
+ "columns": {
70
+ "did": {
71
+ "name": "did",
72
+ "type": "text",
73
+ "primaryKey": true,
74
+ "notNull": true,
75
+ "autoincrement": false
76
+ },
77
+ "active": {
78
+ "name": "active",
79
+ "type": "integer",
80
+ "primaryKey": false,
81
+ "notNull": true,
82
+ "autoincrement": false,
83
+ "default": false
84
+ },
85
+ "status": {
86
+ "name": "status",
87
+ "type": "text",
88
+ "primaryKey": false,
89
+ "notNull": false,
90
+ "autoincrement": false
91
+ },
92
+ "suspended_until": {
93
+ "name": "suspended_until",
94
+ "type": "integer",
95
+ "primaryKey": false,
96
+ "notNull": false,
97
+ "autoincrement": false
98
+ },
99
+ "created_at": {
100
+ "name": "created_at",
101
+ "type": "integer",
102
+ "primaryKey": false,
103
+ "notNull": true,
104
+ "autoincrement": false
105
+ }
106
+ },
107
+ "indexes": {},
108
+ "foreignKeys": {},
109
+ "compositePrimaryKeys": {},
110
+ "uniqueConstraints": {},
111
+ "checkConstraints": {}
112
+ },
113
+ "blob_quota": {
114
+ "name": "blob_quota",
115
+ "columns": {
116
+ "did": {
117
+ "name": "did",
118
+ "type": "text",
119
+ "primaryKey": true,
120
+ "notNull": true,
121
+ "autoincrement": false
122
+ },
123
+ "total_bytes": {
124
+ "name": "total_bytes",
125
+ "type": "integer",
126
+ "primaryKey": false,
127
+ "notNull": true,
128
+ "autoincrement": false,
129
+ "default": 0
130
+ },
131
+ "blob_count": {
132
+ "name": "blob_count",
133
+ "type": "integer",
134
+ "primaryKey": false,
135
+ "notNull": true,
136
+ "autoincrement": false,
137
+ "default": 0
138
+ },
139
+ "updated_at": {
140
+ "name": "updated_at",
141
+ "type": "integer",
142
+ "primaryKey": false,
143
+ "notNull": true,
144
+ "autoincrement": false
145
+ }
146
+ },
147
+ "indexes": {},
148
+ "foreignKeys": {},
149
+ "compositePrimaryKeys": {},
150
+ "uniqueConstraints": {},
151
+ "checkConstraints": {}
152
+ },
153
+ "blob": {
154
+ "name": "blob",
155
+ "columns": {
156
+ "cid": {
157
+ "name": "cid",
158
+ "type": "text",
159
+ "primaryKey": false,
160
+ "notNull": true,
161
+ "autoincrement": false
162
+ },
163
+ "did": {
164
+ "name": "did",
165
+ "type": "text",
166
+ "primaryKey": false,
167
+ "notNull": true,
168
+ "autoincrement": false
169
+ },
170
+ "key": {
171
+ "name": "key",
172
+ "type": "text",
173
+ "primaryKey": false,
174
+ "notNull": true,
175
+ "autoincrement": false
176
+ },
177
+ "mime": {
178
+ "name": "mime",
179
+ "type": "text",
180
+ "primaryKey": false,
181
+ "notNull": true,
182
+ "autoincrement": false
183
+ },
184
+ "size": {
185
+ "name": "size",
186
+ "type": "integer",
187
+ "primaryKey": false,
188
+ "notNull": true,
189
+ "autoincrement": false
190
+ },
191
+ "uploaded_at": {
192
+ "name": "uploaded_at",
193
+ "type": "integer",
194
+ "primaryKey": false,
195
+ "notNull": true,
196
+ "autoincrement": false,
197
+ "default": 0
198
+ }
199
+ },
200
+ "indexes": {
201
+ "blob_key_idx": {
202
+ "name": "blob_key_idx",
203
+ "columns": [
204
+ "key"
205
+ ],
206
+ "isUnique": false
207
+ }
208
+ },
209
+ "foreignKeys": {},
210
+ "compositePrimaryKeys": {
211
+ "blob_did_cid_pk": {
212
+ "columns": [
213
+ "did",
214
+ "cid"
215
+ ],
216
+ "name": "blob_did_cid_pk"
217
+ }
218
+ },
219
+ "uniqueConstraints": {},
220
+ "checkConstraints": {}
221
+ },
222
+ "blob_usage": {
223
+ "name": "blob_usage",
224
+ "columns": {
225
+ "did": {
226
+ "name": "did",
227
+ "type": "text",
228
+ "primaryKey": false,
229
+ "notNull": true,
230
+ "autoincrement": false
231
+ },
232
+ "record_uri": {
233
+ "name": "record_uri",
234
+ "type": "text",
235
+ "primaryKey": false,
236
+ "notNull": true,
237
+ "autoincrement": false
238
+ },
239
+ "key": {
240
+ "name": "key",
241
+ "type": "text",
242
+ "primaryKey": false,
243
+ "notNull": true,
244
+ "autoincrement": false
245
+ },
246
+ "cid": {
247
+ "name": "cid",
248
+ "type": "text",
249
+ "primaryKey": false,
250
+ "notNull": true,
251
+ "autoincrement": false
252
+ },
253
+ "repo_rev": {
254
+ "name": "repo_rev",
255
+ "type": "text",
256
+ "primaryKey": false,
257
+ "notNull": true,
258
+ "autoincrement": false
259
+ }
260
+ },
261
+ "indexes": {
262
+ "blob_usage_record_uri_idx": {
263
+ "name": "blob_usage_record_uri_idx",
264
+ "columns": [
265
+ "did",
266
+ "record_uri"
267
+ ],
268
+ "isUnique": false
269
+ },
270
+ "blob_usage_did_key_idx": {
271
+ "name": "blob_usage_did_key_idx",
272
+ "columns": [
273
+ "did",
274
+ "key"
275
+ ],
276
+ "isUnique": false
277
+ },
278
+ "blob_usage_did_repo_rev_cid_idx": {
279
+ "name": "blob_usage_did_repo_rev_cid_idx",
280
+ "columns": [
281
+ "did",
282
+ "repo_rev",
283
+ "cid"
284
+ ],
285
+ "isUnique": false
286
+ }
287
+ },
288
+ "foreignKeys": {},
289
+ "compositePrimaryKeys": {
290
+ "blob_usage_did_record_uri_key_pk": {
291
+ "columns": [
292
+ "did",
293
+ "record_uri",
294
+ "key"
295
+ ],
296
+ "name": "blob_usage_did_record_uri_key_pk"
297
+ }
298
+ },
299
+ "uniqueConstraints": {},
300
+ "checkConstraints": {}
301
+ },
302
+ "blockstore": {
303
+ "name": "blockstore",
304
+ "columns": {
305
+ "cid": {
306
+ "name": "cid",
307
+ "type": "text",
308
+ "primaryKey": true,
309
+ "notNull": true,
310
+ "autoincrement": false
311
+ },
312
+ "bytes": {
313
+ "name": "bytes",
314
+ "type": "text",
315
+ "primaryKey": false,
316
+ "notNull": false,
317
+ "autoincrement": false
318
+ }
319
+ },
320
+ "indexes": {},
321
+ "foreignKeys": {},
322
+ "compositePrimaryKeys": {},
323
+ "uniqueConstraints": {},
324
+ "checkConstraints": {}
325
+ },
326
+ "commit_log": {
327
+ "name": "commit_log",
328
+ "columns": {
329
+ "seq": {
330
+ "name": "seq",
331
+ "type": "integer",
332
+ "primaryKey": true,
333
+ "notNull": true,
334
+ "autoincrement": false
335
+ },
336
+ "cid": {
337
+ "name": "cid",
338
+ "type": "text",
339
+ "primaryKey": false,
340
+ "notNull": true,
341
+ "autoincrement": false
342
+ },
343
+ "rev": {
344
+ "name": "rev",
345
+ "type": "text",
346
+ "primaryKey": false,
347
+ "notNull": true,
348
+ "autoincrement": false
349
+ },
350
+ "data": {
351
+ "name": "data",
352
+ "type": "text",
353
+ "primaryKey": false,
354
+ "notNull": true,
355
+ "autoincrement": false
356
+ },
357
+ "sig": {
358
+ "name": "sig",
359
+ "type": "text",
360
+ "primaryKey": false,
361
+ "notNull": true,
362
+ "autoincrement": false
363
+ },
364
+ "ts": {
365
+ "name": "ts",
366
+ "type": "integer",
367
+ "primaryKey": false,
368
+ "notNull": true,
369
+ "autoincrement": false
370
+ }
371
+ },
372
+ "indexes": {
373
+ "commit_log_seq_idx": {
374
+ "name": "commit_log_seq_idx",
375
+ "columns": [
376
+ "seq"
377
+ ],
378
+ "isUnique": false
379
+ }
380
+ },
381
+ "foreignKeys": {},
382
+ "compositePrimaryKeys": {},
383
+ "uniqueConstraints": {},
384
+ "checkConstraints": {}
385
+ },
386
+ "login_attempts": {
387
+ "name": "login_attempts",
388
+ "columns": {
389
+ "ip": {
390
+ "name": "ip",
391
+ "type": "text",
392
+ "primaryKey": true,
393
+ "notNull": true,
394
+ "autoincrement": false
395
+ },
396
+ "attempts": {
397
+ "name": "attempts",
398
+ "type": "integer",
399
+ "primaryKey": false,
400
+ "notNull": true,
401
+ "autoincrement": false,
402
+ "default": 0
403
+ },
404
+ "locked_until": {
405
+ "name": "locked_until",
406
+ "type": "integer",
407
+ "primaryKey": false,
408
+ "notNull": false,
409
+ "autoincrement": false
410
+ },
411
+ "last_attempt": {
412
+ "name": "last_attempt",
413
+ "type": "integer",
414
+ "primaryKey": false,
415
+ "notNull": true,
416
+ "autoincrement": false
417
+ }
418
+ },
419
+ "indexes": {},
420
+ "foreignKeys": {},
421
+ "compositePrimaryKeys": {},
422
+ "uniqueConstraints": {},
423
+ "checkConstraints": {}
424
+ },
425
+ "oauth_session": {
426
+ "name": "oauth_session",
427
+ "columns": {
428
+ "id": {
429
+ "name": "id",
430
+ "type": "text",
431
+ "primaryKey": true,
432
+ "notNull": true,
433
+ "autoincrement": false
434
+ },
435
+ "did": {
436
+ "name": "did",
437
+ "type": "text",
438
+ "primaryKey": false,
439
+ "notNull": true,
440
+ "autoincrement": false
441
+ },
442
+ "client_id": {
443
+ "name": "client_id",
444
+ "type": "text",
445
+ "primaryKey": false,
446
+ "notNull": true,
447
+ "autoincrement": false
448
+ },
449
+ "client_auth_method": {
450
+ "name": "client_auth_method",
451
+ "type": "text",
452
+ "primaryKey": false,
453
+ "notNull": true,
454
+ "autoincrement": false
455
+ },
456
+ "client_auth_key_id": {
457
+ "name": "client_auth_key_id",
458
+ "type": "text",
459
+ "primaryKey": false,
460
+ "notNull": false,
461
+ "autoincrement": false
462
+ },
463
+ "dpop_jkt": {
464
+ "name": "dpop_jkt",
465
+ "type": "text",
466
+ "primaryKey": false,
467
+ "notNull": true,
468
+ "autoincrement": false
469
+ },
470
+ "scope": {
471
+ "name": "scope",
472
+ "type": "text",
473
+ "primaryKey": false,
474
+ "notNull": true,
475
+ "autoincrement": false
476
+ },
477
+ "current_refresh_token_id": {
478
+ "name": "current_refresh_token_id",
479
+ "type": "text",
480
+ "primaryKey": false,
481
+ "notNull": true,
482
+ "autoincrement": false
483
+ },
484
+ "access_jti": {
485
+ "name": "access_jti",
486
+ "type": "text",
487
+ "primaryKey": false,
488
+ "notNull": true,
489
+ "autoincrement": false
490
+ },
491
+ "created_at": {
492
+ "name": "created_at",
493
+ "type": "integer",
494
+ "primaryKey": false,
495
+ "notNull": true,
496
+ "autoincrement": false
497
+ },
498
+ "updated_at": {
499
+ "name": "updated_at",
500
+ "type": "integer",
501
+ "primaryKey": false,
502
+ "notNull": true,
503
+ "autoincrement": false
504
+ },
505
+ "expires_at": {
506
+ "name": "expires_at",
507
+ "type": "integer",
508
+ "primaryKey": false,
509
+ "notNull": true,
510
+ "autoincrement": false
511
+ },
512
+ "revoked_at": {
513
+ "name": "revoked_at",
514
+ "type": "integer",
515
+ "primaryKey": false,
516
+ "notNull": false,
517
+ "autoincrement": false
518
+ }
519
+ },
520
+ "indexes": {
521
+ "oauth_session_client_idx": {
522
+ "name": "oauth_session_client_idx",
523
+ "columns": [
524
+ "client_id"
525
+ ],
526
+ "isUnique": false
527
+ },
528
+ "oauth_session_current_refresh_idx": {
529
+ "name": "oauth_session_current_refresh_idx",
530
+ "columns": [
531
+ "current_refresh_token_id"
532
+ ],
533
+ "isUnique": false
534
+ },
535
+ "oauth_session_access_jti_idx": {
536
+ "name": "oauth_session_access_jti_idx",
537
+ "columns": [
538
+ "access_jti"
539
+ ],
540
+ "isUnique": false
541
+ }
542
+ },
543
+ "foreignKeys": {},
544
+ "compositePrimaryKeys": {},
545
+ "uniqueConstraints": {},
546
+ "checkConstraints": {}
547
+ },
548
+ "record": {
549
+ "name": "record",
550
+ "columns": {
551
+ "uri": {
552
+ "name": "uri",
553
+ "type": "text",
554
+ "primaryKey": true,
555
+ "notNull": true,
556
+ "autoincrement": false
557
+ },
558
+ "did": {
559
+ "name": "did",
560
+ "type": "text",
561
+ "primaryKey": false,
562
+ "notNull": true,
563
+ "autoincrement": false
564
+ },
565
+ "cid": {
566
+ "name": "cid",
567
+ "type": "text",
568
+ "primaryKey": false,
569
+ "notNull": true,
570
+ "autoincrement": false
571
+ },
572
+ "json": {
573
+ "name": "json",
574
+ "type": "text",
575
+ "primaryKey": false,
576
+ "notNull": true,
577
+ "autoincrement": false
578
+ },
579
+ "created_at": {
580
+ "name": "created_at",
581
+ "type": "integer",
582
+ "primaryKey": false,
583
+ "notNull": false,
584
+ "autoincrement": false,
585
+ "default": 0
586
+ }
587
+ },
588
+ "indexes": {
589
+ "record_did_idx": {
590
+ "name": "record_did_idx",
591
+ "columns": [
592
+ "did"
593
+ ],
594
+ "isUnique": false
595
+ },
596
+ "record_cid_idx": {
597
+ "name": "record_cid_idx",
598
+ "columns": [
599
+ "cid"
600
+ ],
601
+ "isUnique": false
602
+ }
603
+ },
604
+ "foreignKeys": {},
605
+ "compositePrimaryKeys": {},
606
+ "uniqueConstraints": {},
607
+ "checkConstraints": {}
608
+ },
609
+ "refresh_token": {
610
+ "name": "refresh_token",
611
+ "columns": {
612
+ "id": {
613
+ "name": "id",
614
+ "type": "text",
615
+ "primaryKey": true,
616
+ "notNull": true,
617
+ "autoincrement": false
618
+ },
619
+ "did": {
620
+ "name": "did",
621
+ "type": "text",
622
+ "primaryKey": false,
623
+ "notNull": true,
624
+ "autoincrement": false
625
+ },
626
+ "expires_at": {
627
+ "name": "expires_at",
628
+ "type": "integer",
629
+ "primaryKey": false,
630
+ "notNull": true,
631
+ "autoincrement": false
632
+ },
633
+ "app_password_name": {
634
+ "name": "app_password_name",
635
+ "type": "text",
636
+ "primaryKey": false,
637
+ "notNull": false,
638
+ "autoincrement": false
639
+ },
640
+ "next_id": {
641
+ "name": "next_id",
642
+ "type": "text",
643
+ "primaryKey": false,
644
+ "notNull": false,
645
+ "autoincrement": false
646
+ },
647
+ "token_kind": {
648
+ "name": "token_kind",
649
+ "type": "text",
650
+ "primaryKey": false,
651
+ "notNull": true,
652
+ "autoincrement": false,
653
+ "default": "'legacy'"
654
+ },
655
+ "oauth_session_id": {
656
+ "name": "oauth_session_id",
657
+ "type": "text",
658
+ "primaryKey": false,
659
+ "notNull": false,
660
+ "autoincrement": false
661
+ },
662
+ "client_id": {
663
+ "name": "client_id",
664
+ "type": "text",
665
+ "primaryKey": false,
666
+ "notNull": false,
667
+ "autoincrement": false
668
+ },
669
+ "client_auth_method": {
670
+ "name": "client_auth_method",
671
+ "type": "text",
672
+ "primaryKey": false,
673
+ "notNull": false,
674
+ "autoincrement": false
675
+ },
676
+ "client_auth_key_id": {
677
+ "name": "client_auth_key_id",
678
+ "type": "text",
679
+ "primaryKey": false,
680
+ "notNull": false,
681
+ "autoincrement": false
682
+ },
683
+ "dpop_jkt": {
684
+ "name": "dpop_jkt",
685
+ "type": "text",
686
+ "primaryKey": false,
687
+ "notNull": false,
688
+ "autoincrement": false
689
+ },
690
+ "oauth_scope": {
691
+ "name": "oauth_scope",
692
+ "type": "text",
693
+ "primaryKey": false,
694
+ "notNull": false,
695
+ "autoincrement": false
696
+ },
697
+ "access_jti": {
698
+ "name": "access_jti",
699
+ "type": "text",
700
+ "primaryKey": false,
701
+ "notNull": false,
702
+ "autoincrement": false
703
+ },
704
+ "revoked_at": {
705
+ "name": "revoked_at",
706
+ "type": "integer",
707
+ "primaryKey": false,
708
+ "notNull": false,
709
+ "autoincrement": false
710
+ }
711
+ },
712
+ "indexes": {
713
+ "refresh_token_did_idx": {
714
+ "name": "refresh_token_did_idx",
715
+ "columns": [
716
+ "did"
717
+ ],
718
+ "isUnique": false
719
+ },
720
+ "refresh_token_oauth_session_idx": {
721
+ "name": "refresh_token_oauth_session_idx",
722
+ "columns": [
723
+ "oauth_session_id"
724
+ ],
725
+ "isUnique": false
726
+ },
727
+ "refresh_token_access_jti_idx": {
728
+ "name": "refresh_token_access_jti_idx",
729
+ "columns": [
730
+ "access_jti"
731
+ ],
732
+ "isUnique": false
733
+ }
734
+ },
735
+ "foreignKeys": {},
736
+ "compositePrimaryKeys": {},
737
+ "uniqueConstraints": {},
738
+ "checkConstraints": {}
739
+ },
740
+ "repo_root": {
741
+ "name": "repo_root",
742
+ "columns": {
743
+ "did": {
744
+ "name": "did",
745
+ "type": "text",
746
+ "primaryKey": true,
747
+ "notNull": true,
748
+ "autoincrement": false
749
+ },
750
+ "commit_cid": {
751
+ "name": "commit_cid",
752
+ "type": "text",
753
+ "primaryKey": false,
754
+ "notNull": true,
755
+ "autoincrement": false
756
+ },
757
+ "rev": {
758
+ "name": "rev",
759
+ "type": "text",
760
+ "primaryKey": false,
761
+ "notNull": true,
762
+ "autoincrement": false
763
+ }
764
+ },
765
+ "indexes": {},
766
+ "foreignKeys": {},
767
+ "compositePrimaryKeys": {},
768
+ "uniqueConstraints": {},
769
+ "checkConstraints": {}
770
+ },
771
+ "secret": {
772
+ "name": "secret",
773
+ "columns": {
774
+ "key": {
775
+ "name": "key",
776
+ "type": "text",
777
+ "primaryKey": true,
778
+ "notNull": true,
779
+ "autoincrement": false
780
+ },
781
+ "value": {
782
+ "name": "value",
783
+ "type": "text",
784
+ "primaryKey": false,
785
+ "notNull": true,
786
+ "autoincrement": false
787
+ },
788
+ "updated_at": {
789
+ "name": "updated_at",
790
+ "type": "integer",
791
+ "primaryKey": false,
792
+ "notNull": true,
793
+ "autoincrement": false
794
+ }
795
+ },
796
+ "indexes": {},
797
+ "foreignKeys": {},
798
+ "compositePrimaryKeys": {},
799
+ "uniqueConstraints": {},
800
+ "checkConstraints": {}
801
+ }
802
+ },
803
+ "views": {},
804
+ "enums": {},
805
+ "_meta": {
806
+ "schemas": {},
807
+ "tables": {},
808
+ "columns": {}
809
+ },
810
+ "internal": {
811
+ "indexes": {}
812
+ }
813
+ }