@spfn/auth 0.2.1 → 0.3.0-beta.2

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 (61) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +1091 -2385
  3. package/dist/authenticate-55LeXHqZ.d.ts +1447 -0
  4. package/dist/client-proof.d.ts +606 -0
  5. package/dist/client-proof.js +1842 -0
  6. package/dist/client-proof.js.map +1 -0
  7. package/dist/config.d.ts +319 -3
  8. package/dist/config.js +155 -5
  9. package/dist/config.js.map +1 -1
  10. package/dist/crypto.d.ts +61 -0
  11. package/dist/crypto.js +108 -0
  12. package/dist/crypto.js.map +1 -0
  13. package/dist/errors.d.ts +180 -3
  14. package/dist/errors.js +116 -1
  15. package/dist/errors.js.map +1 -1
  16. package/dist/index.d.ts +166 -18
  17. package/dist/index.js +132 -8
  18. package/dist/index.js.map +1 -1
  19. package/dist/nextjs/api.js +404 -96
  20. package/dist/nextjs/api.js.map +1 -1
  21. package/dist/nextjs/server.d.ts +5 -4
  22. package/dist/nextjs/server.js +165 -26
  23. package/dist/nextjs/server.js.map +1 -1
  24. package/dist/server.d.ts +2356 -1053
  25. package/dist/server.js +5153 -736
  26. package/dist/server.js.map +1 -1
  27. package/dist/session-DTHahDQ9.d.ts +53 -0
  28. package/dist/types-DYyhze28.d.ts +98 -0
  29. package/dist/wire-version-CtzMKvBB.d.ts +134 -0
  30. package/migrations/20251125021229_premium_famine/snapshot.json +2641 -0
  31. package/migrations/20260225130050_smooth_the_fury/snapshot.json +2686 -0
  32. package/migrations/20260308141417_deep_iceman/snapshot.json +2686 -0
  33. package/migrations/20260308151309_perfect_deathbird/snapshot.json +2731 -0
  34. package/migrations/20260308201135_concerned_rawhide_kid/snapshot.json +2786 -0
  35. package/migrations/20260629103209_lethal_lifeguard/migration.sql +32 -0
  36. package/migrations/20260629103209_lethal_lifeguard/snapshot.json +2786 -0
  37. package/migrations/20260709073531_easy_hardball/migration.sql +24 -0
  38. package/migrations/20260709073531_easy_hardball/snapshot.json +3119 -0
  39. package/migrations/20260714081434_glossy_major_mapleleaf/migration.sql +1 -0
  40. package/migrations/20260714081434_glossy_major_mapleleaf/snapshot.json +3112 -0
  41. package/migrations/20260804105939_amazing_bushwacker/migration.sql +3 -0
  42. package/migrations/20260804105939_amazing_bushwacker/snapshot.json +3112 -0
  43. package/migrations/20260804110033_fat_piledriver/migration.sql +2 -0
  44. package/migrations/20260804110033_fat_piledriver/snapshot.json +3138 -0
  45. package/migrations/20260805143152_vengeful_ravenous/migration.sql +4 -0
  46. package/migrations/20260805143152_vengeful_ravenous/snapshot.json +3190 -0
  47. package/migrations/20260807145911_mixed_invisible_woman/migration.sql +11 -0
  48. package/migrations/20260807145911_mixed_invisible_woman/snapshot.json +3334 -0
  49. package/package.json +59 -40
  50. package/dist/authenticate-eucncHxN.d.ts +0 -940
  51. package/migrations/meta/0000_snapshot.json +0 -1632
  52. package/migrations/meta/0001_snapshot.json +0 -1660
  53. package/migrations/meta/0002_snapshot.json +0 -1660
  54. package/migrations/meta/0003_snapshot.json +0 -1689
  55. package/migrations/meta/0004_snapshot.json +0 -1721
  56. package/migrations/meta/_journal.json +0 -41
  57. /package/migrations/{0000_premium_famine.sql → 20251125021229_premium_famine/migration.sql} +0 -0
  58. /package/migrations/{0001_smooth_the_fury.sql → 20260225130050_smooth_the_fury/migration.sql} +0 -0
  59. /package/migrations/{0002_deep_iceman.sql → 20260308141417_deep_iceman/migration.sql} +0 -0
  60. /package/migrations/{0003_perfect_deathbird.sql → 20260308151309_perfect_deathbird/migration.sql} +0 -0
  61. /package/migrations/{0004_concerned_rawhide_kid.sql → 20260308201135_concerned_rawhide_kid/migration.sql} +0 -0
@@ -1,1660 +0,0 @@
1
- {
2
- "id": "e07610ec-0586-45c5-8417-cba9ed323aa4",
3
- "prevId": "e610afd0-f072-4f82-92cd-2bb8c156f284",
4
- "version": "7",
5
- "dialect": "postgresql",
6
- "tables": {
7
- "spfn_auth.users": {
8
- "name": "users",
9
- "schema": "spfn_auth",
10
- "columns": {
11
- "id": {
12
- "name": "id",
13
- "type": "bigserial",
14
- "primaryKey": true,
15
- "notNull": true
16
- },
17
- "email": {
18
- "name": "email",
19
- "type": "text",
20
- "primaryKey": false,
21
- "notNull": false
22
- },
23
- "phone": {
24
- "name": "phone",
25
- "type": "text",
26
- "primaryKey": false,
27
- "notNull": false
28
- },
29
- "username": {
30
- "name": "username",
31
- "type": "text",
32
- "primaryKey": false,
33
- "notNull": false
34
- },
35
- "password_hash": {
36
- "name": "password_hash",
37
- "type": "text",
38
- "primaryKey": false,
39
- "notNull": false
40
- },
41
- "password_change_required": {
42
- "name": "password_change_required",
43
- "type": "boolean",
44
- "primaryKey": false,
45
- "notNull": true,
46
- "default": false
47
- },
48
- "role_id": {
49
- "name": "role_id",
50
- "type": "bigserial",
51
- "primaryKey": false,
52
- "notNull": true
53
- },
54
- "status": {
55
- "name": "status",
56
- "type": "text",
57
- "primaryKey": false,
58
- "notNull": true,
59
- "default": "'active'"
60
- },
61
- "email_verified_at": {
62
- "name": "email_verified_at",
63
- "type": "timestamp with time zone",
64
- "primaryKey": false,
65
- "notNull": false
66
- },
67
- "phone_verified_at": {
68
- "name": "phone_verified_at",
69
- "type": "timestamp with time zone",
70
- "primaryKey": false,
71
- "notNull": false
72
- },
73
- "last_login_at": {
74
- "name": "last_login_at",
75
- "type": "timestamp with time zone",
76
- "primaryKey": false,
77
- "notNull": false
78
- },
79
- "created_at": {
80
- "name": "created_at",
81
- "type": "timestamp with time zone",
82
- "primaryKey": false,
83
- "notNull": true,
84
- "default": "now()"
85
- },
86
- "updated_at": {
87
- "name": "updated_at",
88
- "type": "timestamp with time zone",
89
- "primaryKey": false,
90
- "notNull": true,
91
- "default": "now()"
92
- }
93
- },
94
- "indexes": {
95
- "users_email_idx": {
96
- "name": "users_email_idx",
97
- "columns": [
98
- {
99
- "expression": "email",
100
- "isExpression": false,
101
- "asc": true,
102
- "nulls": "last"
103
- }
104
- ],
105
- "isUnique": false,
106
- "concurrently": false,
107
- "method": "btree",
108
- "with": {}
109
- },
110
- "users_phone_idx": {
111
- "name": "users_phone_idx",
112
- "columns": [
113
- {
114
- "expression": "phone",
115
- "isExpression": false,
116
- "asc": true,
117
- "nulls": "last"
118
- }
119
- ],
120
- "isUnique": false,
121
- "concurrently": false,
122
- "method": "btree",
123
- "with": {}
124
- },
125
- "users_username_idx": {
126
- "name": "users_username_idx",
127
- "columns": [
128
- {
129
- "expression": "username",
130
- "isExpression": false,
131
- "asc": true,
132
- "nulls": "last"
133
- }
134
- ],
135
- "isUnique": false,
136
- "concurrently": false,
137
- "method": "btree",
138
- "with": {}
139
- },
140
- "users_status_idx": {
141
- "name": "users_status_idx",
142
- "columns": [
143
- {
144
- "expression": "status",
145
- "isExpression": false,
146
- "asc": true,
147
- "nulls": "last"
148
- }
149
- ],
150
- "isUnique": false,
151
- "concurrently": false,
152
- "method": "btree",
153
- "with": {}
154
- },
155
- "users_role_id_idx": {
156
- "name": "users_role_id_idx",
157
- "columns": [
158
- {
159
- "expression": "role_id",
160
- "isExpression": false,
161
- "asc": true,
162
- "nulls": "last"
163
- }
164
- ],
165
- "isUnique": false,
166
- "concurrently": false,
167
- "method": "btree",
168
- "with": {}
169
- }
170
- },
171
- "foreignKeys": {
172
- "users_role_id_roles_id_fk": {
173
- "name": "users_role_id_roles_id_fk",
174
- "tableFrom": "users",
175
- "tableTo": "roles",
176
- "schemaTo": "spfn_auth",
177
- "columnsFrom": [
178
- "role_id"
179
- ],
180
- "columnsTo": [
181
- "id"
182
- ],
183
- "onDelete": "cascade",
184
- "onUpdate": "no action"
185
- }
186
- },
187
- "compositePrimaryKeys": {},
188
- "uniqueConstraints": {
189
- "users_email_unique": {
190
- "name": "users_email_unique",
191
- "nullsNotDistinct": false,
192
- "columns": [
193
- "email"
194
- ]
195
- },
196
- "users_phone_unique": {
197
- "name": "users_phone_unique",
198
- "nullsNotDistinct": false,
199
- "columns": [
200
- "phone"
201
- ]
202
- },
203
- "users_username_unique": {
204
- "name": "users_username_unique",
205
- "nullsNotDistinct": false,
206
- "columns": [
207
- "username"
208
- ]
209
- }
210
- },
211
- "policies": {},
212
- "checkConstraints": {
213
- "email_or_phone_check": {
214
- "name": "email_or_phone_check",
215
- "value": "\"spfn_auth\".\"users\".\"email\" IS NOT NULL OR \"spfn_auth\".\"users\".\"phone\" IS NOT NULL"
216
- }
217
- },
218
- "isRLSEnabled": false
219
- },
220
- "spfn_auth.user_profiles": {
221
- "name": "user_profiles",
222
- "schema": "spfn_auth",
223
- "columns": {
224
- "id": {
225
- "name": "id",
226
- "type": "bigserial",
227
- "primaryKey": true,
228
- "notNull": true
229
- },
230
- "user_id": {
231
- "name": "user_id",
232
- "type": "bigserial",
233
- "primaryKey": false,
234
- "notNull": true
235
- },
236
- "display_name": {
237
- "name": "display_name",
238
- "type": "text",
239
- "primaryKey": false,
240
- "notNull": true
241
- },
242
- "first_name": {
243
- "name": "first_name",
244
- "type": "text",
245
- "primaryKey": false,
246
- "notNull": false
247
- },
248
- "last_name": {
249
- "name": "last_name",
250
- "type": "text",
251
- "primaryKey": false,
252
- "notNull": false
253
- },
254
- "avatar_url": {
255
- "name": "avatar_url",
256
- "type": "text",
257
- "primaryKey": false,
258
- "notNull": false
259
- },
260
- "bio": {
261
- "name": "bio",
262
- "type": "text",
263
- "primaryKey": false,
264
- "notNull": false
265
- },
266
- "locale": {
267
- "name": "locale",
268
- "type": "text",
269
- "primaryKey": false,
270
- "notNull": false,
271
- "default": "'en'"
272
- },
273
- "timezone": {
274
- "name": "timezone",
275
- "type": "text",
276
- "primaryKey": false,
277
- "notNull": false,
278
- "default": "'UTC'"
279
- },
280
- "date_of_birth": {
281
- "name": "date_of_birth",
282
- "type": "text",
283
- "primaryKey": false,
284
- "notNull": false
285
- },
286
- "gender": {
287
- "name": "gender",
288
- "type": "text",
289
- "primaryKey": false,
290
- "notNull": false
291
- },
292
- "website": {
293
- "name": "website",
294
- "type": "text",
295
- "primaryKey": false,
296
- "notNull": false
297
- },
298
- "location": {
299
- "name": "location",
300
- "type": "text",
301
- "primaryKey": false,
302
- "notNull": false
303
- },
304
- "company": {
305
- "name": "company",
306
- "type": "text",
307
- "primaryKey": false,
308
- "notNull": false
309
- },
310
- "job_title": {
311
- "name": "job_title",
312
- "type": "text",
313
- "primaryKey": false,
314
- "notNull": false
315
- },
316
- "metadata": {
317
- "name": "metadata",
318
- "type": "jsonb",
319
- "primaryKey": false,
320
- "notNull": false
321
- },
322
- "created_at": {
323
- "name": "created_at",
324
- "type": "timestamp with time zone",
325
- "primaryKey": false,
326
- "notNull": true,
327
- "default": "now()"
328
- },
329
- "updated_at": {
330
- "name": "updated_at",
331
- "type": "timestamp with time zone",
332
- "primaryKey": false,
333
- "notNull": true,
334
- "default": "now()"
335
- }
336
- },
337
- "indexes": {
338
- "user_profiles_user_id_idx": {
339
- "name": "user_profiles_user_id_idx",
340
- "columns": [
341
- {
342
- "expression": "user_id",
343
- "isExpression": false,
344
- "asc": true,
345
- "nulls": "last"
346
- }
347
- ],
348
- "isUnique": false,
349
- "concurrently": false,
350
- "method": "btree",
351
- "with": {}
352
- },
353
- "user_profiles_display_name_idx": {
354
- "name": "user_profiles_display_name_idx",
355
- "columns": [
356
- {
357
- "expression": "display_name",
358
- "isExpression": false,
359
- "asc": true,
360
- "nulls": "last"
361
- }
362
- ],
363
- "isUnique": false,
364
- "concurrently": false,
365
- "method": "btree",
366
- "with": {}
367
- },
368
- "user_profiles_locale_idx": {
369
- "name": "user_profiles_locale_idx",
370
- "columns": [
371
- {
372
- "expression": "locale",
373
- "isExpression": false,
374
- "asc": true,
375
- "nulls": "last"
376
- }
377
- ],
378
- "isUnique": false,
379
- "concurrently": false,
380
- "method": "btree",
381
- "with": {}
382
- }
383
- },
384
- "foreignKeys": {
385
- "user_profiles_user_id_users_id_fk": {
386
- "name": "user_profiles_user_id_users_id_fk",
387
- "tableFrom": "user_profiles",
388
- "tableTo": "users",
389
- "schemaTo": "spfn_auth",
390
- "columnsFrom": [
391
- "user_id"
392
- ],
393
- "columnsTo": [
394
- "id"
395
- ],
396
- "onDelete": "cascade",
397
- "onUpdate": "no action"
398
- }
399
- },
400
- "compositePrimaryKeys": {},
401
- "uniqueConstraints": {
402
- "user_profiles_user_id_unique": {
403
- "name": "user_profiles_user_id_unique",
404
- "nullsNotDistinct": false,
405
- "columns": [
406
- "user_id"
407
- ]
408
- }
409
- },
410
- "policies": {},
411
- "checkConstraints": {},
412
- "isRLSEnabled": false
413
- },
414
- "spfn_auth.user_public_keys": {
415
- "name": "user_public_keys",
416
- "schema": "spfn_auth",
417
- "columns": {
418
- "id": {
419
- "name": "id",
420
- "type": "bigserial",
421
- "primaryKey": true,
422
- "notNull": true
423
- },
424
- "user_id": {
425
- "name": "user_id",
426
- "type": "bigserial",
427
- "primaryKey": false,
428
- "notNull": true
429
- },
430
- "key_id": {
431
- "name": "key_id",
432
- "type": "text",
433
- "primaryKey": false,
434
- "notNull": true
435
- },
436
- "public_key": {
437
- "name": "public_key",
438
- "type": "text",
439
- "primaryKey": false,
440
- "notNull": true
441
- },
442
- "algorithm": {
443
- "name": "algorithm",
444
- "type": "text",
445
- "primaryKey": false,
446
- "notNull": true,
447
- "default": "'ES256'"
448
- },
449
- "fingerprint": {
450
- "name": "fingerprint",
451
- "type": "text",
452
- "primaryKey": false,
453
- "notNull": true
454
- },
455
- "is_active": {
456
- "name": "is_active",
457
- "type": "boolean",
458
- "primaryKey": false,
459
- "notNull": true,
460
- "default": true
461
- },
462
- "created_at": {
463
- "name": "created_at",
464
- "type": "timestamp with time zone",
465
- "primaryKey": false,
466
- "notNull": true,
467
- "default": "now()"
468
- },
469
- "last_used_at": {
470
- "name": "last_used_at",
471
- "type": "timestamp with time zone",
472
- "primaryKey": false,
473
- "notNull": false
474
- },
475
- "expires_at": {
476
- "name": "expires_at",
477
- "type": "timestamp with time zone",
478
- "primaryKey": false,
479
- "notNull": false
480
- },
481
- "revoked_at": {
482
- "name": "revoked_at",
483
- "type": "timestamp with time zone",
484
- "primaryKey": false,
485
- "notNull": false
486
- },
487
- "revoked_reason": {
488
- "name": "revoked_reason",
489
- "type": "text",
490
- "primaryKey": false,
491
- "notNull": false
492
- }
493
- },
494
- "indexes": {
495
- "user_public_keys_user_id_idx": {
496
- "name": "user_public_keys_user_id_idx",
497
- "columns": [
498
- {
499
- "expression": "user_id",
500
- "isExpression": false,
501
- "asc": true,
502
- "nulls": "last"
503
- }
504
- ],
505
- "isUnique": false,
506
- "concurrently": false,
507
- "method": "btree",
508
- "with": {}
509
- },
510
- "user_public_keys_key_id_idx": {
511
- "name": "user_public_keys_key_id_idx",
512
- "columns": [
513
- {
514
- "expression": "key_id",
515
- "isExpression": false,
516
- "asc": true,
517
- "nulls": "last"
518
- }
519
- ],
520
- "isUnique": false,
521
- "concurrently": false,
522
- "method": "btree",
523
- "with": {}
524
- },
525
- "user_public_keys_active_idx": {
526
- "name": "user_public_keys_active_idx",
527
- "columns": [
528
- {
529
- "expression": "is_active",
530
- "isExpression": false,
531
- "asc": true,
532
- "nulls": "last"
533
- }
534
- ],
535
- "isUnique": false,
536
- "concurrently": false,
537
- "method": "btree",
538
- "with": {}
539
- },
540
- "user_public_keys_fingerprint_idx": {
541
- "name": "user_public_keys_fingerprint_idx",
542
- "columns": [
543
- {
544
- "expression": "fingerprint",
545
- "isExpression": false,
546
- "asc": true,
547
- "nulls": "last"
548
- }
549
- ],
550
- "isUnique": false,
551
- "concurrently": false,
552
- "method": "btree",
553
- "with": {}
554
- }
555
- },
556
- "foreignKeys": {
557
- "user_public_keys_user_id_users_id_fk": {
558
- "name": "user_public_keys_user_id_users_id_fk",
559
- "tableFrom": "user_public_keys",
560
- "tableTo": "users",
561
- "schemaTo": "spfn_auth",
562
- "columnsFrom": [
563
- "user_id"
564
- ],
565
- "columnsTo": [
566
- "id"
567
- ],
568
- "onDelete": "cascade",
569
- "onUpdate": "no action"
570
- }
571
- },
572
- "compositePrimaryKeys": {},
573
- "uniqueConstraints": {
574
- "user_public_keys_key_id_unique": {
575
- "name": "user_public_keys_key_id_unique",
576
- "nullsNotDistinct": false,
577
- "columns": [
578
- "key_id"
579
- ]
580
- }
581
- },
582
- "policies": {},
583
- "checkConstraints": {},
584
- "isRLSEnabled": false
585
- },
586
- "spfn_auth.user_social_accounts": {
587
- "name": "user_social_accounts",
588
- "schema": "spfn_auth",
589
- "columns": {
590
- "id": {
591
- "name": "id",
592
- "type": "bigserial",
593
- "primaryKey": true,
594
- "notNull": true
595
- },
596
- "user_id": {
597
- "name": "user_id",
598
- "type": "bigserial",
599
- "primaryKey": false,
600
- "notNull": true
601
- },
602
- "provider": {
603
- "name": "provider",
604
- "type": "text",
605
- "primaryKey": false,
606
- "notNull": true
607
- },
608
- "provider_user_id": {
609
- "name": "provider_user_id",
610
- "type": "text",
611
- "primaryKey": false,
612
- "notNull": true
613
- },
614
- "provider_email": {
615
- "name": "provider_email",
616
- "type": "text",
617
- "primaryKey": false,
618
- "notNull": false
619
- },
620
- "access_token": {
621
- "name": "access_token",
622
- "type": "text",
623
- "primaryKey": false,
624
- "notNull": false
625
- },
626
- "refresh_token": {
627
- "name": "refresh_token",
628
- "type": "text",
629
- "primaryKey": false,
630
- "notNull": false
631
- },
632
- "token_expires_at": {
633
- "name": "token_expires_at",
634
- "type": "timestamp with time zone",
635
- "primaryKey": false,
636
- "notNull": false
637
- },
638
- "created_at": {
639
- "name": "created_at",
640
- "type": "timestamp with time zone",
641
- "primaryKey": false,
642
- "notNull": true,
643
- "default": "now()"
644
- },
645
- "updated_at": {
646
- "name": "updated_at",
647
- "type": "timestamp with time zone",
648
- "primaryKey": false,
649
- "notNull": true,
650
- "default": "now()"
651
- }
652
- },
653
- "indexes": {
654
- "user_social_accounts_user_id_idx": {
655
- "name": "user_social_accounts_user_id_idx",
656
- "columns": [
657
- {
658
- "expression": "user_id",
659
- "isExpression": false,
660
- "asc": true,
661
- "nulls": "last"
662
- }
663
- ],
664
- "isUnique": false,
665
- "concurrently": false,
666
- "method": "btree",
667
- "with": {}
668
- },
669
- "user_social_accounts_provider_idx": {
670
- "name": "user_social_accounts_provider_idx",
671
- "columns": [
672
- {
673
- "expression": "provider",
674
- "isExpression": false,
675
- "asc": true,
676
- "nulls": "last"
677
- }
678
- ],
679
- "isUnique": false,
680
- "concurrently": false,
681
- "method": "btree",
682
- "with": {}
683
- },
684
- "provider_user_unique_idx": {
685
- "name": "provider_user_unique_idx",
686
- "columns": [
687
- {
688
- "expression": "provider",
689
- "isExpression": false,
690
- "asc": true,
691
- "nulls": "last"
692
- },
693
- {
694
- "expression": "provider_user_id",
695
- "isExpression": false,
696
- "asc": true,
697
- "nulls": "last"
698
- }
699
- ],
700
- "isUnique": true,
701
- "concurrently": false,
702
- "method": "btree",
703
- "with": {}
704
- }
705
- },
706
- "foreignKeys": {
707
- "user_social_accounts_user_id_users_id_fk": {
708
- "name": "user_social_accounts_user_id_users_id_fk",
709
- "tableFrom": "user_social_accounts",
710
- "tableTo": "users",
711
- "schemaTo": "spfn_auth",
712
- "columnsFrom": [
713
- "user_id"
714
- ],
715
- "columnsTo": [
716
- "id"
717
- ],
718
- "onDelete": "cascade",
719
- "onUpdate": "no action"
720
- }
721
- },
722
- "compositePrimaryKeys": {},
723
- "uniqueConstraints": {},
724
- "policies": {},
725
- "checkConstraints": {},
726
- "isRLSEnabled": false
727
- },
728
- "spfn_auth.verification_codes": {
729
- "name": "verification_codes",
730
- "schema": "spfn_auth",
731
- "columns": {
732
- "id": {
733
- "name": "id",
734
- "type": "bigserial",
735
- "primaryKey": true,
736
- "notNull": true
737
- },
738
- "target": {
739
- "name": "target",
740
- "type": "text",
741
- "primaryKey": false,
742
- "notNull": true
743
- },
744
- "target_type": {
745
- "name": "target_type",
746
- "type": "text",
747
- "primaryKey": false,
748
- "notNull": true
749
- },
750
- "code": {
751
- "name": "code",
752
- "type": "text",
753
- "primaryKey": false,
754
- "notNull": true
755
- },
756
- "purpose": {
757
- "name": "purpose",
758
- "type": "text",
759
- "primaryKey": false,
760
- "notNull": true
761
- },
762
- "expires_at": {
763
- "name": "expires_at",
764
- "type": "timestamp with time zone",
765
- "primaryKey": false,
766
- "notNull": true
767
- },
768
- "used_at": {
769
- "name": "used_at",
770
- "type": "timestamp with time zone",
771
- "primaryKey": false,
772
- "notNull": false
773
- },
774
- "attempts": {
775
- "name": "attempts",
776
- "type": "integer",
777
- "primaryKey": false,
778
- "notNull": true,
779
- "default": 0
780
- },
781
- "created_at": {
782
- "name": "created_at",
783
- "type": "timestamp with time zone",
784
- "primaryKey": false,
785
- "notNull": true,
786
- "default": "now()"
787
- },
788
- "updated_at": {
789
- "name": "updated_at",
790
- "type": "timestamp with time zone",
791
- "primaryKey": false,
792
- "notNull": true,
793
- "default": "now()"
794
- }
795
- },
796
- "indexes": {
797
- "target_purpose_idx": {
798
- "name": "target_purpose_idx",
799
- "columns": [
800
- {
801
- "expression": "target",
802
- "isExpression": false,
803
- "asc": true,
804
- "nulls": "last"
805
- },
806
- {
807
- "expression": "purpose",
808
- "isExpression": false,
809
- "asc": true,
810
- "nulls": "last"
811
- },
812
- {
813
- "expression": "expires_at",
814
- "isExpression": false,
815
- "asc": true,
816
- "nulls": "last"
817
- }
818
- ],
819
- "isUnique": false,
820
- "concurrently": false,
821
- "method": "btree",
822
- "with": {}
823
- }
824
- },
825
- "foreignKeys": {},
826
- "compositePrimaryKeys": {},
827
- "uniqueConstraints": {},
828
- "policies": {},
829
- "checkConstraints": {
830
- "attempts_limit_check": {
831
- "name": "attempts_limit_check",
832
- "value": "\"spfn_auth\".\"verification_codes\".\"attempts\" >= 0 AND \"spfn_auth\".\"verification_codes\".\"attempts\" <= 10"
833
- }
834
- },
835
- "isRLSEnabled": false
836
- },
837
- "spfn_auth.user_invitations": {
838
- "name": "user_invitations",
839
- "schema": "spfn_auth",
840
- "columns": {
841
- "id": {
842
- "name": "id",
843
- "type": "bigserial",
844
- "primaryKey": true,
845
- "notNull": true
846
- },
847
- "email": {
848
- "name": "email",
849
- "type": "text",
850
- "primaryKey": false,
851
- "notNull": true
852
- },
853
- "token": {
854
- "name": "token",
855
- "type": "text",
856
- "primaryKey": false,
857
- "notNull": true
858
- },
859
- "role_id": {
860
- "name": "role_id",
861
- "type": "bigserial",
862
- "primaryKey": false,
863
- "notNull": true
864
- },
865
- "invited_by_id": {
866
- "name": "invited_by_id",
867
- "type": "bigserial",
868
- "primaryKey": false,
869
- "notNull": true
870
- },
871
- "status": {
872
- "name": "status",
873
- "type": "text",
874
- "primaryKey": false,
875
- "notNull": true,
876
- "default": "'pending'"
877
- },
878
- "expires_at": {
879
- "name": "expires_at",
880
- "type": "timestamp with time zone",
881
- "primaryKey": false,
882
- "notNull": true
883
- },
884
- "accepted_at": {
885
- "name": "accepted_at",
886
- "type": "timestamp with time zone",
887
- "primaryKey": false,
888
- "notNull": false
889
- },
890
- "cancelled_at": {
891
- "name": "cancelled_at",
892
- "type": "timestamp with time zone",
893
- "primaryKey": false,
894
- "notNull": false
895
- },
896
- "metadata": {
897
- "name": "metadata",
898
- "type": "jsonb",
899
- "primaryKey": false,
900
- "notNull": false
901
- },
902
- "created_at": {
903
- "name": "created_at",
904
- "type": "timestamp with time zone",
905
- "primaryKey": false,
906
- "notNull": true,
907
- "default": "now()"
908
- },
909
- "updated_at": {
910
- "name": "updated_at",
911
- "type": "timestamp with time zone",
912
- "primaryKey": false,
913
- "notNull": true,
914
- "default": "now()"
915
- }
916
- },
917
- "indexes": {
918
- "invitations_token_idx": {
919
- "name": "invitations_token_idx",
920
- "columns": [
921
- {
922
- "expression": "token",
923
- "isExpression": false,
924
- "asc": true,
925
- "nulls": "last"
926
- }
927
- ],
928
- "isUnique": false,
929
- "concurrently": false,
930
- "method": "btree",
931
- "with": {}
932
- },
933
- "invitations_email_idx": {
934
- "name": "invitations_email_idx",
935
- "columns": [
936
- {
937
- "expression": "email",
938
- "isExpression": false,
939
- "asc": true,
940
- "nulls": "last"
941
- }
942
- ],
943
- "isUnique": false,
944
- "concurrently": false,
945
- "method": "btree",
946
- "with": {}
947
- },
948
- "invitations_status_idx": {
949
- "name": "invitations_status_idx",
950
- "columns": [
951
- {
952
- "expression": "status",
953
- "isExpression": false,
954
- "asc": true,
955
- "nulls": "last"
956
- }
957
- ],
958
- "isUnique": false,
959
- "concurrently": false,
960
- "method": "btree",
961
- "with": {}
962
- },
963
- "invitations_invited_by_idx": {
964
- "name": "invitations_invited_by_idx",
965
- "columns": [
966
- {
967
- "expression": "invited_by_id",
968
- "isExpression": false,
969
- "asc": true,
970
- "nulls": "last"
971
- }
972
- ],
973
- "isUnique": false,
974
- "concurrently": false,
975
- "method": "btree",
976
- "with": {}
977
- },
978
- "invitations_expires_at_idx": {
979
- "name": "invitations_expires_at_idx",
980
- "columns": [
981
- {
982
- "expression": "expires_at",
983
- "isExpression": false,
984
- "asc": true,
985
- "nulls": "last"
986
- }
987
- ],
988
- "isUnique": false,
989
- "concurrently": false,
990
- "method": "btree",
991
- "with": {}
992
- },
993
- "invitations_role_id_idx": {
994
- "name": "invitations_role_id_idx",
995
- "columns": [
996
- {
997
- "expression": "role_id",
998
- "isExpression": false,
999
- "asc": true,
1000
- "nulls": "last"
1001
- }
1002
- ],
1003
- "isUnique": false,
1004
- "concurrently": false,
1005
- "method": "btree",
1006
- "with": {}
1007
- }
1008
- },
1009
- "foreignKeys": {
1010
- "user_invitations_role_id_roles_id_fk": {
1011
- "name": "user_invitations_role_id_roles_id_fk",
1012
- "tableFrom": "user_invitations",
1013
- "tableTo": "roles",
1014
- "schemaTo": "spfn_auth",
1015
- "columnsFrom": [
1016
- "role_id"
1017
- ],
1018
- "columnsTo": [
1019
- "id"
1020
- ],
1021
- "onDelete": "cascade",
1022
- "onUpdate": "no action"
1023
- },
1024
- "user_invitations_invited_by_id_users_id_fk": {
1025
- "name": "user_invitations_invited_by_id_users_id_fk",
1026
- "tableFrom": "user_invitations",
1027
- "tableTo": "users",
1028
- "schemaTo": "spfn_auth",
1029
- "columnsFrom": [
1030
- "invited_by_id"
1031
- ],
1032
- "columnsTo": [
1033
- "id"
1034
- ],
1035
- "onDelete": "cascade",
1036
- "onUpdate": "no action"
1037
- }
1038
- },
1039
- "compositePrimaryKeys": {},
1040
- "uniqueConstraints": {
1041
- "user_invitations_token_unique": {
1042
- "name": "user_invitations_token_unique",
1043
- "nullsNotDistinct": false,
1044
- "columns": [
1045
- "token"
1046
- ]
1047
- }
1048
- },
1049
- "policies": {},
1050
- "checkConstraints": {},
1051
- "isRLSEnabled": false
1052
- },
1053
- "spfn_auth.roles": {
1054
- "name": "roles",
1055
- "schema": "spfn_auth",
1056
- "columns": {
1057
- "id": {
1058
- "name": "id",
1059
- "type": "bigserial",
1060
- "primaryKey": true,
1061
- "notNull": true
1062
- },
1063
- "name": {
1064
- "name": "name",
1065
- "type": "text",
1066
- "primaryKey": false,
1067
- "notNull": true
1068
- },
1069
- "display_name": {
1070
- "name": "display_name",
1071
- "type": "text",
1072
- "primaryKey": false,
1073
- "notNull": true
1074
- },
1075
- "description": {
1076
- "name": "description",
1077
- "type": "text",
1078
- "primaryKey": false,
1079
- "notNull": false
1080
- },
1081
- "is_builtin": {
1082
- "name": "is_builtin",
1083
- "type": "boolean",
1084
- "primaryKey": false,
1085
- "notNull": true,
1086
- "default": false
1087
- },
1088
- "is_system": {
1089
- "name": "is_system",
1090
- "type": "boolean",
1091
- "primaryKey": false,
1092
- "notNull": true,
1093
- "default": false
1094
- },
1095
- "is_active": {
1096
- "name": "is_active",
1097
- "type": "boolean",
1098
- "primaryKey": false,
1099
- "notNull": true,
1100
- "default": true
1101
- },
1102
- "priority": {
1103
- "name": "priority",
1104
- "type": "integer",
1105
- "primaryKey": false,
1106
- "notNull": true,
1107
- "default": 10
1108
- },
1109
- "created_at": {
1110
- "name": "created_at",
1111
- "type": "timestamp with time zone",
1112
- "primaryKey": false,
1113
- "notNull": true,
1114
- "default": "now()"
1115
- },
1116
- "updated_at": {
1117
- "name": "updated_at",
1118
- "type": "timestamp with time zone",
1119
- "primaryKey": false,
1120
- "notNull": true,
1121
- "default": "now()"
1122
- }
1123
- },
1124
- "indexes": {
1125
- "roles_name_idx": {
1126
- "name": "roles_name_idx",
1127
- "columns": [
1128
- {
1129
- "expression": "name",
1130
- "isExpression": false,
1131
- "asc": true,
1132
- "nulls": "last"
1133
- }
1134
- ],
1135
- "isUnique": false,
1136
- "concurrently": false,
1137
- "method": "btree",
1138
- "with": {}
1139
- },
1140
- "roles_is_system_idx": {
1141
- "name": "roles_is_system_idx",
1142
- "columns": [
1143
- {
1144
- "expression": "is_system",
1145
- "isExpression": false,
1146
- "asc": true,
1147
- "nulls": "last"
1148
- }
1149
- ],
1150
- "isUnique": false,
1151
- "concurrently": false,
1152
- "method": "btree",
1153
- "with": {}
1154
- },
1155
- "roles_is_active_idx": {
1156
- "name": "roles_is_active_idx",
1157
- "columns": [
1158
- {
1159
- "expression": "is_active",
1160
- "isExpression": false,
1161
- "asc": true,
1162
- "nulls": "last"
1163
- }
1164
- ],
1165
- "isUnique": false,
1166
- "concurrently": false,
1167
- "method": "btree",
1168
- "with": {}
1169
- },
1170
- "roles_is_builtin_idx": {
1171
- "name": "roles_is_builtin_idx",
1172
- "columns": [
1173
- {
1174
- "expression": "is_builtin",
1175
- "isExpression": false,
1176
- "asc": true,
1177
- "nulls": "last"
1178
- }
1179
- ],
1180
- "isUnique": false,
1181
- "concurrently": false,
1182
- "method": "btree",
1183
- "with": {}
1184
- },
1185
- "roles_priority_idx": {
1186
- "name": "roles_priority_idx",
1187
- "columns": [
1188
- {
1189
- "expression": "priority",
1190
- "isExpression": false,
1191
- "asc": true,
1192
- "nulls": "last"
1193
- }
1194
- ],
1195
- "isUnique": false,
1196
- "concurrently": false,
1197
- "method": "btree",
1198
- "with": {}
1199
- }
1200
- },
1201
- "foreignKeys": {},
1202
- "compositePrimaryKeys": {},
1203
- "uniqueConstraints": {
1204
- "roles_name_unique": {
1205
- "name": "roles_name_unique",
1206
- "nullsNotDistinct": false,
1207
- "columns": [
1208
- "name"
1209
- ]
1210
- }
1211
- },
1212
- "policies": {},
1213
- "checkConstraints": {},
1214
- "isRLSEnabled": false
1215
- },
1216
- "spfn_auth.permissions": {
1217
- "name": "permissions",
1218
- "schema": "spfn_auth",
1219
- "columns": {
1220
- "id": {
1221
- "name": "id",
1222
- "type": "bigserial",
1223
- "primaryKey": true,
1224
- "notNull": true
1225
- },
1226
- "name": {
1227
- "name": "name",
1228
- "type": "text",
1229
- "primaryKey": false,
1230
- "notNull": true
1231
- },
1232
- "display_name": {
1233
- "name": "display_name",
1234
- "type": "text",
1235
- "primaryKey": false,
1236
- "notNull": true
1237
- },
1238
- "description": {
1239
- "name": "description",
1240
- "type": "text",
1241
- "primaryKey": false,
1242
- "notNull": false
1243
- },
1244
- "category": {
1245
- "name": "category",
1246
- "type": "text",
1247
- "primaryKey": false,
1248
- "notNull": false
1249
- },
1250
- "is_builtin": {
1251
- "name": "is_builtin",
1252
- "type": "boolean",
1253
- "primaryKey": false,
1254
- "notNull": true,
1255
- "default": false
1256
- },
1257
- "is_system": {
1258
- "name": "is_system",
1259
- "type": "boolean",
1260
- "primaryKey": false,
1261
- "notNull": true,
1262
- "default": false
1263
- },
1264
- "is_active": {
1265
- "name": "is_active",
1266
- "type": "boolean",
1267
- "primaryKey": false,
1268
- "notNull": true,
1269
- "default": true
1270
- },
1271
- "metadata": {
1272
- "name": "metadata",
1273
- "type": "jsonb",
1274
- "primaryKey": false,
1275
- "notNull": false
1276
- },
1277
- "created_at": {
1278
- "name": "created_at",
1279
- "type": "timestamp with time zone",
1280
- "primaryKey": false,
1281
- "notNull": true,
1282
- "default": "now()"
1283
- },
1284
- "updated_at": {
1285
- "name": "updated_at",
1286
- "type": "timestamp with time zone",
1287
- "primaryKey": false,
1288
- "notNull": true,
1289
- "default": "now()"
1290
- }
1291
- },
1292
- "indexes": {
1293
- "permissions_name_idx": {
1294
- "name": "permissions_name_idx",
1295
- "columns": [
1296
- {
1297
- "expression": "name",
1298
- "isExpression": false,
1299
- "asc": true,
1300
- "nulls": "last"
1301
- }
1302
- ],
1303
- "isUnique": false,
1304
- "concurrently": false,
1305
- "method": "btree",
1306
- "with": {}
1307
- },
1308
- "permissions_category_idx": {
1309
- "name": "permissions_category_idx",
1310
- "columns": [
1311
- {
1312
- "expression": "category",
1313
- "isExpression": false,
1314
- "asc": true,
1315
- "nulls": "last"
1316
- }
1317
- ],
1318
- "isUnique": false,
1319
- "concurrently": false,
1320
- "method": "btree",
1321
- "with": {}
1322
- },
1323
- "permissions_is_system_idx": {
1324
- "name": "permissions_is_system_idx",
1325
- "columns": [
1326
- {
1327
- "expression": "is_system",
1328
- "isExpression": false,
1329
- "asc": true,
1330
- "nulls": "last"
1331
- }
1332
- ],
1333
- "isUnique": false,
1334
- "concurrently": false,
1335
- "method": "btree",
1336
- "with": {}
1337
- },
1338
- "permissions_is_active_idx": {
1339
- "name": "permissions_is_active_idx",
1340
- "columns": [
1341
- {
1342
- "expression": "is_active",
1343
- "isExpression": false,
1344
- "asc": true,
1345
- "nulls": "last"
1346
- }
1347
- ],
1348
- "isUnique": false,
1349
- "concurrently": false,
1350
- "method": "btree",
1351
- "with": {}
1352
- },
1353
- "permissions_is_builtin_idx": {
1354
- "name": "permissions_is_builtin_idx",
1355
- "columns": [
1356
- {
1357
- "expression": "is_builtin",
1358
- "isExpression": false,
1359
- "asc": true,
1360
- "nulls": "last"
1361
- }
1362
- ],
1363
- "isUnique": false,
1364
- "concurrently": false,
1365
- "method": "btree",
1366
- "with": {}
1367
- }
1368
- },
1369
- "foreignKeys": {},
1370
- "compositePrimaryKeys": {},
1371
- "uniqueConstraints": {
1372
- "permissions_name_unique": {
1373
- "name": "permissions_name_unique",
1374
- "nullsNotDistinct": false,
1375
- "columns": [
1376
- "name"
1377
- ]
1378
- }
1379
- },
1380
- "policies": {},
1381
- "checkConstraints": {},
1382
- "isRLSEnabled": false
1383
- },
1384
- "spfn_auth.role_permissions": {
1385
- "name": "role_permissions",
1386
- "schema": "spfn_auth",
1387
- "columns": {
1388
- "id": {
1389
- "name": "id",
1390
- "type": "bigserial",
1391
- "primaryKey": true,
1392
- "notNull": true
1393
- },
1394
- "role_id": {
1395
- "name": "role_id",
1396
- "type": "bigserial",
1397
- "primaryKey": false,
1398
- "notNull": true
1399
- },
1400
- "permission_id": {
1401
- "name": "permission_id",
1402
- "type": "bigserial",
1403
- "primaryKey": false,
1404
- "notNull": true
1405
- },
1406
- "created_at": {
1407
- "name": "created_at",
1408
- "type": "timestamp with time zone",
1409
- "primaryKey": false,
1410
- "notNull": true,
1411
- "default": "now()"
1412
- },
1413
- "updated_at": {
1414
- "name": "updated_at",
1415
- "type": "timestamp with time zone",
1416
- "primaryKey": false,
1417
- "notNull": true,
1418
- "default": "now()"
1419
- }
1420
- },
1421
- "indexes": {
1422
- "role_permissions_role_id_idx": {
1423
- "name": "role_permissions_role_id_idx",
1424
- "columns": [
1425
- {
1426
- "expression": "role_id",
1427
- "isExpression": false,
1428
- "asc": true,
1429
- "nulls": "last"
1430
- }
1431
- ],
1432
- "isUnique": false,
1433
- "concurrently": false,
1434
- "method": "btree",
1435
- "with": {}
1436
- },
1437
- "role_permissions_permission_id_idx": {
1438
- "name": "role_permissions_permission_id_idx",
1439
- "columns": [
1440
- {
1441
- "expression": "permission_id",
1442
- "isExpression": false,
1443
- "asc": true,
1444
- "nulls": "last"
1445
- }
1446
- ],
1447
- "isUnique": false,
1448
- "concurrently": false,
1449
- "method": "btree",
1450
- "with": {}
1451
- }
1452
- },
1453
- "foreignKeys": {
1454
- "role_permissions_role_id_roles_id_fk": {
1455
- "name": "role_permissions_role_id_roles_id_fk",
1456
- "tableFrom": "role_permissions",
1457
- "tableTo": "roles",
1458
- "schemaTo": "spfn_auth",
1459
- "columnsFrom": [
1460
- "role_id"
1461
- ],
1462
- "columnsTo": [
1463
- "id"
1464
- ],
1465
- "onDelete": "cascade",
1466
- "onUpdate": "no action"
1467
- },
1468
- "role_permissions_permission_id_permissions_id_fk": {
1469
- "name": "role_permissions_permission_id_permissions_id_fk",
1470
- "tableFrom": "role_permissions",
1471
- "tableTo": "permissions",
1472
- "schemaTo": "spfn_auth",
1473
- "columnsFrom": [
1474
- "permission_id"
1475
- ],
1476
- "columnsTo": [
1477
- "id"
1478
- ],
1479
- "onDelete": "cascade",
1480
- "onUpdate": "no action"
1481
- }
1482
- },
1483
- "compositePrimaryKeys": {},
1484
- "uniqueConstraints": {
1485
- "role_permissions_unique": {
1486
- "name": "role_permissions_unique",
1487
- "nullsNotDistinct": false,
1488
- "columns": [
1489
- "role_id",
1490
- "permission_id"
1491
- ]
1492
- }
1493
- },
1494
- "policies": {},
1495
- "checkConstraints": {},
1496
- "isRLSEnabled": false
1497
- },
1498
- "spfn_auth.user_permissions": {
1499
- "name": "user_permissions",
1500
- "schema": "spfn_auth",
1501
- "columns": {
1502
- "id": {
1503
- "name": "id",
1504
- "type": "bigserial",
1505
- "primaryKey": true,
1506
- "notNull": true
1507
- },
1508
- "user_id": {
1509
- "name": "user_id",
1510
- "type": "bigserial",
1511
- "primaryKey": false,
1512
- "notNull": true
1513
- },
1514
- "permission_id": {
1515
- "name": "permission_id",
1516
- "type": "bigserial",
1517
- "primaryKey": false,
1518
- "notNull": true
1519
- },
1520
- "granted": {
1521
- "name": "granted",
1522
- "type": "boolean",
1523
- "primaryKey": false,
1524
- "notNull": true,
1525
- "default": true
1526
- },
1527
- "reason": {
1528
- "name": "reason",
1529
- "type": "text",
1530
- "primaryKey": false,
1531
- "notNull": false
1532
- },
1533
- "expires_at": {
1534
- "name": "expires_at",
1535
- "type": "timestamp with time zone",
1536
- "primaryKey": false,
1537
- "notNull": false
1538
- },
1539
- "created_at": {
1540
- "name": "created_at",
1541
- "type": "timestamp with time zone",
1542
- "primaryKey": false,
1543
- "notNull": true,
1544
- "default": "now()"
1545
- },
1546
- "updated_at": {
1547
- "name": "updated_at",
1548
- "type": "timestamp with time zone",
1549
- "primaryKey": false,
1550
- "notNull": true,
1551
- "default": "now()"
1552
- }
1553
- },
1554
- "indexes": {
1555
- "user_permissions_user_id_idx": {
1556
- "name": "user_permissions_user_id_idx",
1557
- "columns": [
1558
- {
1559
- "expression": "user_id",
1560
- "isExpression": false,
1561
- "asc": true,
1562
- "nulls": "last"
1563
- }
1564
- ],
1565
- "isUnique": false,
1566
- "concurrently": false,
1567
- "method": "btree",
1568
- "with": {}
1569
- },
1570
- "user_permissions_permission_id_idx": {
1571
- "name": "user_permissions_permission_id_idx",
1572
- "columns": [
1573
- {
1574
- "expression": "permission_id",
1575
- "isExpression": false,
1576
- "asc": true,
1577
- "nulls": "last"
1578
- }
1579
- ],
1580
- "isUnique": false,
1581
- "concurrently": false,
1582
- "method": "btree",
1583
- "with": {}
1584
- },
1585
- "user_permissions_expires_at_idx": {
1586
- "name": "user_permissions_expires_at_idx",
1587
- "columns": [
1588
- {
1589
- "expression": "expires_at",
1590
- "isExpression": false,
1591
- "asc": true,
1592
- "nulls": "last"
1593
- }
1594
- ],
1595
- "isUnique": false,
1596
- "concurrently": false,
1597
- "method": "btree",
1598
- "with": {}
1599
- }
1600
- },
1601
- "foreignKeys": {
1602
- "user_permissions_user_id_users_id_fk": {
1603
- "name": "user_permissions_user_id_users_id_fk",
1604
- "tableFrom": "user_permissions",
1605
- "tableTo": "users",
1606
- "schemaTo": "spfn_auth",
1607
- "columnsFrom": [
1608
- "user_id"
1609
- ],
1610
- "columnsTo": [
1611
- "id"
1612
- ],
1613
- "onDelete": "cascade",
1614
- "onUpdate": "no action"
1615
- },
1616
- "user_permissions_permission_id_permissions_id_fk": {
1617
- "name": "user_permissions_permission_id_permissions_id_fk",
1618
- "tableFrom": "user_permissions",
1619
- "tableTo": "permissions",
1620
- "schemaTo": "spfn_auth",
1621
- "columnsFrom": [
1622
- "permission_id"
1623
- ],
1624
- "columnsTo": [
1625
- "id"
1626
- ],
1627
- "onDelete": "cascade",
1628
- "onUpdate": "no action"
1629
- }
1630
- },
1631
- "compositePrimaryKeys": {},
1632
- "uniqueConstraints": {
1633
- "user_permissions_unique": {
1634
- "name": "user_permissions_unique",
1635
- "nullsNotDistinct": false,
1636
- "columns": [
1637
- "user_id",
1638
- "permission_id"
1639
- ]
1640
- }
1641
- },
1642
- "policies": {},
1643
- "checkConstraints": {},
1644
- "isRLSEnabled": false
1645
- }
1646
- },
1647
- "enums": {},
1648
- "schemas": {
1649
- "spfn_auth": "spfn_auth"
1650
- },
1651
- "sequences": {},
1652
- "roles": {},
1653
- "policies": {},
1654
- "views": {},
1655
- "_meta": {
1656
- "columns": {},
1657
- "schemas": {},
1658
- "tables": {}
1659
- }
1660
- }