@spfn/auth 0.2.0-beta.9 → 0.2.0-beta.90

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 (52) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +984 -1743
  3. package/dist/authenticate-CnccboAg.d.ts +1383 -0
  4. package/dist/client-proof.d.ts +677 -0
  5. package/dist/client-proof.js +1814 -0
  6. package/dist/client-proof.js.map +1 -0
  7. package/dist/config.d.ts +487 -39
  8. package/dist/config.js +243 -29
  9. package/dist/config.js.map +1 -1
  10. package/dist/errors.d.ts +208 -3
  11. package/dist/errors.js +140 -1
  12. package/dist/errors.js.map +1 -1
  13. package/dist/index.d.ts +391 -109
  14. package/dist/index.js +186 -7
  15. package/dist/index.js.map +1 -1
  16. package/dist/nextjs/api.js +591 -61
  17. package/dist/nextjs/api.js.map +1 -1
  18. package/dist/nextjs/client.d.ts +28 -0
  19. package/dist/nextjs/client.js +80 -0
  20. package/dist/nextjs/client.js.map +1 -0
  21. package/dist/nextjs/server.d.ts +92 -3
  22. package/dist/nextjs/server.js +288 -24
  23. package/dist/nextjs/server.js.map +1 -1
  24. package/dist/server.d.ts +2495 -1089
  25. package/dist/server.js +6212 -1499
  26. package/dist/server.js.map +1 -1
  27. package/dist/session-CFK4BT25.d.ts +53 -0
  28. package/dist/types-CD95yudz.d.ts +98 -0
  29. package/migrations/20251125021229_premium_famine/snapshot.json +2641 -0
  30. package/migrations/20260225130050_smooth_the_fury/migration.sql +3 -0
  31. package/migrations/20260225130050_smooth_the_fury/snapshot.json +2686 -0
  32. package/migrations/20260308141417_deep_iceman/migration.sql +11 -0
  33. package/migrations/20260308141417_deep_iceman/snapshot.json +2686 -0
  34. package/migrations/20260308151309_perfect_deathbird/migration.sql +3 -0
  35. package/migrations/20260308151309_perfect_deathbird/snapshot.json +2731 -0
  36. package/migrations/20260308201135_concerned_rawhide_kid/migration.sql +5 -0
  37. package/migrations/20260308201135_concerned_rawhide_kid/snapshot.json +2786 -0
  38. package/migrations/20260629103209_lethal_lifeguard/migration.sql +32 -0
  39. package/migrations/20260629103209_lethal_lifeguard/snapshot.json +2786 -0
  40. package/migrations/20260709073531_easy_hardball/migration.sql +24 -0
  41. package/migrations/20260709073531_easy_hardball/snapshot.json +3119 -0
  42. package/migrations/20260714081434_glossy_major_mapleleaf/migration.sql +1 -0
  43. package/migrations/20260714081434_glossy_major_mapleleaf/snapshot.json +3112 -0
  44. package/migrations/20260804105939_amazing_bushwacker/migration.sql +3 -0
  45. package/migrations/20260804105939_amazing_bushwacker/snapshot.json +3112 -0
  46. package/migrations/20260804110033_fat_piledriver/migration.sql +2 -0
  47. package/migrations/20260804110033_fat_piledriver/snapshot.json +3138 -0
  48. package/package.json +60 -46
  49. package/dist/dto-CRlgoCP5.d.ts +0 -645
  50. package/migrations/meta/0000_snapshot.json +0 -1632
  51. package/migrations/meta/_journal.json +0 -13
  52. /package/migrations/{0000_premium_famine.sql → 20251125021229_premium_famine/migration.sql} +0 -0
@@ -0,0 +1,2686 @@
1
+ {
2
+ "id": "eb2d27a0-ac55-4fdc-8aef-27b7f8c5f8ce",
3
+ "prevIds": [
4
+ "e07610ec-0586-45c5-8417-cba9ed323aa4"
5
+ ],
6
+ "version": "8",
7
+ "dialect": "postgres",
8
+ "ddl": [
9
+ {
10
+ "name": "spfn_auth",
11
+ "entityType": "schemas"
12
+ },
13
+ {
14
+ "isRlsEnabled": false,
15
+ "name": "users",
16
+ "schema": "spfn_auth",
17
+ "entityType": "tables"
18
+ },
19
+ {
20
+ "columns": [
21
+ "id"
22
+ ],
23
+ "nameExplicit": false,
24
+ "name": "users_pkey",
25
+ "schema": "spfn_auth",
26
+ "table": "users",
27
+ "entityType": "pks"
28
+ },
29
+ {
30
+ "type": "bigserial",
31
+ "typeSchema": null,
32
+ "notNull": true,
33
+ "dimensions": 0,
34
+ "default": null,
35
+ "generated": null,
36
+ "identity": null,
37
+ "name": "id",
38
+ "schema": "spfn_auth",
39
+ "table": "users",
40
+ "entityType": "columns"
41
+ },
42
+ {
43
+ "type": "text",
44
+ "typeSchema": null,
45
+ "notNull": false,
46
+ "dimensions": 0,
47
+ "default": null,
48
+ "generated": null,
49
+ "identity": null,
50
+ "name": "email",
51
+ "schema": "spfn_auth",
52
+ "table": "users",
53
+ "entityType": "columns"
54
+ },
55
+ {
56
+ "type": "text",
57
+ "typeSchema": null,
58
+ "notNull": false,
59
+ "dimensions": 0,
60
+ "default": null,
61
+ "generated": null,
62
+ "identity": null,
63
+ "name": "phone",
64
+ "schema": "spfn_auth",
65
+ "table": "users",
66
+ "entityType": "columns"
67
+ },
68
+ {
69
+ "type": "text",
70
+ "typeSchema": null,
71
+ "notNull": false,
72
+ "dimensions": 0,
73
+ "default": null,
74
+ "generated": null,
75
+ "identity": null,
76
+ "name": "username",
77
+ "schema": "spfn_auth",
78
+ "table": "users",
79
+ "entityType": "columns"
80
+ },
81
+ {
82
+ "type": "text",
83
+ "typeSchema": null,
84
+ "notNull": false,
85
+ "dimensions": 0,
86
+ "default": null,
87
+ "generated": null,
88
+ "identity": null,
89
+ "name": "password_hash",
90
+ "schema": "spfn_auth",
91
+ "table": "users",
92
+ "entityType": "columns"
93
+ },
94
+ {
95
+ "type": "boolean",
96
+ "typeSchema": null,
97
+ "notNull": true,
98
+ "dimensions": 0,
99
+ "default": "false",
100
+ "generated": null,
101
+ "identity": null,
102
+ "name": "password_change_required",
103
+ "schema": "spfn_auth",
104
+ "table": "users",
105
+ "entityType": "columns"
106
+ },
107
+ {
108
+ "type": "bigint",
109
+ "typeSchema": null,
110
+ "notNull": true,
111
+ "dimensions": 0,
112
+ "default": null,
113
+ "generated": null,
114
+ "identity": null,
115
+ "name": "role_id",
116
+ "schema": "spfn_auth",
117
+ "table": "users",
118
+ "entityType": "columns"
119
+ },
120
+ {
121
+ "type": "text",
122
+ "typeSchema": null,
123
+ "notNull": true,
124
+ "dimensions": 0,
125
+ "default": "'active'",
126
+ "generated": null,
127
+ "identity": null,
128
+ "name": "status",
129
+ "schema": "spfn_auth",
130
+ "table": "users",
131
+ "entityType": "columns"
132
+ },
133
+ {
134
+ "type": "timestamp with time zone",
135
+ "typeSchema": null,
136
+ "notNull": false,
137
+ "dimensions": 0,
138
+ "default": null,
139
+ "generated": null,
140
+ "identity": null,
141
+ "name": "email_verified_at",
142
+ "schema": "spfn_auth",
143
+ "table": "users",
144
+ "entityType": "columns"
145
+ },
146
+ {
147
+ "type": "timestamp with time zone",
148
+ "typeSchema": null,
149
+ "notNull": false,
150
+ "dimensions": 0,
151
+ "default": null,
152
+ "generated": null,
153
+ "identity": null,
154
+ "name": "phone_verified_at",
155
+ "schema": "spfn_auth",
156
+ "table": "users",
157
+ "entityType": "columns"
158
+ },
159
+ {
160
+ "type": "timestamp with time zone",
161
+ "typeSchema": null,
162
+ "notNull": false,
163
+ "dimensions": 0,
164
+ "default": null,
165
+ "generated": null,
166
+ "identity": null,
167
+ "name": "last_login_at",
168
+ "schema": "spfn_auth",
169
+ "table": "users",
170
+ "entityType": "columns"
171
+ },
172
+ {
173
+ "type": "timestamp with time zone",
174
+ "typeSchema": null,
175
+ "notNull": true,
176
+ "dimensions": 0,
177
+ "default": "now()",
178
+ "generated": null,
179
+ "identity": null,
180
+ "name": "created_at",
181
+ "schema": "spfn_auth",
182
+ "table": "users",
183
+ "entityType": "columns"
184
+ },
185
+ {
186
+ "type": "timestamp with time zone",
187
+ "typeSchema": null,
188
+ "notNull": true,
189
+ "dimensions": 0,
190
+ "default": "now()",
191
+ "generated": null,
192
+ "identity": null,
193
+ "name": "updated_at",
194
+ "schema": "spfn_auth",
195
+ "table": "users",
196
+ "entityType": "columns"
197
+ },
198
+ {
199
+ "nameExplicit": false,
200
+ "columns": [
201
+ "email"
202
+ ],
203
+ "nullsNotDistinct": false,
204
+ "name": "users_email_unique",
205
+ "schema": "spfn_auth",
206
+ "table": "users",
207
+ "entityType": "uniques"
208
+ },
209
+ {
210
+ "nameExplicit": false,
211
+ "columns": [
212
+ "phone"
213
+ ],
214
+ "nullsNotDistinct": false,
215
+ "name": "users_phone_unique",
216
+ "schema": "spfn_auth",
217
+ "table": "users",
218
+ "entityType": "uniques"
219
+ },
220
+ {
221
+ "nameExplicit": false,
222
+ "columns": [
223
+ "username"
224
+ ],
225
+ "nullsNotDistinct": false,
226
+ "name": "users_username_unique",
227
+ "schema": "spfn_auth",
228
+ "table": "users",
229
+ "entityType": "uniques"
230
+ },
231
+ {
232
+ "value": "\"spfn_auth\".\"users\".\"email\" IS NOT NULL OR \"spfn_auth\".\"users\".\"phone\" IS NOT NULL",
233
+ "name": "email_or_phone_check",
234
+ "schema": "spfn_auth",
235
+ "table": "users",
236
+ "entityType": "checks"
237
+ },
238
+ {
239
+ "nameExplicit": true,
240
+ "columns": [
241
+ {
242
+ "value": "email",
243
+ "isExpression": false,
244
+ "asc": true,
245
+ "nullsFirst": false,
246
+ "opclass": null
247
+ }
248
+ ],
249
+ "isUnique": false,
250
+ "where": null,
251
+ "with": "",
252
+ "method": "btree",
253
+ "concurrently": false,
254
+ "name": "users_email_idx",
255
+ "schema": "spfn_auth",
256
+ "table": "users",
257
+ "entityType": "indexes"
258
+ },
259
+ {
260
+ "nameExplicit": true,
261
+ "columns": [
262
+ {
263
+ "value": "phone",
264
+ "isExpression": false,
265
+ "asc": true,
266
+ "nullsFirst": false,
267
+ "opclass": null
268
+ }
269
+ ],
270
+ "isUnique": false,
271
+ "where": null,
272
+ "with": "",
273
+ "method": "btree",
274
+ "concurrently": false,
275
+ "name": "users_phone_idx",
276
+ "schema": "spfn_auth",
277
+ "table": "users",
278
+ "entityType": "indexes"
279
+ },
280
+ {
281
+ "nameExplicit": true,
282
+ "columns": [
283
+ {
284
+ "value": "username",
285
+ "isExpression": false,
286
+ "asc": true,
287
+ "nullsFirst": false,
288
+ "opclass": null
289
+ }
290
+ ],
291
+ "isUnique": false,
292
+ "where": null,
293
+ "with": "",
294
+ "method": "btree",
295
+ "concurrently": false,
296
+ "name": "users_username_idx",
297
+ "schema": "spfn_auth",
298
+ "table": "users",
299
+ "entityType": "indexes"
300
+ },
301
+ {
302
+ "nameExplicit": true,
303
+ "columns": [
304
+ {
305
+ "value": "status",
306
+ "isExpression": false,
307
+ "asc": true,
308
+ "nullsFirst": false,
309
+ "opclass": null
310
+ }
311
+ ],
312
+ "isUnique": false,
313
+ "where": null,
314
+ "with": "",
315
+ "method": "btree",
316
+ "concurrently": false,
317
+ "name": "users_status_idx",
318
+ "schema": "spfn_auth",
319
+ "table": "users",
320
+ "entityType": "indexes"
321
+ },
322
+ {
323
+ "nameExplicit": true,
324
+ "columns": [
325
+ {
326
+ "value": "role_id",
327
+ "isExpression": false,
328
+ "asc": true,
329
+ "nullsFirst": false,
330
+ "opclass": null
331
+ }
332
+ ],
333
+ "isUnique": false,
334
+ "where": null,
335
+ "with": "",
336
+ "method": "btree",
337
+ "concurrently": false,
338
+ "name": "users_role_id_idx",
339
+ "schema": "spfn_auth",
340
+ "table": "users",
341
+ "entityType": "indexes"
342
+ },
343
+ {
344
+ "nameExplicit": false,
345
+ "columns": [
346
+ "role_id"
347
+ ],
348
+ "schemaTo": "spfn_auth",
349
+ "tableTo": "roles",
350
+ "columnsTo": [
351
+ "id"
352
+ ],
353
+ "onUpdate": "NO ACTION",
354
+ "onDelete": "CASCADE",
355
+ "name": "users_role_id_roles_id_fk",
356
+ "schema": "spfn_auth",
357
+ "table": "users",
358
+ "entityType": "fks"
359
+ },
360
+ {
361
+ "isRlsEnabled": false,
362
+ "name": "user_profiles",
363
+ "schema": "spfn_auth",
364
+ "entityType": "tables"
365
+ },
366
+ {
367
+ "columns": [
368
+ "id"
369
+ ],
370
+ "nameExplicit": false,
371
+ "name": "user_profiles_pkey",
372
+ "schema": "spfn_auth",
373
+ "table": "user_profiles",
374
+ "entityType": "pks"
375
+ },
376
+ {
377
+ "type": "bigserial",
378
+ "typeSchema": null,
379
+ "notNull": true,
380
+ "dimensions": 0,
381
+ "default": null,
382
+ "generated": null,
383
+ "identity": null,
384
+ "name": "id",
385
+ "schema": "spfn_auth",
386
+ "table": "user_profiles",
387
+ "entityType": "columns"
388
+ },
389
+ {
390
+ "type": "bigint",
391
+ "typeSchema": null,
392
+ "notNull": true,
393
+ "dimensions": 0,
394
+ "default": null,
395
+ "generated": null,
396
+ "identity": null,
397
+ "name": "user_id",
398
+ "schema": "spfn_auth",
399
+ "table": "user_profiles",
400
+ "entityType": "columns"
401
+ },
402
+ {
403
+ "type": "text",
404
+ "typeSchema": null,
405
+ "notNull": false,
406
+ "dimensions": 0,
407
+ "default": null,
408
+ "generated": null,
409
+ "identity": null,
410
+ "name": "display_name",
411
+ "schema": "spfn_auth",
412
+ "table": "user_profiles",
413
+ "entityType": "columns"
414
+ },
415
+ {
416
+ "type": "text",
417
+ "typeSchema": null,
418
+ "notNull": false,
419
+ "dimensions": 0,
420
+ "default": null,
421
+ "generated": null,
422
+ "identity": null,
423
+ "name": "first_name",
424
+ "schema": "spfn_auth",
425
+ "table": "user_profiles",
426
+ "entityType": "columns"
427
+ },
428
+ {
429
+ "type": "text",
430
+ "typeSchema": null,
431
+ "notNull": false,
432
+ "dimensions": 0,
433
+ "default": null,
434
+ "generated": null,
435
+ "identity": null,
436
+ "name": "last_name",
437
+ "schema": "spfn_auth",
438
+ "table": "user_profiles",
439
+ "entityType": "columns"
440
+ },
441
+ {
442
+ "type": "text",
443
+ "typeSchema": null,
444
+ "notNull": false,
445
+ "dimensions": 0,
446
+ "default": null,
447
+ "generated": null,
448
+ "identity": null,
449
+ "name": "avatar_url",
450
+ "schema": "spfn_auth",
451
+ "table": "user_profiles",
452
+ "entityType": "columns"
453
+ },
454
+ {
455
+ "type": "text",
456
+ "typeSchema": null,
457
+ "notNull": false,
458
+ "dimensions": 0,
459
+ "default": null,
460
+ "generated": null,
461
+ "identity": null,
462
+ "name": "bio",
463
+ "schema": "spfn_auth",
464
+ "table": "user_profiles",
465
+ "entityType": "columns"
466
+ },
467
+ {
468
+ "type": "text",
469
+ "typeSchema": null,
470
+ "notNull": false,
471
+ "dimensions": 0,
472
+ "default": "'en'",
473
+ "generated": null,
474
+ "identity": null,
475
+ "name": "locale",
476
+ "schema": "spfn_auth",
477
+ "table": "user_profiles",
478
+ "entityType": "columns"
479
+ },
480
+ {
481
+ "type": "text",
482
+ "typeSchema": null,
483
+ "notNull": false,
484
+ "dimensions": 0,
485
+ "default": "'UTC'",
486
+ "generated": null,
487
+ "identity": null,
488
+ "name": "timezone",
489
+ "schema": "spfn_auth",
490
+ "table": "user_profiles",
491
+ "entityType": "columns"
492
+ },
493
+ {
494
+ "type": "text",
495
+ "typeSchema": null,
496
+ "notNull": false,
497
+ "dimensions": 0,
498
+ "default": null,
499
+ "generated": null,
500
+ "identity": null,
501
+ "name": "date_of_birth",
502
+ "schema": "spfn_auth",
503
+ "table": "user_profiles",
504
+ "entityType": "columns"
505
+ },
506
+ {
507
+ "type": "text",
508
+ "typeSchema": null,
509
+ "notNull": false,
510
+ "dimensions": 0,
511
+ "default": null,
512
+ "generated": null,
513
+ "identity": null,
514
+ "name": "gender",
515
+ "schema": "spfn_auth",
516
+ "table": "user_profiles",
517
+ "entityType": "columns"
518
+ },
519
+ {
520
+ "type": "text",
521
+ "typeSchema": null,
522
+ "notNull": false,
523
+ "dimensions": 0,
524
+ "default": null,
525
+ "generated": null,
526
+ "identity": null,
527
+ "name": "website",
528
+ "schema": "spfn_auth",
529
+ "table": "user_profiles",
530
+ "entityType": "columns"
531
+ },
532
+ {
533
+ "type": "text",
534
+ "typeSchema": null,
535
+ "notNull": false,
536
+ "dimensions": 0,
537
+ "default": null,
538
+ "generated": null,
539
+ "identity": null,
540
+ "name": "location",
541
+ "schema": "spfn_auth",
542
+ "table": "user_profiles",
543
+ "entityType": "columns"
544
+ },
545
+ {
546
+ "type": "text",
547
+ "typeSchema": null,
548
+ "notNull": false,
549
+ "dimensions": 0,
550
+ "default": null,
551
+ "generated": null,
552
+ "identity": null,
553
+ "name": "company",
554
+ "schema": "spfn_auth",
555
+ "table": "user_profiles",
556
+ "entityType": "columns"
557
+ },
558
+ {
559
+ "type": "text",
560
+ "typeSchema": null,
561
+ "notNull": false,
562
+ "dimensions": 0,
563
+ "default": null,
564
+ "generated": null,
565
+ "identity": null,
566
+ "name": "job_title",
567
+ "schema": "spfn_auth",
568
+ "table": "user_profiles",
569
+ "entityType": "columns"
570
+ },
571
+ {
572
+ "type": "jsonb",
573
+ "typeSchema": null,
574
+ "notNull": false,
575
+ "dimensions": 0,
576
+ "default": null,
577
+ "generated": null,
578
+ "identity": null,
579
+ "name": "metadata",
580
+ "schema": "spfn_auth",
581
+ "table": "user_profiles",
582
+ "entityType": "columns"
583
+ },
584
+ {
585
+ "type": "timestamp with time zone",
586
+ "typeSchema": null,
587
+ "notNull": true,
588
+ "dimensions": 0,
589
+ "default": "now()",
590
+ "generated": null,
591
+ "identity": null,
592
+ "name": "created_at",
593
+ "schema": "spfn_auth",
594
+ "table": "user_profiles",
595
+ "entityType": "columns"
596
+ },
597
+ {
598
+ "type": "timestamp with time zone",
599
+ "typeSchema": null,
600
+ "notNull": true,
601
+ "dimensions": 0,
602
+ "default": "now()",
603
+ "generated": null,
604
+ "identity": null,
605
+ "name": "updated_at",
606
+ "schema": "spfn_auth",
607
+ "table": "user_profiles",
608
+ "entityType": "columns"
609
+ },
610
+ {
611
+ "nameExplicit": false,
612
+ "columns": [
613
+ "user_id"
614
+ ],
615
+ "nullsNotDistinct": false,
616
+ "name": "user_profiles_user_id_unique",
617
+ "schema": "spfn_auth",
618
+ "table": "user_profiles",
619
+ "entityType": "uniques"
620
+ },
621
+ {
622
+ "nameExplicit": true,
623
+ "columns": [
624
+ {
625
+ "value": "user_id",
626
+ "isExpression": false,
627
+ "asc": true,
628
+ "nullsFirst": false,
629
+ "opclass": null
630
+ }
631
+ ],
632
+ "isUnique": false,
633
+ "where": null,
634
+ "with": "",
635
+ "method": "btree",
636
+ "concurrently": false,
637
+ "name": "user_profiles_user_id_idx",
638
+ "schema": "spfn_auth",
639
+ "table": "user_profiles",
640
+ "entityType": "indexes"
641
+ },
642
+ {
643
+ "nameExplicit": true,
644
+ "columns": [
645
+ {
646
+ "value": "display_name",
647
+ "isExpression": false,
648
+ "asc": true,
649
+ "nullsFirst": false,
650
+ "opclass": null
651
+ }
652
+ ],
653
+ "isUnique": false,
654
+ "where": null,
655
+ "with": "",
656
+ "method": "btree",
657
+ "concurrently": false,
658
+ "name": "user_profiles_display_name_idx",
659
+ "schema": "spfn_auth",
660
+ "table": "user_profiles",
661
+ "entityType": "indexes"
662
+ },
663
+ {
664
+ "nameExplicit": true,
665
+ "columns": [
666
+ {
667
+ "value": "locale",
668
+ "isExpression": false,
669
+ "asc": true,
670
+ "nullsFirst": false,
671
+ "opclass": null
672
+ }
673
+ ],
674
+ "isUnique": false,
675
+ "where": null,
676
+ "with": "",
677
+ "method": "btree",
678
+ "concurrently": false,
679
+ "name": "user_profiles_locale_idx",
680
+ "schema": "spfn_auth",
681
+ "table": "user_profiles",
682
+ "entityType": "indexes"
683
+ },
684
+ {
685
+ "nameExplicit": false,
686
+ "columns": [
687
+ "user_id"
688
+ ],
689
+ "schemaTo": "spfn_auth",
690
+ "tableTo": "users",
691
+ "columnsTo": [
692
+ "id"
693
+ ],
694
+ "onUpdate": "NO ACTION",
695
+ "onDelete": "CASCADE",
696
+ "name": "user_profiles_user_id_users_id_fk",
697
+ "schema": "spfn_auth",
698
+ "table": "user_profiles",
699
+ "entityType": "fks"
700
+ },
701
+ {
702
+ "isRlsEnabled": false,
703
+ "name": "user_public_keys",
704
+ "schema": "spfn_auth",
705
+ "entityType": "tables"
706
+ },
707
+ {
708
+ "columns": [
709
+ "id"
710
+ ],
711
+ "nameExplicit": false,
712
+ "name": "user_public_keys_pkey",
713
+ "schema": "spfn_auth",
714
+ "table": "user_public_keys",
715
+ "entityType": "pks"
716
+ },
717
+ {
718
+ "type": "bigserial",
719
+ "typeSchema": null,
720
+ "notNull": true,
721
+ "dimensions": 0,
722
+ "default": null,
723
+ "generated": null,
724
+ "identity": null,
725
+ "name": "id",
726
+ "schema": "spfn_auth",
727
+ "table": "user_public_keys",
728
+ "entityType": "columns"
729
+ },
730
+ {
731
+ "type": "bigint",
732
+ "typeSchema": null,
733
+ "notNull": true,
734
+ "dimensions": 0,
735
+ "default": null,
736
+ "generated": null,
737
+ "identity": null,
738
+ "name": "user_id",
739
+ "schema": "spfn_auth",
740
+ "table": "user_public_keys",
741
+ "entityType": "columns"
742
+ },
743
+ {
744
+ "type": "text",
745
+ "typeSchema": null,
746
+ "notNull": true,
747
+ "dimensions": 0,
748
+ "default": null,
749
+ "generated": null,
750
+ "identity": null,
751
+ "name": "key_id",
752
+ "schema": "spfn_auth",
753
+ "table": "user_public_keys",
754
+ "entityType": "columns"
755
+ },
756
+ {
757
+ "type": "text",
758
+ "typeSchema": null,
759
+ "notNull": true,
760
+ "dimensions": 0,
761
+ "default": null,
762
+ "generated": null,
763
+ "identity": null,
764
+ "name": "public_key",
765
+ "schema": "spfn_auth",
766
+ "table": "user_public_keys",
767
+ "entityType": "columns"
768
+ },
769
+ {
770
+ "type": "text",
771
+ "typeSchema": null,
772
+ "notNull": true,
773
+ "dimensions": 0,
774
+ "default": "'ES256'",
775
+ "generated": null,
776
+ "identity": null,
777
+ "name": "algorithm",
778
+ "schema": "spfn_auth",
779
+ "table": "user_public_keys",
780
+ "entityType": "columns"
781
+ },
782
+ {
783
+ "type": "text",
784
+ "typeSchema": null,
785
+ "notNull": true,
786
+ "dimensions": 0,
787
+ "default": null,
788
+ "generated": null,
789
+ "identity": null,
790
+ "name": "fingerprint",
791
+ "schema": "spfn_auth",
792
+ "table": "user_public_keys",
793
+ "entityType": "columns"
794
+ },
795
+ {
796
+ "type": "boolean",
797
+ "typeSchema": null,
798
+ "notNull": true,
799
+ "dimensions": 0,
800
+ "default": "true",
801
+ "generated": null,
802
+ "identity": null,
803
+ "name": "is_active",
804
+ "schema": "spfn_auth",
805
+ "table": "user_public_keys",
806
+ "entityType": "columns"
807
+ },
808
+ {
809
+ "type": "timestamp with time zone",
810
+ "typeSchema": null,
811
+ "notNull": true,
812
+ "dimensions": 0,
813
+ "default": "now()",
814
+ "generated": null,
815
+ "identity": null,
816
+ "name": "created_at",
817
+ "schema": "spfn_auth",
818
+ "table": "user_public_keys",
819
+ "entityType": "columns"
820
+ },
821
+ {
822
+ "type": "timestamp with time zone",
823
+ "typeSchema": null,
824
+ "notNull": false,
825
+ "dimensions": 0,
826
+ "default": null,
827
+ "generated": null,
828
+ "identity": null,
829
+ "name": "last_used_at",
830
+ "schema": "spfn_auth",
831
+ "table": "user_public_keys",
832
+ "entityType": "columns"
833
+ },
834
+ {
835
+ "type": "timestamp with time zone",
836
+ "typeSchema": null,
837
+ "notNull": false,
838
+ "dimensions": 0,
839
+ "default": null,
840
+ "generated": null,
841
+ "identity": null,
842
+ "name": "expires_at",
843
+ "schema": "spfn_auth",
844
+ "table": "user_public_keys",
845
+ "entityType": "columns"
846
+ },
847
+ {
848
+ "type": "timestamp with time zone",
849
+ "typeSchema": null,
850
+ "notNull": false,
851
+ "dimensions": 0,
852
+ "default": null,
853
+ "generated": null,
854
+ "identity": null,
855
+ "name": "revoked_at",
856
+ "schema": "spfn_auth",
857
+ "table": "user_public_keys",
858
+ "entityType": "columns"
859
+ },
860
+ {
861
+ "type": "text",
862
+ "typeSchema": null,
863
+ "notNull": false,
864
+ "dimensions": 0,
865
+ "default": null,
866
+ "generated": null,
867
+ "identity": null,
868
+ "name": "revoked_reason",
869
+ "schema": "spfn_auth",
870
+ "table": "user_public_keys",
871
+ "entityType": "columns"
872
+ },
873
+ {
874
+ "nameExplicit": false,
875
+ "columns": [
876
+ "key_id"
877
+ ],
878
+ "nullsNotDistinct": false,
879
+ "name": "user_public_keys_key_id_unique",
880
+ "schema": "spfn_auth",
881
+ "table": "user_public_keys",
882
+ "entityType": "uniques"
883
+ },
884
+ {
885
+ "nameExplicit": true,
886
+ "columns": [
887
+ {
888
+ "value": "user_id",
889
+ "isExpression": false,
890
+ "asc": true,
891
+ "nullsFirst": false,
892
+ "opclass": null
893
+ }
894
+ ],
895
+ "isUnique": false,
896
+ "where": null,
897
+ "with": "",
898
+ "method": "btree",
899
+ "concurrently": false,
900
+ "name": "user_public_keys_user_id_idx",
901
+ "schema": "spfn_auth",
902
+ "table": "user_public_keys",
903
+ "entityType": "indexes"
904
+ },
905
+ {
906
+ "nameExplicit": true,
907
+ "columns": [
908
+ {
909
+ "value": "key_id",
910
+ "isExpression": false,
911
+ "asc": true,
912
+ "nullsFirst": false,
913
+ "opclass": null
914
+ }
915
+ ],
916
+ "isUnique": false,
917
+ "where": null,
918
+ "with": "",
919
+ "method": "btree",
920
+ "concurrently": false,
921
+ "name": "user_public_keys_key_id_idx",
922
+ "schema": "spfn_auth",
923
+ "table": "user_public_keys",
924
+ "entityType": "indexes"
925
+ },
926
+ {
927
+ "nameExplicit": true,
928
+ "columns": [
929
+ {
930
+ "value": "is_active",
931
+ "isExpression": false,
932
+ "asc": true,
933
+ "nullsFirst": false,
934
+ "opclass": null
935
+ }
936
+ ],
937
+ "isUnique": false,
938
+ "where": null,
939
+ "with": "",
940
+ "method": "btree",
941
+ "concurrently": false,
942
+ "name": "user_public_keys_active_idx",
943
+ "schema": "spfn_auth",
944
+ "table": "user_public_keys",
945
+ "entityType": "indexes"
946
+ },
947
+ {
948
+ "nameExplicit": true,
949
+ "columns": [
950
+ {
951
+ "value": "fingerprint",
952
+ "isExpression": false,
953
+ "asc": true,
954
+ "nullsFirst": false,
955
+ "opclass": null
956
+ }
957
+ ],
958
+ "isUnique": false,
959
+ "where": null,
960
+ "with": "",
961
+ "method": "btree",
962
+ "concurrently": false,
963
+ "name": "user_public_keys_fingerprint_idx",
964
+ "schema": "spfn_auth",
965
+ "table": "user_public_keys",
966
+ "entityType": "indexes"
967
+ },
968
+ {
969
+ "nameExplicit": false,
970
+ "columns": [
971
+ "user_id"
972
+ ],
973
+ "schemaTo": "spfn_auth",
974
+ "tableTo": "users",
975
+ "columnsTo": [
976
+ "id"
977
+ ],
978
+ "onUpdate": "NO ACTION",
979
+ "onDelete": "CASCADE",
980
+ "name": "user_public_keys_user_id_users_id_fk",
981
+ "schema": "spfn_auth",
982
+ "table": "user_public_keys",
983
+ "entityType": "fks"
984
+ },
985
+ {
986
+ "isRlsEnabled": false,
987
+ "name": "user_social_accounts",
988
+ "schema": "spfn_auth",
989
+ "entityType": "tables"
990
+ },
991
+ {
992
+ "columns": [
993
+ "id"
994
+ ],
995
+ "nameExplicit": false,
996
+ "name": "user_social_accounts_pkey",
997
+ "schema": "spfn_auth",
998
+ "table": "user_social_accounts",
999
+ "entityType": "pks"
1000
+ },
1001
+ {
1002
+ "type": "bigserial",
1003
+ "typeSchema": null,
1004
+ "notNull": true,
1005
+ "dimensions": 0,
1006
+ "default": null,
1007
+ "generated": null,
1008
+ "identity": null,
1009
+ "name": "id",
1010
+ "schema": "spfn_auth",
1011
+ "table": "user_social_accounts",
1012
+ "entityType": "columns"
1013
+ },
1014
+ {
1015
+ "type": "bigint",
1016
+ "typeSchema": null,
1017
+ "notNull": true,
1018
+ "dimensions": 0,
1019
+ "default": null,
1020
+ "generated": null,
1021
+ "identity": null,
1022
+ "name": "user_id",
1023
+ "schema": "spfn_auth",
1024
+ "table": "user_social_accounts",
1025
+ "entityType": "columns"
1026
+ },
1027
+ {
1028
+ "type": "text",
1029
+ "typeSchema": null,
1030
+ "notNull": true,
1031
+ "dimensions": 0,
1032
+ "default": null,
1033
+ "generated": null,
1034
+ "identity": null,
1035
+ "name": "provider",
1036
+ "schema": "spfn_auth",
1037
+ "table": "user_social_accounts",
1038
+ "entityType": "columns"
1039
+ },
1040
+ {
1041
+ "type": "text",
1042
+ "typeSchema": null,
1043
+ "notNull": true,
1044
+ "dimensions": 0,
1045
+ "default": null,
1046
+ "generated": null,
1047
+ "identity": null,
1048
+ "name": "provider_user_id",
1049
+ "schema": "spfn_auth",
1050
+ "table": "user_social_accounts",
1051
+ "entityType": "columns"
1052
+ },
1053
+ {
1054
+ "type": "text",
1055
+ "typeSchema": null,
1056
+ "notNull": false,
1057
+ "dimensions": 0,
1058
+ "default": null,
1059
+ "generated": null,
1060
+ "identity": null,
1061
+ "name": "provider_email",
1062
+ "schema": "spfn_auth",
1063
+ "table": "user_social_accounts",
1064
+ "entityType": "columns"
1065
+ },
1066
+ {
1067
+ "type": "text",
1068
+ "typeSchema": null,
1069
+ "notNull": false,
1070
+ "dimensions": 0,
1071
+ "default": null,
1072
+ "generated": null,
1073
+ "identity": null,
1074
+ "name": "access_token",
1075
+ "schema": "spfn_auth",
1076
+ "table": "user_social_accounts",
1077
+ "entityType": "columns"
1078
+ },
1079
+ {
1080
+ "type": "text",
1081
+ "typeSchema": null,
1082
+ "notNull": false,
1083
+ "dimensions": 0,
1084
+ "default": null,
1085
+ "generated": null,
1086
+ "identity": null,
1087
+ "name": "refresh_token",
1088
+ "schema": "spfn_auth",
1089
+ "table": "user_social_accounts",
1090
+ "entityType": "columns"
1091
+ },
1092
+ {
1093
+ "type": "timestamp with time zone",
1094
+ "typeSchema": null,
1095
+ "notNull": false,
1096
+ "dimensions": 0,
1097
+ "default": null,
1098
+ "generated": null,
1099
+ "identity": null,
1100
+ "name": "token_expires_at",
1101
+ "schema": "spfn_auth",
1102
+ "table": "user_social_accounts",
1103
+ "entityType": "columns"
1104
+ },
1105
+ {
1106
+ "type": "timestamp with time zone",
1107
+ "typeSchema": null,
1108
+ "notNull": true,
1109
+ "dimensions": 0,
1110
+ "default": "now()",
1111
+ "generated": null,
1112
+ "identity": null,
1113
+ "name": "created_at",
1114
+ "schema": "spfn_auth",
1115
+ "table": "user_social_accounts",
1116
+ "entityType": "columns"
1117
+ },
1118
+ {
1119
+ "type": "timestamp with time zone",
1120
+ "typeSchema": null,
1121
+ "notNull": true,
1122
+ "dimensions": 0,
1123
+ "default": "now()",
1124
+ "generated": null,
1125
+ "identity": null,
1126
+ "name": "updated_at",
1127
+ "schema": "spfn_auth",
1128
+ "table": "user_social_accounts",
1129
+ "entityType": "columns"
1130
+ },
1131
+ {
1132
+ "nameExplicit": true,
1133
+ "columns": [
1134
+ {
1135
+ "value": "user_id",
1136
+ "isExpression": false,
1137
+ "asc": true,
1138
+ "nullsFirst": false,
1139
+ "opclass": null
1140
+ }
1141
+ ],
1142
+ "isUnique": false,
1143
+ "where": null,
1144
+ "with": "",
1145
+ "method": "btree",
1146
+ "concurrently": false,
1147
+ "name": "user_social_accounts_user_id_idx",
1148
+ "schema": "spfn_auth",
1149
+ "table": "user_social_accounts",
1150
+ "entityType": "indexes"
1151
+ },
1152
+ {
1153
+ "nameExplicit": true,
1154
+ "columns": [
1155
+ {
1156
+ "value": "provider",
1157
+ "isExpression": false,
1158
+ "asc": true,
1159
+ "nullsFirst": false,
1160
+ "opclass": null
1161
+ }
1162
+ ],
1163
+ "isUnique": false,
1164
+ "where": null,
1165
+ "with": "",
1166
+ "method": "btree",
1167
+ "concurrently": false,
1168
+ "name": "user_social_accounts_provider_idx",
1169
+ "schema": "spfn_auth",
1170
+ "table": "user_social_accounts",
1171
+ "entityType": "indexes"
1172
+ },
1173
+ {
1174
+ "nameExplicit": true,
1175
+ "columns": [
1176
+ {
1177
+ "value": "provider",
1178
+ "isExpression": false,
1179
+ "asc": true,
1180
+ "nullsFirst": false,
1181
+ "opclass": null
1182
+ },
1183
+ {
1184
+ "value": "provider_user_id",
1185
+ "isExpression": false,
1186
+ "asc": true,
1187
+ "nullsFirst": false,
1188
+ "opclass": null
1189
+ }
1190
+ ],
1191
+ "isUnique": true,
1192
+ "where": null,
1193
+ "with": "",
1194
+ "method": "btree",
1195
+ "concurrently": false,
1196
+ "name": "provider_user_unique_idx",
1197
+ "schema": "spfn_auth",
1198
+ "table": "user_social_accounts",
1199
+ "entityType": "indexes"
1200
+ },
1201
+ {
1202
+ "nameExplicit": false,
1203
+ "columns": [
1204
+ "user_id"
1205
+ ],
1206
+ "schemaTo": "spfn_auth",
1207
+ "tableTo": "users",
1208
+ "columnsTo": [
1209
+ "id"
1210
+ ],
1211
+ "onUpdate": "NO ACTION",
1212
+ "onDelete": "CASCADE",
1213
+ "name": "user_social_accounts_user_id_users_id_fk",
1214
+ "schema": "spfn_auth",
1215
+ "table": "user_social_accounts",
1216
+ "entityType": "fks"
1217
+ },
1218
+ {
1219
+ "isRlsEnabled": false,
1220
+ "name": "verification_codes",
1221
+ "schema": "spfn_auth",
1222
+ "entityType": "tables"
1223
+ },
1224
+ {
1225
+ "columns": [
1226
+ "id"
1227
+ ],
1228
+ "nameExplicit": false,
1229
+ "name": "verification_codes_pkey",
1230
+ "schema": "spfn_auth",
1231
+ "table": "verification_codes",
1232
+ "entityType": "pks"
1233
+ },
1234
+ {
1235
+ "type": "bigserial",
1236
+ "typeSchema": null,
1237
+ "notNull": true,
1238
+ "dimensions": 0,
1239
+ "default": null,
1240
+ "generated": null,
1241
+ "identity": null,
1242
+ "name": "id",
1243
+ "schema": "spfn_auth",
1244
+ "table": "verification_codes",
1245
+ "entityType": "columns"
1246
+ },
1247
+ {
1248
+ "type": "text",
1249
+ "typeSchema": null,
1250
+ "notNull": true,
1251
+ "dimensions": 0,
1252
+ "default": null,
1253
+ "generated": null,
1254
+ "identity": null,
1255
+ "name": "target",
1256
+ "schema": "spfn_auth",
1257
+ "table": "verification_codes",
1258
+ "entityType": "columns"
1259
+ },
1260
+ {
1261
+ "type": "text",
1262
+ "typeSchema": null,
1263
+ "notNull": true,
1264
+ "dimensions": 0,
1265
+ "default": null,
1266
+ "generated": null,
1267
+ "identity": null,
1268
+ "name": "target_type",
1269
+ "schema": "spfn_auth",
1270
+ "table": "verification_codes",
1271
+ "entityType": "columns"
1272
+ },
1273
+ {
1274
+ "type": "text",
1275
+ "typeSchema": null,
1276
+ "notNull": true,
1277
+ "dimensions": 0,
1278
+ "default": null,
1279
+ "generated": null,
1280
+ "identity": null,
1281
+ "name": "code",
1282
+ "schema": "spfn_auth",
1283
+ "table": "verification_codes",
1284
+ "entityType": "columns"
1285
+ },
1286
+ {
1287
+ "type": "text",
1288
+ "typeSchema": null,
1289
+ "notNull": true,
1290
+ "dimensions": 0,
1291
+ "default": null,
1292
+ "generated": null,
1293
+ "identity": null,
1294
+ "name": "purpose",
1295
+ "schema": "spfn_auth",
1296
+ "table": "verification_codes",
1297
+ "entityType": "columns"
1298
+ },
1299
+ {
1300
+ "type": "timestamp with time zone",
1301
+ "typeSchema": null,
1302
+ "notNull": true,
1303
+ "dimensions": 0,
1304
+ "default": null,
1305
+ "generated": null,
1306
+ "identity": null,
1307
+ "name": "expires_at",
1308
+ "schema": "spfn_auth",
1309
+ "table": "verification_codes",
1310
+ "entityType": "columns"
1311
+ },
1312
+ {
1313
+ "type": "timestamp with time zone",
1314
+ "typeSchema": null,
1315
+ "notNull": false,
1316
+ "dimensions": 0,
1317
+ "default": null,
1318
+ "generated": null,
1319
+ "identity": null,
1320
+ "name": "used_at",
1321
+ "schema": "spfn_auth",
1322
+ "table": "verification_codes",
1323
+ "entityType": "columns"
1324
+ },
1325
+ {
1326
+ "type": "integer",
1327
+ "typeSchema": null,
1328
+ "notNull": true,
1329
+ "dimensions": 0,
1330
+ "default": "0",
1331
+ "generated": null,
1332
+ "identity": null,
1333
+ "name": "attempts",
1334
+ "schema": "spfn_auth",
1335
+ "table": "verification_codes",
1336
+ "entityType": "columns"
1337
+ },
1338
+ {
1339
+ "type": "timestamp with time zone",
1340
+ "typeSchema": null,
1341
+ "notNull": true,
1342
+ "dimensions": 0,
1343
+ "default": "now()",
1344
+ "generated": null,
1345
+ "identity": null,
1346
+ "name": "created_at",
1347
+ "schema": "spfn_auth",
1348
+ "table": "verification_codes",
1349
+ "entityType": "columns"
1350
+ },
1351
+ {
1352
+ "type": "timestamp with time zone",
1353
+ "typeSchema": null,
1354
+ "notNull": true,
1355
+ "dimensions": 0,
1356
+ "default": "now()",
1357
+ "generated": null,
1358
+ "identity": null,
1359
+ "name": "updated_at",
1360
+ "schema": "spfn_auth",
1361
+ "table": "verification_codes",
1362
+ "entityType": "columns"
1363
+ },
1364
+ {
1365
+ "value": "\"spfn_auth\".\"verification_codes\".\"attempts\" >= 0 AND \"spfn_auth\".\"verification_codes\".\"attempts\" <= 10",
1366
+ "name": "attempts_limit_check",
1367
+ "schema": "spfn_auth",
1368
+ "table": "verification_codes",
1369
+ "entityType": "checks"
1370
+ },
1371
+ {
1372
+ "nameExplicit": true,
1373
+ "columns": [
1374
+ {
1375
+ "value": "target",
1376
+ "isExpression": false,
1377
+ "asc": true,
1378
+ "nullsFirst": false,
1379
+ "opclass": null
1380
+ },
1381
+ {
1382
+ "value": "purpose",
1383
+ "isExpression": false,
1384
+ "asc": true,
1385
+ "nullsFirst": false,
1386
+ "opclass": null
1387
+ },
1388
+ {
1389
+ "value": "expires_at",
1390
+ "isExpression": false,
1391
+ "asc": true,
1392
+ "nullsFirst": false,
1393
+ "opclass": null
1394
+ }
1395
+ ],
1396
+ "isUnique": false,
1397
+ "where": null,
1398
+ "with": "",
1399
+ "method": "btree",
1400
+ "concurrently": false,
1401
+ "name": "target_purpose_idx",
1402
+ "schema": "spfn_auth",
1403
+ "table": "verification_codes",
1404
+ "entityType": "indexes"
1405
+ },
1406
+ {
1407
+ "isRlsEnabled": false,
1408
+ "name": "user_invitations",
1409
+ "schema": "spfn_auth",
1410
+ "entityType": "tables"
1411
+ },
1412
+ {
1413
+ "columns": [
1414
+ "id"
1415
+ ],
1416
+ "nameExplicit": false,
1417
+ "name": "user_invitations_pkey",
1418
+ "schema": "spfn_auth",
1419
+ "table": "user_invitations",
1420
+ "entityType": "pks"
1421
+ },
1422
+ {
1423
+ "type": "bigserial",
1424
+ "typeSchema": null,
1425
+ "notNull": true,
1426
+ "dimensions": 0,
1427
+ "default": null,
1428
+ "generated": null,
1429
+ "identity": null,
1430
+ "name": "id",
1431
+ "schema": "spfn_auth",
1432
+ "table": "user_invitations",
1433
+ "entityType": "columns"
1434
+ },
1435
+ {
1436
+ "type": "text",
1437
+ "typeSchema": null,
1438
+ "notNull": true,
1439
+ "dimensions": 0,
1440
+ "default": null,
1441
+ "generated": null,
1442
+ "identity": null,
1443
+ "name": "email",
1444
+ "schema": "spfn_auth",
1445
+ "table": "user_invitations",
1446
+ "entityType": "columns"
1447
+ },
1448
+ {
1449
+ "type": "text",
1450
+ "typeSchema": null,
1451
+ "notNull": true,
1452
+ "dimensions": 0,
1453
+ "default": null,
1454
+ "generated": null,
1455
+ "identity": null,
1456
+ "name": "token",
1457
+ "schema": "spfn_auth",
1458
+ "table": "user_invitations",
1459
+ "entityType": "columns"
1460
+ },
1461
+ {
1462
+ "type": "bigint",
1463
+ "typeSchema": null,
1464
+ "notNull": true,
1465
+ "dimensions": 0,
1466
+ "default": null,
1467
+ "generated": null,
1468
+ "identity": null,
1469
+ "name": "role_id",
1470
+ "schema": "spfn_auth",
1471
+ "table": "user_invitations",
1472
+ "entityType": "columns"
1473
+ },
1474
+ {
1475
+ "type": "bigint",
1476
+ "typeSchema": null,
1477
+ "notNull": true,
1478
+ "dimensions": 0,
1479
+ "default": null,
1480
+ "generated": null,
1481
+ "identity": null,
1482
+ "name": "invited_by_id",
1483
+ "schema": "spfn_auth",
1484
+ "table": "user_invitations",
1485
+ "entityType": "columns"
1486
+ },
1487
+ {
1488
+ "type": "text",
1489
+ "typeSchema": null,
1490
+ "notNull": true,
1491
+ "dimensions": 0,
1492
+ "default": "'pending'",
1493
+ "generated": null,
1494
+ "identity": null,
1495
+ "name": "status",
1496
+ "schema": "spfn_auth",
1497
+ "table": "user_invitations",
1498
+ "entityType": "columns"
1499
+ },
1500
+ {
1501
+ "type": "timestamp with time zone",
1502
+ "typeSchema": null,
1503
+ "notNull": true,
1504
+ "dimensions": 0,
1505
+ "default": null,
1506
+ "generated": null,
1507
+ "identity": null,
1508
+ "name": "expires_at",
1509
+ "schema": "spfn_auth",
1510
+ "table": "user_invitations",
1511
+ "entityType": "columns"
1512
+ },
1513
+ {
1514
+ "type": "timestamp with time zone",
1515
+ "typeSchema": null,
1516
+ "notNull": false,
1517
+ "dimensions": 0,
1518
+ "default": null,
1519
+ "generated": null,
1520
+ "identity": null,
1521
+ "name": "accepted_at",
1522
+ "schema": "spfn_auth",
1523
+ "table": "user_invitations",
1524
+ "entityType": "columns"
1525
+ },
1526
+ {
1527
+ "type": "timestamp with time zone",
1528
+ "typeSchema": null,
1529
+ "notNull": false,
1530
+ "dimensions": 0,
1531
+ "default": null,
1532
+ "generated": null,
1533
+ "identity": null,
1534
+ "name": "cancelled_at",
1535
+ "schema": "spfn_auth",
1536
+ "table": "user_invitations",
1537
+ "entityType": "columns"
1538
+ },
1539
+ {
1540
+ "type": "jsonb",
1541
+ "typeSchema": null,
1542
+ "notNull": false,
1543
+ "dimensions": 0,
1544
+ "default": null,
1545
+ "generated": null,
1546
+ "identity": null,
1547
+ "name": "metadata",
1548
+ "schema": "spfn_auth",
1549
+ "table": "user_invitations",
1550
+ "entityType": "columns"
1551
+ },
1552
+ {
1553
+ "type": "timestamp with time zone",
1554
+ "typeSchema": null,
1555
+ "notNull": true,
1556
+ "dimensions": 0,
1557
+ "default": "now()",
1558
+ "generated": null,
1559
+ "identity": null,
1560
+ "name": "created_at",
1561
+ "schema": "spfn_auth",
1562
+ "table": "user_invitations",
1563
+ "entityType": "columns"
1564
+ },
1565
+ {
1566
+ "type": "timestamp with time zone",
1567
+ "typeSchema": null,
1568
+ "notNull": true,
1569
+ "dimensions": 0,
1570
+ "default": "now()",
1571
+ "generated": null,
1572
+ "identity": null,
1573
+ "name": "updated_at",
1574
+ "schema": "spfn_auth",
1575
+ "table": "user_invitations",
1576
+ "entityType": "columns"
1577
+ },
1578
+ {
1579
+ "nameExplicit": false,
1580
+ "columns": [
1581
+ "token"
1582
+ ],
1583
+ "nullsNotDistinct": false,
1584
+ "name": "user_invitations_token_unique",
1585
+ "schema": "spfn_auth",
1586
+ "table": "user_invitations",
1587
+ "entityType": "uniques"
1588
+ },
1589
+ {
1590
+ "nameExplicit": true,
1591
+ "columns": [
1592
+ {
1593
+ "value": "token",
1594
+ "isExpression": false,
1595
+ "asc": true,
1596
+ "nullsFirst": false,
1597
+ "opclass": null
1598
+ }
1599
+ ],
1600
+ "isUnique": false,
1601
+ "where": null,
1602
+ "with": "",
1603
+ "method": "btree",
1604
+ "concurrently": false,
1605
+ "name": "invitations_token_idx",
1606
+ "schema": "spfn_auth",
1607
+ "table": "user_invitations",
1608
+ "entityType": "indexes"
1609
+ },
1610
+ {
1611
+ "nameExplicit": true,
1612
+ "columns": [
1613
+ {
1614
+ "value": "email",
1615
+ "isExpression": false,
1616
+ "asc": true,
1617
+ "nullsFirst": false,
1618
+ "opclass": null
1619
+ }
1620
+ ],
1621
+ "isUnique": false,
1622
+ "where": null,
1623
+ "with": "",
1624
+ "method": "btree",
1625
+ "concurrently": false,
1626
+ "name": "invitations_email_idx",
1627
+ "schema": "spfn_auth",
1628
+ "table": "user_invitations",
1629
+ "entityType": "indexes"
1630
+ },
1631
+ {
1632
+ "nameExplicit": true,
1633
+ "columns": [
1634
+ {
1635
+ "value": "status",
1636
+ "isExpression": false,
1637
+ "asc": true,
1638
+ "nullsFirst": false,
1639
+ "opclass": null
1640
+ }
1641
+ ],
1642
+ "isUnique": false,
1643
+ "where": null,
1644
+ "with": "",
1645
+ "method": "btree",
1646
+ "concurrently": false,
1647
+ "name": "invitations_status_idx",
1648
+ "schema": "spfn_auth",
1649
+ "table": "user_invitations",
1650
+ "entityType": "indexes"
1651
+ },
1652
+ {
1653
+ "nameExplicit": true,
1654
+ "columns": [
1655
+ {
1656
+ "value": "invited_by_id",
1657
+ "isExpression": false,
1658
+ "asc": true,
1659
+ "nullsFirst": false,
1660
+ "opclass": null
1661
+ }
1662
+ ],
1663
+ "isUnique": false,
1664
+ "where": null,
1665
+ "with": "",
1666
+ "method": "btree",
1667
+ "concurrently": false,
1668
+ "name": "invitations_invited_by_idx",
1669
+ "schema": "spfn_auth",
1670
+ "table": "user_invitations",
1671
+ "entityType": "indexes"
1672
+ },
1673
+ {
1674
+ "nameExplicit": true,
1675
+ "columns": [
1676
+ {
1677
+ "value": "expires_at",
1678
+ "isExpression": false,
1679
+ "asc": true,
1680
+ "nullsFirst": false,
1681
+ "opclass": null
1682
+ }
1683
+ ],
1684
+ "isUnique": false,
1685
+ "where": null,
1686
+ "with": "",
1687
+ "method": "btree",
1688
+ "concurrently": false,
1689
+ "name": "invitations_expires_at_idx",
1690
+ "schema": "spfn_auth",
1691
+ "table": "user_invitations",
1692
+ "entityType": "indexes"
1693
+ },
1694
+ {
1695
+ "nameExplicit": true,
1696
+ "columns": [
1697
+ {
1698
+ "value": "role_id",
1699
+ "isExpression": false,
1700
+ "asc": true,
1701
+ "nullsFirst": false,
1702
+ "opclass": null
1703
+ }
1704
+ ],
1705
+ "isUnique": false,
1706
+ "where": null,
1707
+ "with": "",
1708
+ "method": "btree",
1709
+ "concurrently": false,
1710
+ "name": "invitations_role_id_idx",
1711
+ "schema": "spfn_auth",
1712
+ "table": "user_invitations",
1713
+ "entityType": "indexes"
1714
+ },
1715
+ {
1716
+ "nameExplicit": false,
1717
+ "columns": [
1718
+ "role_id"
1719
+ ],
1720
+ "schemaTo": "spfn_auth",
1721
+ "tableTo": "roles",
1722
+ "columnsTo": [
1723
+ "id"
1724
+ ],
1725
+ "onUpdate": "NO ACTION",
1726
+ "onDelete": "CASCADE",
1727
+ "name": "user_invitations_role_id_roles_id_fk",
1728
+ "schema": "spfn_auth",
1729
+ "table": "user_invitations",
1730
+ "entityType": "fks"
1731
+ },
1732
+ {
1733
+ "nameExplicit": false,
1734
+ "columns": [
1735
+ "invited_by_id"
1736
+ ],
1737
+ "schemaTo": "spfn_auth",
1738
+ "tableTo": "users",
1739
+ "columnsTo": [
1740
+ "id"
1741
+ ],
1742
+ "onUpdate": "NO ACTION",
1743
+ "onDelete": "CASCADE",
1744
+ "name": "user_invitations_invited_by_id_users_id_fk",
1745
+ "schema": "spfn_auth",
1746
+ "table": "user_invitations",
1747
+ "entityType": "fks"
1748
+ },
1749
+ {
1750
+ "isRlsEnabled": false,
1751
+ "name": "roles",
1752
+ "schema": "spfn_auth",
1753
+ "entityType": "tables"
1754
+ },
1755
+ {
1756
+ "columns": [
1757
+ "id"
1758
+ ],
1759
+ "nameExplicit": false,
1760
+ "name": "roles_pkey",
1761
+ "schema": "spfn_auth",
1762
+ "table": "roles",
1763
+ "entityType": "pks"
1764
+ },
1765
+ {
1766
+ "type": "bigserial",
1767
+ "typeSchema": null,
1768
+ "notNull": true,
1769
+ "dimensions": 0,
1770
+ "default": null,
1771
+ "generated": null,
1772
+ "identity": null,
1773
+ "name": "id",
1774
+ "schema": "spfn_auth",
1775
+ "table": "roles",
1776
+ "entityType": "columns"
1777
+ },
1778
+ {
1779
+ "type": "text",
1780
+ "typeSchema": null,
1781
+ "notNull": true,
1782
+ "dimensions": 0,
1783
+ "default": null,
1784
+ "generated": null,
1785
+ "identity": null,
1786
+ "name": "name",
1787
+ "schema": "spfn_auth",
1788
+ "table": "roles",
1789
+ "entityType": "columns"
1790
+ },
1791
+ {
1792
+ "type": "text",
1793
+ "typeSchema": null,
1794
+ "notNull": true,
1795
+ "dimensions": 0,
1796
+ "default": null,
1797
+ "generated": null,
1798
+ "identity": null,
1799
+ "name": "display_name",
1800
+ "schema": "spfn_auth",
1801
+ "table": "roles",
1802
+ "entityType": "columns"
1803
+ },
1804
+ {
1805
+ "type": "text",
1806
+ "typeSchema": null,
1807
+ "notNull": false,
1808
+ "dimensions": 0,
1809
+ "default": null,
1810
+ "generated": null,
1811
+ "identity": null,
1812
+ "name": "description",
1813
+ "schema": "spfn_auth",
1814
+ "table": "roles",
1815
+ "entityType": "columns"
1816
+ },
1817
+ {
1818
+ "type": "boolean",
1819
+ "typeSchema": null,
1820
+ "notNull": true,
1821
+ "dimensions": 0,
1822
+ "default": "false",
1823
+ "generated": null,
1824
+ "identity": null,
1825
+ "name": "is_builtin",
1826
+ "schema": "spfn_auth",
1827
+ "table": "roles",
1828
+ "entityType": "columns"
1829
+ },
1830
+ {
1831
+ "type": "boolean",
1832
+ "typeSchema": null,
1833
+ "notNull": true,
1834
+ "dimensions": 0,
1835
+ "default": "false",
1836
+ "generated": null,
1837
+ "identity": null,
1838
+ "name": "is_system",
1839
+ "schema": "spfn_auth",
1840
+ "table": "roles",
1841
+ "entityType": "columns"
1842
+ },
1843
+ {
1844
+ "type": "boolean",
1845
+ "typeSchema": null,
1846
+ "notNull": true,
1847
+ "dimensions": 0,
1848
+ "default": "true",
1849
+ "generated": null,
1850
+ "identity": null,
1851
+ "name": "is_active",
1852
+ "schema": "spfn_auth",
1853
+ "table": "roles",
1854
+ "entityType": "columns"
1855
+ },
1856
+ {
1857
+ "type": "integer",
1858
+ "typeSchema": null,
1859
+ "notNull": true,
1860
+ "dimensions": 0,
1861
+ "default": "10",
1862
+ "generated": null,
1863
+ "identity": null,
1864
+ "name": "priority",
1865
+ "schema": "spfn_auth",
1866
+ "table": "roles",
1867
+ "entityType": "columns"
1868
+ },
1869
+ {
1870
+ "type": "timestamp with time zone",
1871
+ "typeSchema": null,
1872
+ "notNull": true,
1873
+ "dimensions": 0,
1874
+ "default": "now()",
1875
+ "generated": null,
1876
+ "identity": null,
1877
+ "name": "created_at",
1878
+ "schema": "spfn_auth",
1879
+ "table": "roles",
1880
+ "entityType": "columns"
1881
+ },
1882
+ {
1883
+ "type": "timestamp with time zone",
1884
+ "typeSchema": null,
1885
+ "notNull": true,
1886
+ "dimensions": 0,
1887
+ "default": "now()",
1888
+ "generated": null,
1889
+ "identity": null,
1890
+ "name": "updated_at",
1891
+ "schema": "spfn_auth",
1892
+ "table": "roles",
1893
+ "entityType": "columns"
1894
+ },
1895
+ {
1896
+ "nameExplicit": false,
1897
+ "columns": [
1898
+ "name"
1899
+ ],
1900
+ "nullsNotDistinct": false,
1901
+ "name": "roles_name_unique",
1902
+ "schema": "spfn_auth",
1903
+ "table": "roles",
1904
+ "entityType": "uniques"
1905
+ },
1906
+ {
1907
+ "nameExplicit": true,
1908
+ "columns": [
1909
+ {
1910
+ "value": "name",
1911
+ "isExpression": false,
1912
+ "asc": true,
1913
+ "nullsFirst": false,
1914
+ "opclass": null
1915
+ }
1916
+ ],
1917
+ "isUnique": false,
1918
+ "where": null,
1919
+ "with": "",
1920
+ "method": "btree",
1921
+ "concurrently": false,
1922
+ "name": "roles_name_idx",
1923
+ "schema": "spfn_auth",
1924
+ "table": "roles",
1925
+ "entityType": "indexes"
1926
+ },
1927
+ {
1928
+ "nameExplicit": true,
1929
+ "columns": [
1930
+ {
1931
+ "value": "is_system",
1932
+ "isExpression": false,
1933
+ "asc": true,
1934
+ "nullsFirst": false,
1935
+ "opclass": null
1936
+ }
1937
+ ],
1938
+ "isUnique": false,
1939
+ "where": null,
1940
+ "with": "",
1941
+ "method": "btree",
1942
+ "concurrently": false,
1943
+ "name": "roles_is_system_idx",
1944
+ "schema": "spfn_auth",
1945
+ "table": "roles",
1946
+ "entityType": "indexes"
1947
+ },
1948
+ {
1949
+ "nameExplicit": true,
1950
+ "columns": [
1951
+ {
1952
+ "value": "is_active",
1953
+ "isExpression": false,
1954
+ "asc": true,
1955
+ "nullsFirst": false,
1956
+ "opclass": null
1957
+ }
1958
+ ],
1959
+ "isUnique": false,
1960
+ "where": null,
1961
+ "with": "",
1962
+ "method": "btree",
1963
+ "concurrently": false,
1964
+ "name": "roles_is_active_idx",
1965
+ "schema": "spfn_auth",
1966
+ "table": "roles",
1967
+ "entityType": "indexes"
1968
+ },
1969
+ {
1970
+ "nameExplicit": true,
1971
+ "columns": [
1972
+ {
1973
+ "value": "is_builtin",
1974
+ "isExpression": false,
1975
+ "asc": true,
1976
+ "nullsFirst": false,
1977
+ "opclass": null
1978
+ }
1979
+ ],
1980
+ "isUnique": false,
1981
+ "where": null,
1982
+ "with": "",
1983
+ "method": "btree",
1984
+ "concurrently": false,
1985
+ "name": "roles_is_builtin_idx",
1986
+ "schema": "spfn_auth",
1987
+ "table": "roles",
1988
+ "entityType": "indexes"
1989
+ },
1990
+ {
1991
+ "nameExplicit": true,
1992
+ "columns": [
1993
+ {
1994
+ "value": "priority",
1995
+ "isExpression": false,
1996
+ "asc": true,
1997
+ "nullsFirst": false,
1998
+ "opclass": null
1999
+ }
2000
+ ],
2001
+ "isUnique": false,
2002
+ "where": null,
2003
+ "with": "",
2004
+ "method": "btree",
2005
+ "concurrently": false,
2006
+ "name": "roles_priority_idx",
2007
+ "schema": "spfn_auth",
2008
+ "table": "roles",
2009
+ "entityType": "indexes"
2010
+ },
2011
+ {
2012
+ "isRlsEnabled": false,
2013
+ "name": "permissions",
2014
+ "schema": "spfn_auth",
2015
+ "entityType": "tables"
2016
+ },
2017
+ {
2018
+ "columns": [
2019
+ "id"
2020
+ ],
2021
+ "nameExplicit": false,
2022
+ "name": "permissions_pkey",
2023
+ "schema": "spfn_auth",
2024
+ "table": "permissions",
2025
+ "entityType": "pks"
2026
+ },
2027
+ {
2028
+ "type": "bigserial",
2029
+ "typeSchema": null,
2030
+ "notNull": true,
2031
+ "dimensions": 0,
2032
+ "default": null,
2033
+ "generated": null,
2034
+ "identity": null,
2035
+ "name": "id",
2036
+ "schema": "spfn_auth",
2037
+ "table": "permissions",
2038
+ "entityType": "columns"
2039
+ },
2040
+ {
2041
+ "type": "text",
2042
+ "typeSchema": null,
2043
+ "notNull": true,
2044
+ "dimensions": 0,
2045
+ "default": null,
2046
+ "generated": null,
2047
+ "identity": null,
2048
+ "name": "name",
2049
+ "schema": "spfn_auth",
2050
+ "table": "permissions",
2051
+ "entityType": "columns"
2052
+ },
2053
+ {
2054
+ "type": "text",
2055
+ "typeSchema": null,
2056
+ "notNull": true,
2057
+ "dimensions": 0,
2058
+ "default": null,
2059
+ "generated": null,
2060
+ "identity": null,
2061
+ "name": "display_name",
2062
+ "schema": "spfn_auth",
2063
+ "table": "permissions",
2064
+ "entityType": "columns"
2065
+ },
2066
+ {
2067
+ "type": "text",
2068
+ "typeSchema": null,
2069
+ "notNull": false,
2070
+ "dimensions": 0,
2071
+ "default": null,
2072
+ "generated": null,
2073
+ "identity": null,
2074
+ "name": "description",
2075
+ "schema": "spfn_auth",
2076
+ "table": "permissions",
2077
+ "entityType": "columns"
2078
+ },
2079
+ {
2080
+ "type": "text",
2081
+ "typeSchema": null,
2082
+ "notNull": false,
2083
+ "dimensions": 0,
2084
+ "default": null,
2085
+ "generated": null,
2086
+ "identity": null,
2087
+ "name": "category",
2088
+ "schema": "spfn_auth",
2089
+ "table": "permissions",
2090
+ "entityType": "columns"
2091
+ },
2092
+ {
2093
+ "type": "boolean",
2094
+ "typeSchema": null,
2095
+ "notNull": true,
2096
+ "dimensions": 0,
2097
+ "default": "false",
2098
+ "generated": null,
2099
+ "identity": null,
2100
+ "name": "is_builtin",
2101
+ "schema": "spfn_auth",
2102
+ "table": "permissions",
2103
+ "entityType": "columns"
2104
+ },
2105
+ {
2106
+ "type": "boolean",
2107
+ "typeSchema": null,
2108
+ "notNull": true,
2109
+ "dimensions": 0,
2110
+ "default": "false",
2111
+ "generated": null,
2112
+ "identity": null,
2113
+ "name": "is_system",
2114
+ "schema": "spfn_auth",
2115
+ "table": "permissions",
2116
+ "entityType": "columns"
2117
+ },
2118
+ {
2119
+ "type": "boolean",
2120
+ "typeSchema": null,
2121
+ "notNull": true,
2122
+ "dimensions": 0,
2123
+ "default": "true",
2124
+ "generated": null,
2125
+ "identity": null,
2126
+ "name": "is_active",
2127
+ "schema": "spfn_auth",
2128
+ "table": "permissions",
2129
+ "entityType": "columns"
2130
+ },
2131
+ {
2132
+ "type": "jsonb",
2133
+ "typeSchema": null,
2134
+ "notNull": false,
2135
+ "dimensions": 0,
2136
+ "default": null,
2137
+ "generated": null,
2138
+ "identity": null,
2139
+ "name": "metadata",
2140
+ "schema": "spfn_auth",
2141
+ "table": "permissions",
2142
+ "entityType": "columns"
2143
+ },
2144
+ {
2145
+ "type": "timestamp with time zone",
2146
+ "typeSchema": null,
2147
+ "notNull": true,
2148
+ "dimensions": 0,
2149
+ "default": "now()",
2150
+ "generated": null,
2151
+ "identity": null,
2152
+ "name": "created_at",
2153
+ "schema": "spfn_auth",
2154
+ "table": "permissions",
2155
+ "entityType": "columns"
2156
+ },
2157
+ {
2158
+ "type": "timestamp with time zone",
2159
+ "typeSchema": null,
2160
+ "notNull": true,
2161
+ "dimensions": 0,
2162
+ "default": "now()",
2163
+ "generated": null,
2164
+ "identity": null,
2165
+ "name": "updated_at",
2166
+ "schema": "spfn_auth",
2167
+ "table": "permissions",
2168
+ "entityType": "columns"
2169
+ },
2170
+ {
2171
+ "nameExplicit": false,
2172
+ "columns": [
2173
+ "name"
2174
+ ],
2175
+ "nullsNotDistinct": false,
2176
+ "name": "permissions_name_unique",
2177
+ "schema": "spfn_auth",
2178
+ "table": "permissions",
2179
+ "entityType": "uniques"
2180
+ },
2181
+ {
2182
+ "nameExplicit": true,
2183
+ "columns": [
2184
+ {
2185
+ "value": "name",
2186
+ "isExpression": false,
2187
+ "asc": true,
2188
+ "nullsFirst": false,
2189
+ "opclass": null
2190
+ }
2191
+ ],
2192
+ "isUnique": false,
2193
+ "where": null,
2194
+ "with": "",
2195
+ "method": "btree",
2196
+ "concurrently": false,
2197
+ "name": "permissions_name_idx",
2198
+ "schema": "spfn_auth",
2199
+ "table": "permissions",
2200
+ "entityType": "indexes"
2201
+ },
2202
+ {
2203
+ "nameExplicit": true,
2204
+ "columns": [
2205
+ {
2206
+ "value": "category",
2207
+ "isExpression": false,
2208
+ "asc": true,
2209
+ "nullsFirst": false,
2210
+ "opclass": null
2211
+ }
2212
+ ],
2213
+ "isUnique": false,
2214
+ "where": null,
2215
+ "with": "",
2216
+ "method": "btree",
2217
+ "concurrently": false,
2218
+ "name": "permissions_category_idx",
2219
+ "schema": "spfn_auth",
2220
+ "table": "permissions",
2221
+ "entityType": "indexes"
2222
+ },
2223
+ {
2224
+ "nameExplicit": true,
2225
+ "columns": [
2226
+ {
2227
+ "value": "is_system",
2228
+ "isExpression": false,
2229
+ "asc": true,
2230
+ "nullsFirst": false,
2231
+ "opclass": null
2232
+ }
2233
+ ],
2234
+ "isUnique": false,
2235
+ "where": null,
2236
+ "with": "",
2237
+ "method": "btree",
2238
+ "concurrently": false,
2239
+ "name": "permissions_is_system_idx",
2240
+ "schema": "spfn_auth",
2241
+ "table": "permissions",
2242
+ "entityType": "indexes"
2243
+ },
2244
+ {
2245
+ "nameExplicit": true,
2246
+ "columns": [
2247
+ {
2248
+ "value": "is_active",
2249
+ "isExpression": false,
2250
+ "asc": true,
2251
+ "nullsFirst": false,
2252
+ "opclass": null
2253
+ }
2254
+ ],
2255
+ "isUnique": false,
2256
+ "where": null,
2257
+ "with": "",
2258
+ "method": "btree",
2259
+ "concurrently": false,
2260
+ "name": "permissions_is_active_idx",
2261
+ "schema": "spfn_auth",
2262
+ "table": "permissions",
2263
+ "entityType": "indexes"
2264
+ },
2265
+ {
2266
+ "nameExplicit": true,
2267
+ "columns": [
2268
+ {
2269
+ "value": "is_builtin",
2270
+ "isExpression": false,
2271
+ "asc": true,
2272
+ "nullsFirst": false,
2273
+ "opclass": null
2274
+ }
2275
+ ],
2276
+ "isUnique": false,
2277
+ "where": null,
2278
+ "with": "",
2279
+ "method": "btree",
2280
+ "concurrently": false,
2281
+ "name": "permissions_is_builtin_idx",
2282
+ "schema": "spfn_auth",
2283
+ "table": "permissions",
2284
+ "entityType": "indexes"
2285
+ },
2286
+ {
2287
+ "isRlsEnabled": false,
2288
+ "name": "role_permissions",
2289
+ "schema": "spfn_auth",
2290
+ "entityType": "tables"
2291
+ },
2292
+ {
2293
+ "columns": [
2294
+ "id"
2295
+ ],
2296
+ "nameExplicit": false,
2297
+ "name": "role_permissions_pkey",
2298
+ "schema": "spfn_auth",
2299
+ "table": "role_permissions",
2300
+ "entityType": "pks"
2301
+ },
2302
+ {
2303
+ "type": "bigserial",
2304
+ "typeSchema": null,
2305
+ "notNull": true,
2306
+ "dimensions": 0,
2307
+ "default": null,
2308
+ "generated": null,
2309
+ "identity": null,
2310
+ "name": "id",
2311
+ "schema": "spfn_auth",
2312
+ "table": "role_permissions",
2313
+ "entityType": "columns"
2314
+ },
2315
+ {
2316
+ "type": "bigint",
2317
+ "typeSchema": null,
2318
+ "notNull": true,
2319
+ "dimensions": 0,
2320
+ "default": null,
2321
+ "generated": null,
2322
+ "identity": null,
2323
+ "name": "role_id",
2324
+ "schema": "spfn_auth",
2325
+ "table": "role_permissions",
2326
+ "entityType": "columns"
2327
+ },
2328
+ {
2329
+ "type": "bigint",
2330
+ "typeSchema": null,
2331
+ "notNull": true,
2332
+ "dimensions": 0,
2333
+ "default": null,
2334
+ "generated": null,
2335
+ "identity": null,
2336
+ "name": "permission_id",
2337
+ "schema": "spfn_auth",
2338
+ "table": "role_permissions",
2339
+ "entityType": "columns"
2340
+ },
2341
+ {
2342
+ "type": "timestamp with time zone",
2343
+ "typeSchema": null,
2344
+ "notNull": true,
2345
+ "dimensions": 0,
2346
+ "default": "now()",
2347
+ "generated": null,
2348
+ "identity": null,
2349
+ "name": "created_at",
2350
+ "schema": "spfn_auth",
2351
+ "table": "role_permissions",
2352
+ "entityType": "columns"
2353
+ },
2354
+ {
2355
+ "type": "timestamp with time zone",
2356
+ "typeSchema": null,
2357
+ "notNull": true,
2358
+ "dimensions": 0,
2359
+ "default": "now()",
2360
+ "generated": null,
2361
+ "identity": null,
2362
+ "name": "updated_at",
2363
+ "schema": "spfn_auth",
2364
+ "table": "role_permissions",
2365
+ "entityType": "columns"
2366
+ },
2367
+ {
2368
+ "nameExplicit": true,
2369
+ "columns": [
2370
+ "role_id",
2371
+ "permission_id"
2372
+ ],
2373
+ "nullsNotDistinct": false,
2374
+ "name": "role_permissions_unique",
2375
+ "schema": "spfn_auth",
2376
+ "table": "role_permissions",
2377
+ "entityType": "uniques"
2378
+ },
2379
+ {
2380
+ "nameExplicit": true,
2381
+ "columns": [
2382
+ {
2383
+ "value": "role_id",
2384
+ "isExpression": false,
2385
+ "asc": true,
2386
+ "nullsFirst": false,
2387
+ "opclass": null
2388
+ }
2389
+ ],
2390
+ "isUnique": false,
2391
+ "where": null,
2392
+ "with": "",
2393
+ "method": "btree",
2394
+ "concurrently": false,
2395
+ "name": "role_permissions_role_id_idx",
2396
+ "schema": "spfn_auth",
2397
+ "table": "role_permissions",
2398
+ "entityType": "indexes"
2399
+ },
2400
+ {
2401
+ "nameExplicit": true,
2402
+ "columns": [
2403
+ {
2404
+ "value": "permission_id",
2405
+ "isExpression": false,
2406
+ "asc": true,
2407
+ "nullsFirst": false,
2408
+ "opclass": null
2409
+ }
2410
+ ],
2411
+ "isUnique": false,
2412
+ "where": null,
2413
+ "with": "",
2414
+ "method": "btree",
2415
+ "concurrently": false,
2416
+ "name": "role_permissions_permission_id_idx",
2417
+ "schema": "spfn_auth",
2418
+ "table": "role_permissions",
2419
+ "entityType": "indexes"
2420
+ },
2421
+ {
2422
+ "nameExplicit": false,
2423
+ "columns": [
2424
+ "role_id"
2425
+ ],
2426
+ "schemaTo": "spfn_auth",
2427
+ "tableTo": "roles",
2428
+ "columnsTo": [
2429
+ "id"
2430
+ ],
2431
+ "onUpdate": "NO ACTION",
2432
+ "onDelete": "CASCADE",
2433
+ "name": "role_permissions_role_id_roles_id_fk",
2434
+ "schema": "spfn_auth",
2435
+ "table": "role_permissions",
2436
+ "entityType": "fks"
2437
+ },
2438
+ {
2439
+ "nameExplicit": false,
2440
+ "columns": [
2441
+ "permission_id"
2442
+ ],
2443
+ "schemaTo": "spfn_auth",
2444
+ "tableTo": "permissions",
2445
+ "columnsTo": [
2446
+ "id"
2447
+ ],
2448
+ "onUpdate": "NO ACTION",
2449
+ "onDelete": "CASCADE",
2450
+ "name": "role_permissions_permission_id_permissions_id_fk",
2451
+ "schema": "spfn_auth",
2452
+ "table": "role_permissions",
2453
+ "entityType": "fks"
2454
+ },
2455
+ {
2456
+ "isRlsEnabled": false,
2457
+ "name": "user_permissions",
2458
+ "schema": "spfn_auth",
2459
+ "entityType": "tables"
2460
+ },
2461
+ {
2462
+ "columns": [
2463
+ "id"
2464
+ ],
2465
+ "nameExplicit": false,
2466
+ "name": "user_permissions_pkey",
2467
+ "schema": "spfn_auth",
2468
+ "table": "user_permissions",
2469
+ "entityType": "pks"
2470
+ },
2471
+ {
2472
+ "type": "bigserial",
2473
+ "typeSchema": null,
2474
+ "notNull": true,
2475
+ "dimensions": 0,
2476
+ "default": null,
2477
+ "generated": null,
2478
+ "identity": null,
2479
+ "name": "id",
2480
+ "schema": "spfn_auth",
2481
+ "table": "user_permissions",
2482
+ "entityType": "columns"
2483
+ },
2484
+ {
2485
+ "type": "bigint",
2486
+ "typeSchema": null,
2487
+ "notNull": true,
2488
+ "dimensions": 0,
2489
+ "default": null,
2490
+ "generated": null,
2491
+ "identity": null,
2492
+ "name": "user_id",
2493
+ "schema": "spfn_auth",
2494
+ "table": "user_permissions",
2495
+ "entityType": "columns"
2496
+ },
2497
+ {
2498
+ "type": "bigint",
2499
+ "typeSchema": null,
2500
+ "notNull": true,
2501
+ "dimensions": 0,
2502
+ "default": null,
2503
+ "generated": null,
2504
+ "identity": null,
2505
+ "name": "permission_id",
2506
+ "schema": "spfn_auth",
2507
+ "table": "user_permissions",
2508
+ "entityType": "columns"
2509
+ },
2510
+ {
2511
+ "type": "boolean",
2512
+ "typeSchema": null,
2513
+ "notNull": true,
2514
+ "dimensions": 0,
2515
+ "default": "true",
2516
+ "generated": null,
2517
+ "identity": null,
2518
+ "name": "granted",
2519
+ "schema": "spfn_auth",
2520
+ "table": "user_permissions",
2521
+ "entityType": "columns"
2522
+ },
2523
+ {
2524
+ "type": "text",
2525
+ "typeSchema": null,
2526
+ "notNull": false,
2527
+ "dimensions": 0,
2528
+ "default": null,
2529
+ "generated": null,
2530
+ "identity": null,
2531
+ "name": "reason",
2532
+ "schema": "spfn_auth",
2533
+ "table": "user_permissions",
2534
+ "entityType": "columns"
2535
+ },
2536
+ {
2537
+ "type": "timestamp with time zone",
2538
+ "typeSchema": null,
2539
+ "notNull": false,
2540
+ "dimensions": 0,
2541
+ "default": null,
2542
+ "generated": null,
2543
+ "identity": null,
2544
+ "name": "expires_at",
2545
+ "schema": "spfn_auth",
2546
+ "table": "user_permissions",
2547
+ "entityType": "columns"
2548
+ },
2549
+ {
2550
+ "type": "timestamp with time zone",
2551
+ "typeSchema": null,
2552
+ "notNull": true,
2553
+ "dimensions": 0,
2554
+ "default": "now()",
2555
+ "generated": null,
2556
+ "identity": null,
2557
+ "name": "created_at",
2558
+ "schema": "spfn_auth",
2559
+ "table": "user_permissions",
2560
+ "entityType": "columns"
2561
+ },
2562
+ {
2563
+ "type": "timestamp with time zone",
2564
+ "typeSchema": null,
2565
+ "notNull": true,
2566
+ "dimensions": 0,
2567
+ "default": "now()",
2568
+ "generated": null,
2569
+ "identity": null,
2570
+ "name": "updated_at",
2571
+ "schema": "spfn_auth",
2572
+ "table": "user_permissions",
2573
+ "entityType": "columns"
2574
+ },
2575
+ {
2576
+ "nameExplicit": true,
2577
+ "columns": [
2578
+ "user_id",
2579
+ "permission_id"
2580
+ ],
2581
+ "nullsNotDistinct": false,
2582
+ "name": "user_permissions_unique",
2583
+ "schema": "spfn_auth",
2584
+ "table": "user_permissions",
2585
+ "entityType": "uniques"
2586
+ },
2587
+ {
2588
+ "nameExplicit": true,
2589
+ "columns": [
2590
+ {
2591
+ "value": "user_id",
2592
+ "isExpression": false,
2593
+ "asc": true,
2594
+ "nullsFirst": false,
2595
+ "opclass": null
2596
+ }
2597
+ ],
2598
+ "isUnique": false,
2599
+ "where": null,
2600
+ "with": "",
2601
+ "method": "btree",
2602
+ "concurrently": false,
2603
+ "name": "user_permissions_user_id_idx",
2604
+ "schema": "spfn_auth",
2605
+ "table": "user_permissions",
2606
+ "entityType": "indexes"
2607
+ },
2608
+ {
2609
+ "nameExplicit": true,
2610
+ "columns": [
2611
+ {
2612
+ "value": "permission_id",
2613
+ "isExpression": false,
2614
+ "asc": true,
2615
+ "nullsFirst": false,
2616
+ "opclass": null
2617
+ }
2618
+ ],
2619
+ "isUnique": false,
2620
+ "where": null,
2621
+ "with": "",
2622
+ "method": "btree",
2623
+ "concurrently": false,
2624
+ "name": "user_permissions_permission_id_idx",
2625
+ "schema": "spfn_auth",
2626
+ "table": "user_permissions",
2627
+ "entityType": "indexes"
2628
+ },
2629
+ {
2630
+ "nameExplicit": true,
2631
+ "columns": [
2632
+ {
2633
+ "value": "expires_at",
2634
+ "isExpression": false,
2635
+ "asc": true,
2636
+ "nullsFirst": false,
2637
+ "opclass": null
2638
+ }
2639
+ ],
2640
+ "isUnique": false,
2641
+ "where": null,
2642
+ "with": "",
2643
+ "method": "btree",
2644
+ "concurrently": false,
2645
+ "name": "user_permissions_expires_at_idx",
2646
+ "schema": "spfn_auth",
2647
+ "table": "user_permissions",
2648
+ "entityType": "indexes"
2649
+ },
2650
+ {
2651
+ "nameExplicit": false,
2652
+ "columns": [
2653
+ "user_id"
2654
+ ],
2655
+ "schemaTo": "spfn_auth",
2656
+ "tableTo": "users",
2657
+ "columnsTo": [
2658
+ "id"
2659
+ ],
2660
+ "onUpdate": "NO ACTION",
2661
+ "onDelete": "CASCADE",
2662
+ "name": "user_permissions_user_id_users_id_fk",
2663
+ "schema": "spfn_auth",
2664
+ "table": "user_permissions",
2665
+ "entityType": "fks"
2666
+ },
2667
+ {
2668
+ "nameExplicit": false,
2669
+ "columns": [
2670
+ "permission_id"
2671
+ ],
2672
+ "schemaTo": "spfn_auth",
2673
+ "tableTo": "permissions",
2674
+ "columnsTo": [
2675
+ "id"
2676
+ ],
2677
+ "onUpdate": "NO ACTION",
2678
+ "onDelete": "CASCADE",
2679
+ "name": "user_permissions_permission_id_permissions_id_fk",
2680
+ "schema": "spfn_auth",
2681
+ "table": "user_permissions",
2682
+ "entityType": "fks"
2683
+ }
2684
+ ],
2685
+ "renames": []
2686
+ }