@spfn/auth 0.1.0-alpha.0 → 0.1.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +70 -12
  3. package/dist/api-BcQM4WKb.d.ts +45 -0
  4. package/dist/client.d.ts +2 -0
  5. package/dist/client.js +1 -0
  6. package/dist/client.js.map +1 -0
  7. package/dist/index.d.ts +57 -0
  8. package/dist/index.js +8966 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/lib/contracts/auth.d.ts +262 -0
  11. package/dist/lib/contracts/auth.js +2923 -0
  12. package/dist/lib/contracts/auth.js.map +1 -0
  13. package/dist/lib/contracts/index.d.ts +3 -0
  14. package/dist/lib/contracts/index.js +3162 -0
  15. package/dist/lib/contracts/index.js.map +1 -0
  16. package/dist/lib/contracts/invitation.d.ts +243 -0
  17. package/dist/lib/contracts/invitation.js +2883 -0
  18. package/dist/lib/contracts/invitation.js.map +1 -0
  19. package/dist/plugin.d.ts +12 -0
  20. package/dist/plugin.js +8949 -0
  21. package/dist/plugin.js.map +1 -0
  22. package/dist/server/entities/index.d.ts +10 -0
  23. package/dist/server/entities/index.js +399 -0
  24. package/dist/server/entities/index.js.map +1 -0
  25. package/dist/server/entities/invitations.d.ts +241 -0
  26. package/dist/server/entities/invitations.js +181 -0
  27. package/dist/server/entities/invitations.js.map +1 -0
  28. package/dist/server/entities/permissions.d.ts +196 -0
  29. package/dist/server/entities/permissions.js +44 -0
  30. package/dist/server/entities/permissions.js.map +1 -0
  31. package/dist/server/entities/role-permissions.d.ts +107 -0
  32. package/dist/server/entities/role-permissions.js +112 -0
  33. package/dist/server/entities/role-permissions.js.map +1 -0
  34. package/dist/server/entities/roles.d.ts +196 -0
  35. package/dist/server/entities/roles.js +45 -0
  36. package/dist/server/entities/roles.js.map +1 -0
  37. package/dist/server/entities/user-permissions.d.ts +163 -0
  38. package/dist/server/entities/user-permissions.js +191 -0
  39. package/dist/server/entities/user-permissions.js.map +1 -0
  40. package/dist/server/entities/user-public-keys.d.ts +227 -0
  41. package/dist/server/entities/user-public-keys.js +153 -0
  42. package/dist/server/entities/user-public-keys.js.map +1 -0
  43. package/dist/server/entities/user-social-accounts.d.ts +189 -0
  44. package/dist/server/entities/user-social-accounts.js +146 -0
  45. package/dist/server/entities/user-social-accounts.js.map +1 -0
  46. package/dist/server/entities/users.d.ts +235 -0
  47. package/dist/server/entities/users.js +113 -0
  48. package/dist/server/entities/users.js.map +1 -0
  49. package/dist/server/entities/verification-codes.d.ts +191 -0
  50. package/dist/server/entities/verification-codes.js +44 -0
  51. package/dist/server/entities/verification-codes.js.map +1 -0
  52. package/dist/server/routes/auth/index.d.ts +10 -0
  53. package/dist/server/routes/auth/index.js +4475 -0
  54. package/dist/server/routes/auth/index.js.map +1 -0
  55. package/dist/server/routes/index.d.ts +6 -0
  56. package/dist/server/routes/index.js +6352 -0
  57. package/dist/server/routes/index.js.map +1 -0
  58. package/dist/server/routes/invitations/index.d.ts +10 -0
  59. package/dist/server/routes/invitations/index.js +4209 -0
  60. package/dist/server/routes/invitations/index.js.map +1 -0
  61. package/dist/server.d.ts +1243 -0
  62. package/dist/server.js +2281 -0
  63. package/dist/server.js.map +1 -0
  64. package/migrations/0000_tired_gambit.sql +165 -0
  65. package/migrations/meta/0000_snapshot.json +1395 -0
  66. package/migrations/meta/_journal.json +13 -0
  67. package/package.json +32 -24
@@ -0,0 +1,1395 @@
1
+ {
2
+ "id": "c0a70624-3a65-4c64-9e35-431b04282815",
3
+ "prevId": "00000000-0000-0000-0000-000000000000",
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
+ "password_hash": {
30
+ "name": "password_hash",
31
+ "type": "text",
32
+ "primaryKey": false,
33
+ "notNull": false
34
+ },
35
+ "password_change_required": {
36
+ "name": "password_change_required",
37
+ "type": "boolean",
38
+ "primaryKey": false,
39
+ "notNull": true,
40
+ "default": false
41
+ },
42
+ "role_id": {
43
+ "name": "role_id",
44
+ "type": "bigint",
45
+ "primaryKey": false,
46
+ "notNull": true
47
+ },
48
+ "status": {
49
+ "name": "status",
50
+ "type": "text",
51
+ "primaryKey": false,
52
+ "notNull": true,
53
+ "default": "'active'"
54
+ },
55
+ "email_verified_at": {
56
+ "name": "email_verified_at",
57
+ "type": "timestamp with time zone",
58
+ "primaryKey": false,
59
+ "notNull": false
60
+ },
61
+ "phone_verified_at": {
62
+ "name": "phone_verified_at",
63
+ "type": "timestamp with time zone",
64
+ "primaryKey": false,
65
+ "notNull": false
66
+ },
67
+ "last_login_at": {
68
+ "name": "last_login_at",
69
+ "type": "timestamp with time zone",
70
+ "primaryKey": false,
71
+ "notNull": false
72
+ },
73
+ "created_at": {
74
+ "name": "created_at",
75
+ "type": "timestamp with time zone",
76
+ "primaryKey": false,
77
+ "notNull": true,
78
+ "default": "now()"
79
+ },
80
+ "updated_at": {
81
+ "name": "updated_at",
82
+ "type": "timestamp with time zone",
83
+ "primaryKey": false,
84
+ "notNull": true,
85
+ "default": "now()"
86
+ }
87
+ },
88
+ "indexes": {
89
+ "users_email_idx": {
90
+ "name": "users_email_idx",
91
+ "columns": [
92
+ {
93
+ "expression": "email",
94
+ "isExpression": false,
95
+ "asc": true,
96
+ "nulls": "last"
97
+ }
98
+ ],
99
+ "isUnique": false,
100
+ "concurrently": false,
101
+ "method": "btree",
102
+ "with": {}
103
+ },
104
+ "users_phone_idx": {
105
+ "name": "users_phone_idx",
106
+ "columns": [
107
+ {
108
+ "expression": "phone",
109
+ "isExpression": false,
110
+ "asc": true,
111
+ "nulls": "last"
112
+ }
113
+ ],
114
+ "isUnique": false,
115
+ "concurrently": false,
116
+ "method": "btree",
117
+ "with": {}
118
+ },
119
+ "users_status_idx": {
120
+ "name": "users_status_idx",
121
+ "columns": [
122
+ {
123
+ "expression": "status",
124
+ "isExpression": false,
125
+ "asc": true,
126
+ "nulls": "last"
127
+ }
128
+ ],
129
+ "isUnique": false,
130
+ "concurrently": false,
131
+ "method": "btree",
132
+ "with": {}
133
+ },
134
+ "users_role_id_idx": {
135
+ "name": "users_role_id_idx",
136
+ "columns": [
137
+ {
138
+ "expression": "role_id",
139
+ "isExpression": false,
140
+ "asc": true,
141
+ "nulls": "last"
142
+ }
143
+ ],
144
+ "isUnique": false,
145
+ "concurrently": false,
146
+ "method": "btree",
147
+ "with": {}
148
+ }
149
+ },
150
+ "foreignKeys": {
151
+ "users_role_id_roles_id_fk": {
152
+ "name": "users_role_id_roles_id_fk",
153
+ "tableFrom": "users",
154
+ "tableTo": "roles",
155
+ "schemaTo": "spfn_auth",
156
+ "columnsFrom": [
157
+ "role_id"
158
+ ],
159
+ "columnsTo": [
160
+ "id"
161
+ ],
162
+ "onDelete": "no action",
163
+ "onUpdate": "no action"
164
+ }
165
+ },
166
+ "compositePrimaryKeys": {},
167
+ "uniqueConstraints": {
168
+ "users_email_unique": {
169
+ "name": "users_email_unique",
170
+ "nullsNotDistinct": false,
171
+ "columns": [
172
+ "email"
173
+ ]
174
+ },
175
+ "users_phone_unique": {
176
+ "name": "users_phone_unique",
177
+ "nullsNotDistinct": false,
178
+ "columns": [
179
+ "phone"
180
+ ]
181
+ }
182
+ },
183
+ "policies": {},
184
+ "checkConstraints": {
185
+ "email_or_phone_check": {
186
+ "name": "email_or_phone_check",
187
+ "value": "\"spfn_auth\".\"users\".\"email\" IS NOT NULL OR \"spfn_auth\".\"users\".\"phone\" IS NOT NULL"
188
+ }
189
+ },
190
+ "isRLSEnabled": false
191
+ },
192
+ "spfn_auth.user_social_accounts": {
193
+ "name": "user_social_accounts",
194
+ "schema": "spfn_auth",
195
+ "columns": {
196
+ "id": {
197
+ "name": "id",
198
+ "type": "bigserial",
199
+ "primaryKey": true,
200
+ "notNull": true
201
+ },
202
+ "user_id": {
203
+ "name": "user_id",
204
+ "type": "bigserial",
205
+ "primaryKey": false,
206
+ "notNull": true
207
+ },
208
+ "provider": {
209
+ "name": "provider",
210
+ "type": "text",
211
+ "primaryKey": false,
212
+ "notNull": true
213
+ },
214
+ "provider_user_id": {
215
+ "name": "provider_user_id",
216
+ "type": "text",
217
+ "primaryKey": false,
218
+ "notNull": true
219
+ },
220
+ "provider_email": {
221
+ "name": "provider_email",
222
+ "type": "text",
223
+ "primaryKey": false,
224
+ "notNull": false
225
+ },
226
+ "access_token": {
227
+ "name": "access_token",
228
+ "type": "text",
229
+ "primaryKey": false,
230
+ "notNull": false
231
+ },
232
+ "refresh_token": {
233
+ "name": "refresh_token",
234
+ "type": "text",
235
+ "primaryKey": false,
236
+ "notNull": false
237
+ },
238
+ "token_expires_at": {
239
+ "name": "token_expires_at",
240
+ "type": "timestamp with time zone",
241
+ "primaryKey": false,
242
+ "notNull": false
243
+ },
244
+ "created_at": {
245
+ "name": "created_at",
246
+ "type": "timestamp with time zone",
247
+ "primaryKey": false,
248
+ "notNull": true,
249
+ "default": "now()"
250
+ },
251
+ "updated_at": {
252
+ "name": "updated_at",
253
+ "type": "timestamp with time zone",
254
+ "primaryKey": false,
255
+ "notNull": true,
256
+ "default": "now()"
257
+ }
258
+ },
259
+ "indexes": {
260
+ "provider_user_unique_idx": {
261
+ "name": "provider_user_unique_idx",
262
+ "columns": [
263
+ {
264
+ "expression": "provider",
265
+ "isExpression": false,
266
+ "asc": true,
267
+ "nulls": "last"
268
+ },
269
+ {
270
+ "expression": "provider_user_id",
271
+ "isExpression": false,
272
+ "asc": true,
273
+ "nulls": "last"
274
+ }
275
+ ],
276
+ "isUnique": true,
277
+ "concurrently": false,
278
+ "method": "btree",
279
+ "with": {}
280
+ }
281
+ },
282
+ "foreignKeys": {
283
+ "user_social_accounts_user_id_users_id_fk": {
284
+ "name": "user_social_accounts_user_id_users_id_fk",
285
+ "tableFrom": "user_social_accounts",
286
+ "tableTo": "users",
287
+ "schemaTo": "spfn_auth",
288
+ "columnsFrom": [
289
+ "user_id"
290
+ ],
291
+ "columnsTo": [
292
+ "id"
293
+ ],
294
+ "onDelete": "cascade",
295
+ "onUpdate": "no action"
296
+ }
297
+ },
298
+ "compositePrimaryKeys": {},
299
+ "uniqueConstraints": {},
300
+ "policies": {},
301
+ "checkConstraints": {},
302
+ "isRLSEnabled": false
303
+ },
304
+ "spfn_auth.user_public_keys": {
305
+ "name": "user_public_keys",
306
+ "schema": "spfn_auth",
307
+ "columns": {
308
+ "id": {
309
+ "name": "id",
310
+ "type": "bigserial",
311
+ "primaryKey": true,
312
+ "notNull": true
313
+ },
314
+ "user_id": {
315
+ "name": "user_id",
316
+ "type": "bigserial",
317
+ "primaryKey": false,
318
+ "notNull": true
319
+ },
320
+ "key_id": {
321
+ "name": "key_id",
322
+ "type": "text",
323
+ "primaryKey": false,
324
+ "notNull": true
325
+ },
326
+ "public_key": {
327
+ "name": "public_key",
328
+ "type": "text",
329
+ "primaryKey": false,
330
+ "notNull": true
331
+ },
332
+ "algorithm": {
333
+ "name": "algorithm",
334
+ "type": "text",
335
+ "primaryKey": false,
336
+ "notNull": true,
337
+ "default": "'ES256'"
338
+ },
339
+ "fingerprint": {
340
+ "name": "fingerprint",
341
+ "type": "text",
342
+ "primaryKey": false,
343
+ "notNull": true
344
+ },
345
+ "is_active": {
346
+ "name": "is_active",
347
+ "type": "boolean",
348
+ "primaryKey": false,
349
+ "notNull": true,
350
+ "default": true
351
+ },
352
+ "created_at": {
353
+ "name": "created_at",
354
+ "type": "timestamp with time zone",
355
+ "primaryKey": false,
356
+ "notNull": true,
357
+ "default": "now()"
358
+ },
359
+ "last_used_at": {
360
+ "name": "last_used_at",
361
+ "type": "timestamp with time zone",
362
+ "primaryKey": false,
363
+ "notNull": false
364
+ },
365
+ "expires_at": {
366
+ "name": "expires_at",
367
+ "type": "timestamp with time zone",
368
+ "primaryKey": false,
369
+ "notNull": false
370
+ },
371
+ "revoked_at": {
372
+ "name": "revoked_at",
373
+ "type": "timestamp with time zone",
374
+ "primaryKey": false,
375
+ "notNull": false
376
+ },
377
+ "revoked_reason": {
378
+ "name": "revoked_reason",
379
+ "type": "text",
380
+ "primaryKey": false,
381
+ "notNull": false
382
+ }
383
+ },
384
+ "indexes": {
385
+ "user_public_keys_user_id_idx": {
386
+ "name": "user_public_keys_user_id_idx",
387
+ "columns": [
388
+ {
389
+ "expression": "user_id",
390
+ "isExpression": false,
391
+ "asc": true,
392
+ "nulls": "last"
393
+ }
394
+ ],
395
+ "isUnique": false,
396
+ "concurrently": false,
397
+ "method": "btree",
398
+ "with": {}
399
+ },
400
+ "user_public_keys_key_id_idx": {
401
+ "name": "user_public_keys_key_id_idx",
402
+ "columns": [
403
+ {
404
+ "expression": "key_id",
405
+ "isExpression": false,
406
+ "asc": true,
407
+ "nulls": "last"
408
+ }
409
+ ],
410
+ "isUnique": false,
411
+ "concurrently": false,
412
+ "method": "btree",
413
+ "with": {}
414
+ },
415
+ "user_public_keys_active_idx": {
416
+ "name": "user_public_keys_active_idx",
417
+ "columns": [
418
+ {
419
+ "expression": "is_active",
420
+ "isExpression": false,
421
+ "asc": true,
422
+ "nulls": "last"
423
+ }
424
+ ],
425
+ "isUnique": false,
426
+ "concurrently": false,
427
+ "method": "btree",
428
+ "with": {}
429
+ },
430
+ "user_public_keys_fingerprint_idx": {
431
+ "name": "user_public_keys_fingerprint_idx",
432
+ "columns": [
433
+ {
434
+ "expression": "fingerprint",
435
+ "isExpression": false,
436
+ "asc": true,
437
+ "nulls": "last"
438
+ }
439
+ ],
440
+ "isUnique": false,
441
+ "concurrently": false,
442
+ "method": "btree",
443
+ "with": {}
444
+ }
445
+ },
446
+ "foreignKeys": {
447
+ "user_public_keys_user_id_users_id_fk": {
448
+ "name": "user_public_keys_user_id_users_id_fk",
449
+ "tableFrom": "user_public_keys",
450
+ "tableTo": "users",
451
+ "schemaTo": "spfn_auth",
452
+ "columnsFrom": [
453
+ "user_id"
454
+ ],
455
+ "columnsTo": [
456
+ "id"
457
+ ],
458
+ "onDelete": "cascade",
459
+ "onUpdate": "no action"
460
+ }
461
+ },
462
+ "compositePrimaryKeys": {},
463
+ "uniqueConstraints": {
464
+ "user_public_keys_key_id_unique": {
465
+ "name": "user_public_keys_key_id_unique",
466
+ "nullsNotDistinct": false,
467
+ "columns": [
468
+ "key_id"
469
+ ]
470
+ }
471
+ },
472
+ "policies": {},
473
+ "checkConstraints": {},
474
+ "isRLSEnabled": false
475
+ },
476
+ "spfn_auth.verification_codes": {
477
+ "name": "verification_codes",
478
+ "schema": "spfn_auth",
479
+ "columns": {
480
+ "id": {
481
+ "name": "id",
482
+ "type": "bigserial",
483
+ "primaryKey": true,
484
+ "notNull": true
485
+ },
486
+ "target": {
487
+ "name": "target",
488
+ "type": "text",
489
+ "primaryKey": false,
490
+ "notNull": true
491
+ },
492
+ "target_type": {
493
+ "name": "target_type",
494
+ "type": "text",
495
+ "primaryKey": false,
496
+ "notNull": true
497
+ },
498
+ "code": {
499
+ "name": "code",
500
+ "type": "text",
501
+ "primaryKey": false,
502
+ "notNull": true
503
+ },
504
+ "purpose": {
505
+ "name": "purpose",
506
+ "type": "text",
507
+ "primaryKey": false,
508
+ "notNull": true
509
+ },
510
+ "expires_at": {
511
+ "name": "expires_at",
512
+ "type": "timestamp with time zone",
513
+ "primaryKey": false,
514
+ "notNull": true
515
+ },
516
+ "used_at": {
517
+ "name": "used_at",
518
+ "type": "timestamp with time zone",
519
+ "primaryKey": false,
520
+ "notNull": false
521
+ },
522
+ "attempts": {
523
+ "name": "attempts",
524
+ "type": "text",
525
+ "primaryKey": false,
526
+ "notNull": true,
527
+ "default": "'0'"
528
+ },
529
+ "created_at": {
530
+ "name": "created_at",
531
+ "type": "timestamp with time zone",
532
+ "primaryKey": false,
533
+ "notNull": true,
534
+ "default": "now()"
535
+ },
536
+ "updated_at": {
537
+ "name": "updated_at",
538
+ "type": "timestamp with time zone",
539
+ "primaryKey": false,
540
+ "notNull": true,
541
+ "default": "now()"
542
+ }
543
+ },
544
+ "indexes": {
545
+ "target_purpose_idx": {
546
+ "name": "target_purpose_idx",
547
+ "columns": [
548
+ {
549
+ "expression": "target",
550
+ "isExpression": false,
551
+ "asc": true,
552
+ "nulls": "last"
553
+ },
554
+ {
555
+ "expression": "purpose",
556
+ "isExpression": false,
557
+ "asc": true,
558
+ "nulls": "last"
559
+ },
560
+ {
561
+ "expression": "expires_at",
562
+ "isExpression": false,
563
+ "asc": true,
564
+ "nulls": "last"
565
+ }
566
+ ],
567
+ "isUnique": false,
568
+ "concurrently": false,
569
+ "method": "btree",
570
+ "with": {}
571
+ }
572
+ },
573
+ "foreignKeys": {},
574
+ "compositePrimaryKeys": {},
575
+ "uniqueConstraints": {},
576
+ "policies": {},
577
+ "checkConstraints": {},
578
+ "isRLSEnabled": false
579
+ },
580
+ "spfn_auth.user_invitations": {
581
+ "name": "user_invitations",
582
+ "schema": "spfn_auth",
583
+ "columns": {
584
+ "id": {
585
+ "name": "id",
586
+ "type": "bigserial",
587
+ "primaryKey": true,
588
+ "notNull": true
589
+ },
590
+ "email": {
591
+ "name": "email",
592
+ "type": "text",
593
+ "primaryKey": false,
594
+ "notNull": true
595
+ },
596
+ "token": {
597
+ "name": "token",
598
+ "type": "text",
599
+ "primaryKey": false,
600
+ "notNull": true
601
+ },
602
+ "role_id": {
603
+ "name": "role_id",
604
+ "type": "bigint",
605
+ "primaryKey": false,
606
+ "notNull": true
607
+ },
608
+ "invited_by": {
609
+ "name": "invited_by",
610
+ "type": "bigint",
611
+ "primaryKey": false,
612
+ "notNull": true
613
+ },
614
+ "status": {
615
+ "name": "status",
616
+ "type": "text",
617
+ "primaryKey": false,
618
+ "notNull": true,
619
+ "default": "'pending'"
620
+ },
621
+ "expires_at": {
622
+ "name": "expires_at",
623
+ "type": "timestamp with time zone",
624
+ "primaryKey": false,
625
+ "notNull": true
626
+ },
627
+ "accepted_at": {
628
+ "name": "accepted_at",
629
+ "type": "timestamp with time zone",
630
+ "primaryKey": false,
631
+ "notNull": false
632
+ },
633
+ "cancelled_at": {
634
+ "name": "cancelled_at",
635
+ "type": "timestamp with time zone",
636
+ "primaryKey": false,
637
+ "notNull": false
638
+ },
639
+ "metadata": {
640
+ "name": "metadata",
641
+ "type": "jsonb",
642
+ "primaryKey": false,
643
+ "notNull": false
644
+ },
645
+ "created_at": {
646
+ "name": "created_at",
647
+ "type": "timestamp with time zone",
648
+ "primaryKey": false,
649
+ "notNull": true,
650
+ "default": "now()"
651
+ },
652
+ "updated_at": {
653
+ "name": "updated_at",
654
+ "type": "timestamp with time zone",
655
+ "primaryKey": false,
656
+ "notNull": true,
657
+ "default": "now()"
658
+ }
659
+ },
660
+ "indexes": {
661
+ "invitations_token_idx": {
662
+ "name": "invitations_token_idx",
663
+ "columns": [
664
+ {
665
+ "expression": "token",
666
+ "isExpression": false,
667
+ "asc": true,
668
+ "nulls": "last"
669
+ }
670
+ ],
671
+ "isUnique": false,
672
+ "concurrently": false,
673
+ "method": "btree",
674
+ "with": {}
675
+ },
676
+ "invitations_email_idx": {
677
+ "name": "invitations_email_idx",
678
+ "columns": [
679
+ {
680
+ "expression": "email",
681
+ "isExpression": false,
682
+ "asc": true,
683
+ "nulls": "last"
684
+ }
685
+ ],
686
+ "isUnique": false,
687
+ "concurrently": false,
688
+ "method": "btree",
689
+ "with": {}
690
+ },
691
+ "invitations_status_idx": {
692
+ "name": "invitations_status_idx",
693
+ "columns": [
694
+ {
695
+ "expression": "status",
696
+ "isExpression": false,
697
+ "asc": true,
698
+ "nulls": "last"
699
+ }
700
+ ],
701
+ "isUnique": false,
702
+ "concurrently": false,
703
+ "method": "btree",
704
+ "with": {}
705
+ },
706
+ "invitations_invited_by_idx": {
707
+ "name": "invitations_invited_by_idx",
708
+ "columns": [
709
+ {
710
+ "expression": "invited_by",
711
+ "isExpression": false,
712
+ "asc": true,
713
+ "nulls": "last"
714
+ }
715
+ ],
716
+ "isUnique": false,
717
+ "concurrently": false,
718
+ "method": "btree",
719
+ "with": {}
720
+ },
721
+ "invitations_expires_at_idx": {
722
+ "name": "invitations_expires_at_idx",
723
+ "columns": [
724
+ {
725
+ "expression": "expires_at",
726
+ "isExpression": false,
727
+ "asc": true,
728
+ "nulls": "last"
729
+ }
730
+ ],
731
+ "isUnique": false,
732
+ "concurrently": false,
733
+ "method": "btree",
734
+ "with": {}
735
+ },
736
+ "invitations_role_id_idx": {
737
+ "name": "invitations_role_id_idx",
738
+ "columns": [
739
+ {
740
+ "expression": "role_id",
741
+ "isExpression": false,
742
+ "asc": true,
743
+ "nulls": "last"
744
+ }
745
+ ],
746
+ "isUnique": false,
747
+ "concurrently": false,
748
+ "method": "btree",
749
+ "with": {}
750
+ }
751
+ },
752
+ "foreignKeys": {
753
+ "user_invitations_role_id_roles_id_fk": {
754
+ "name": "user_invitations_role_id_roles_id_fk",
755
+ "tableFrom": "user_invitations",
756
+ "tableTo": "roles",
757
+ "schemaTo": "spfn_auth",
758
+ "columnsFrom": [
759
+ "role_id"
760
+ ],
761
+ "columnsTo": [
762
+ "id"
763
+ ],
764
+ "onDelete": "no action",
765
+ "onUpdate": "no action"
766
+ },
767
+ "user_invitations_invited_by_users_id_fk": {
768
+ "name": "user_invitations_invited_by_users_id_fk",
769
+ "tableFrom": "user_invitations",
770
+ "tableTo": "users",
771
+ "schemaTo": "spfn_auth",
772
+ "columnsFrom": [
773
+ "invited_by"
774
+ ],
775
+ "columnsTo": [
776
+ "id"
777
+ ],
778
+ "onDelete": "no action",
779
+ "onUpdate": "no action"
780
+ }
781
+ },
782
+ "compositePrimaryKeys": {},
783
+ "uniqueConstraints": {
784
+ "user_invitations_token_unique": {
785
+ "name": "user_invitations_token_unique",
786
+ "nullsNotDistinct": false,
787
+ "columns": [
788
+ "token"
789
+ ]
790
+ }
791
+ },
792
+ "policies": {},
793
+ "checkConstraints": {},
794
+ "isRLSEnabled": false
795
+ },
796
+ "spfn_auth.roles": {
797
+ "name": "roles",
798
+ "schema": "spfn_auth",
799
+ "columns": {
800
+ "id": {
801
+ "name": "id",
802
+ "type": "bigserial",
803
+ "primaryKey": true,
804
+ "notNull": true
805
+ },
806
+ "name": {
807
+ "name": "name",
808
+ "type": "text",
809
+ "primaryKey": false,
810
+ "notNull": true
811
+ },
812
+ "display_name": {
813
+ "name": "display_name",
814
+ "type": "text",
815
+ "primaryKey": false,
816
+ "notNull": true
817
+ },
818
+ "description": {
819
+ "name": "description",
820
+ "type": "text",
821
+ "primaryKey": false,
822
+ "notNull": false
823
+ },
824
+ "is_builtin": {
825
+ "name": "is_builtin",
826
+ "type": "boolean",
827
+ "primaryKey": false,
828
+ "notNull": true,
829
+ "default": false
830
+ },
831
+ "is_system": {
832
+ "name": "is_system",
833
+ "type": "boolean",
834
+ "primaryKey": false,
835
+ "notNull": true,
836
+ "default": false
837
+ },
838
+ "is_active": {
839
+ "name": "is_active",
840
+ "type": "boolean",
841
+ "primaryKey": false,
842
+ "notNull": true,
843
+ "default": true
844
+ },
845
+ "priority": {
846
+ "name": "priority",
847
+ "type": "integer",
848
+ "primaryKey": false,
849
+ "notNull": true,
850
+ "default": 10
851
+ },
852
+ "created_at": {
853
+ "name": "created_at",
854
+ "type": "timestamp with time zone",
855
+ "primaryKey": false,
856
+ "notNull": true,
857
+ "default": "now()"
858
+ },
859
+ "updated_at": {
860
+ "name": "updated_at",
861
+ "type": "timestamp with time zone",
862
+ "primaryKey": false,
863
+ "notNull": true,
864
+ "default": "now()"
865
+ }
866
+ },
867
+ "indexes": {
868
+ "roles_name_idx": {
869
+ "name": "roles_name_idx",
870
+ "columns": [
871
+ {
872
+ "expression": "name",
873
+ "isExpression": false,
874
+ "asc": true,
875
+ "nulls": "last"
876
+ }
877
+ ],
878
+ "isUnique": false,
879
+ "concurrently": false,
880
+ "method": "btree",
881
+ "with": {}
882
+ },
883
+ "roles_is_system_idx": {
884
+ "name": "roles_is_system_idx",
885
+ "columns": [
886
+ {
887
+ "expression": "is_system",
888
+ "isExpression": false,
889
+ "asc": true,
890
+ "nulls": "last"
891
+ }
892
+ ],
893
+ "isUnique": false,
894
+ "concurrently": false,
895
+ "method": "btree",
896
+ "with": {}
897
+ },
898
+ "roles_is_active_idx": {
899
+ "name": "roles_is_active_idx",
900
+ "columns": [
901
+ {
902
+ "expression": "is_active",
903
+ "isExpression": false,
904
+ "asc": true,
905
+ "nulls": "last"
906
+ }
907
+ ],
908
+ "isUnique": false,
909
+ "concurrently": false,
910
+ "method": "btree",
911
+ "with": {}
912
+ },
913
+ "roles_is_builtin_idx": {
914
+ "name": "roles_is_builtin_idx",
915
+ "columns": [
916
+ {
917
+ "expression": "is_builtin",
918
+ "isExpression": false,
919
+ "asc": true,
920
+ "nulls": "last"
921
+ }
922
+ ],
923
+ "isUnique": false,
924
+ "concurrently": false,
925
+ "method": "btree",
926
+ "with": {}
927
+ },
928
+ "roles_priority_idx": {
929
+ "name": "roles_priority_idx",
930
+ "columns": [
931
+ {
932
+ "expression": "priority",
933
+ "isExpression": false,
934
+ "asc": true,
935
+ "nulls": "last"
936
+ }
937
+ ],
938
+ "isUnique": false,
939
+ "concurrently": false,
940
+ "method": "btree",
941
+ "with": {}
942
+ }
943
+ },
944
+ "foreignKeys": {},
945
+ "compositePrimaryKeys": {},
946
+ "uniqueConstraints": {
947
+ "roles_name_unique": {
948
+ "name": "roles_name_unique",
949
+ "nullsNotDistinct": false,
950
+ "columns": [
951
+ "name"
952
+ ]
953
+ }
954
+ },
955
+ "policies": {},
956
+ "checkConstraints": {},
957
+ "isRLSEnabled": false
958
+ },
959
+ "spfn_auth.permissions": {
960
+ "name": "permissions",
961
+ "schema": "spfn_auth",
962
+ "columns": {
963
+ "id": {
964
+ "name": "id",
965
+ "type": "bigserial",
966
+ "primaryKey": true,
967
+ "notNull": true
968
+ },
969
+ "name": {
970
+ "name": "name",
971
+ "type": "text",
972
+ "primaryKey": false,
973
+ "notNull": true
974
+ },
975
+ "display_name": {
976
+ "name": "display_name",
977
+ "type": "text",
978
+ "primaryKey": false,
979
+ "notNull": true
980
+ },
981
+ "description": {
982
+ "name": "description",
983
+ "type": "text",
984
+ "primaryKey": false,
985
+ "notNull": false
986
+ },
987
+ "category": {
988
+ "name": "category",
989
+ "type": "text",
990
+ "primaryKey": false,
991
+ "notNull": false
992
+ },
993
+ "is_builtin": {
994
+ "name": "is_builtin",
995
+ "type": "boolean",
996
+ "primaryKey": false,
997
+ "notNull": true,
998
+ "default": false
999
+ },
1000
+ "is_system": {
1001
+ "name": "is_system",
1002
+ "type": "boolean",
1003
+ "primaryKey": false,
1004
+ "notNull": true,
1005
+ "default": false
1006
+ },
1007
+ "is_active": {
1008
+ "name": "is_active",
1009
+ "type": "boolean",
1010
+ "primaryKey": false,
1011
+ "notNull": true,
1012
+ "default": true
1013
+ },
1014
+ "created_at": {
1015
+ "name": "created_at",
1016
+ "type": "timestamp with time zone",
1017
+ "primaryKey": false,
1018
+ "notNull": true,
1019
+ "default": "now()"
1020
+ },
1021
+ "updated_at": {
1022
+ "name": "updated_at",
1023
+ "type": "timestamp with time zone",
1024
+ "primaryKey": false,
1025
+ "notNull": true,
1026
+ "default": "now()"
1027
+ }
1028
+ },
1029
+ "indexes": {
1030
+ "permissions_name_idx": {
1031
+ "name": "permissions_name_idx",
1032
+ "columns": [
1033
+ {
1034
+ "expression": "name",
1035
+ "isExpression": false,
1036
+ "asc": true,
1037
+ "nulls": "last"
1038
+ }
1039
+ ],
1040
+ "isUnique": false,
1041
+ "concurrently": false,
1042
+ "method": "btree",
1043
+ "with": {}
1044
+ },
1045
+ "permissions_category_idx": {
1046
+ "name": "permissions_category_idx",
1047
+ "columns": [
1048
+ {
1049
+ "expression": "category",
1050
+ "isExpression": false,
1051
+ "asc": true,
1052
+ "nulls": "last"
1053
+ }
1054
+ ],
1055
+ "isUnique": false,
1056
+ "concurrently": false,
1057
+ "method": "btree",
1058
+ "with": {}
1059
+ },
1060
+ "permissions_is_system_idx": {
1061
+ "name": "permissions_is_system_idx",
1062
+ "columns": [
1063
+ {
1064
+ "expression": "is_system",
1065
+ "isExpression": false,
1066
+ "asc": true,
1067
+ "nulls": "last"
1068
+ }
1069
+ ],
1070
+ "isUnique": false,
1071
+ "concurrently": false,
1072
+ "method": "btree",
1073
+ "with": {}
1074
+ },
1075
+ "permissions_is_active_idx": {
1076
+ "name": "permissions_is_active_idx",
1077
+ "columns": [
1078
+ {
1079
+ "expression": "is_active",
1080
+ "isExpression": false,
1081
+ "asc": true,
1082
+ "nulls": "last"
1083
+ }
1084
+ ],
1085
+ "isUnique": false,
1086
+ "concurrently": false,
1087
+ "method": "btree",
1088
+ "with": {}
1089
+ },
1090
+ "permissions_is_builtin_idx": {
1091
+ "name": "permissions_is_builtin_idx",
1092
+ "columns": [
1093
+ {
1094
+ "expression": "is_builtin",
1095
+ "isExpression": false,
1096
+ "asc": true,
1097
+ "nulls": "last"
1098
+ }
1099
+ ],
1100
+ "isUnique": false,
1101
+ "concurrently": false,
1102
+ "method": "btree",
1103
+ "with": {}
1104
+ }
1105
+ },
1106
+ "foreignKeys": {},
1107
+ "compositePrimaryKeys": {},
1108
+ "uniqueConstraints": {
1109
+ "permissions_name_unique": {
1110
+ "name": "permissions_name_unique",
1111
+ "nullsNotDistinct": false,
1112
+ "columns": [
1113
+ "name"
1114
+ ]
1115
+ }
1116
+ },
1117
+ "policies": {},
1118
+ "checkConstraints": {},
1119
+ "isRLSEnabled": false
1120
+ },
1121
+ "spfn_auth.role_permissions": {
1122
+ "name": "role_permissions",
1123
+ "schema": "spfn_auth",
1124
+ "columns": {
1125
+ "id": {
1126
+ "name": "id",
1127
+ "type": "bigserial",
1128
+ "primaryKey": true,
1129
+ "notNull": true
1130
+ },
1131
+ "role_id": {
1132
+ "name": "role_id",
1133
+ "type": "bigint",
1134
+ "primaryKey": false,
1135
+ "notNull": true
1136
+ },
1137
+ "permission_id": {
1138
+ "name": "permission_id",
1139
+ "type": "bigint",
1140
+ "primaryKey": false,
1141
+ "notNull": true
1142
+ },
1143
+ "created_at": {
1144
+ "name": "created_at",
1145
+ "type": "timestamp with time zone",
1146
+ "primaryKey": false,
1147
+ "notNull": true,
1148
+ "default": "now()"
1149
+ },
1150
+ "updated_at": {
1151
+ "name": "updated_at",
1152
+ "type": "timestamp with time zone",
1153
+ "primaryKey": false,
1154
+ "notNull": true,
1155
+ "default": "now()"
1156
+ }
1157
+ },
1158
+ "indexes": {
1159
+ "role_permissions_role_id_idx": {
1160
+ "name": "role_permissions_role_id_idx",
1161
+ "columns": [
1162
+ {
1163
+ "expression": "role_id",
1164
+ "isExpression": false,
1165
+ "asc": true,
1166
+ "nulls": "last"
1167
+ }
1168
+ ],
1169
+ "isUnique": false,
1170
+ "concurrently": false,
1171
+ "method": "btree",
1172
+ "with": {}
1173
+ },
1174
+ "role_permissions_permission_id_idx": {
1175
+ "name": "role_permissions_permission_id_idx",
1176
+ "columns": [
1177
+ {
1178
+ "expression": "permission_id",
1179
+ "isExpression": false,
1180
+ "asc": true,
1181
+ "nulls": "last"
1182
+ }
1183
+ ],
1184
+ "isUnique": false,
1185
+ "concurrently": false,
1186
+ "method": "btree",
1187
+ "with": {}
1188
+ }
1189
+ },
1190
+ "foreignKeys": {
1191
+ "role_permissions_role_id_roles_id_fk": {
1192
+ "name": "role_permissions_role_id_roles_id_fk",
1193
+ "tableFrom": "role_permissions",
1194
+ "tableTo": "roles",
1195
+ "schemaTo": "spfn_auth",
1196
+ "columnsFrom": [
1197
+ "role_id"
1198
+ ],
1199
+ "columnsTo": [
1200
+ "id"
1201
+ ],
1202
+ "onDelete": "cascade",
1203
+ "onUpdate": "no action"
1204
+ },
1205
+ "role_permissions_permission_id_permissions_id_fk": {
1206
+ "name": "role_permissions_permission_id_permissions_id_fk",
1207
+ "tableFrom": "role_permissions",
1208
+ "tableTo": "permissions",
1209
+ "schemaTo": "spfn_auth",
1210
+ "columnsFrom": [
1211
+ "permission_id"
1212
+ ],
1213
+ "columnsTo": [
1214
+ "id"
1215
+ ],
1216
+ "onDelete": "cascade",
1217
+ "onUpdate": "no action"
1218
+ }
1219
+ },
1220
+ "compositePrimaryKeys": {},
1221
+ "uniqueConstraints": {
1222
+ "role_permissions_unique": {
1223
+ "name": "role_permissions_unique",
1224
+ "nullsNotDistinct": false,
1225
+ "columns": [
1226
+ "role_id",
1227
+ "permission_id"
1228
+ ]
1229
+ }
1230
+ },
1231
+ "policies": {},
1232
+ "checkConstraints": {},
1233
+ "isRLSEnabled": false
1234
+ },
1235
+ "spfn_auth.user_permissions": {
1236
+ "name": "user_permissions",
1237
+ "schema": "spfn_auth",
1238
+ "columns": {
1239
+ "id": {
1240
+ "name": "id",
1241
+ "type": "bigserial",
1242
+ "primaryKey": true,
1243
+ "notNull": true
1244
+ },
1245
+ "user_id": {
1246
+ "name": "user_id",
1247
+ "type": "bigint",
1248
+ "primaryKey": false,
1249
+ "notNull": true
1250
+ },
1251
+ "permission_id": {
1252
+ "name": "permission_id",
1253
+ "type": "bigint",
1254
+ "primaryKey": false,
1255
+ "notNull": true
1256
+ },
1257
+ "granted": {
1258
+ "name": "granted",
1259
+ "type": "boolean",
1260
+ "primaryKey": false,
1261
+ "notNull": true,
1262
+ "default": true
1263
+ },
1264
+ "reason": {
1265
+ "name": "reason",
1266
+ "type": "text",
1267
+ "primaryKey": false,
1268
+ "notNull": false
1269
+ },
1270
+ "expires_at": {
1271
+ "name": "expires_at",
1272
+ "type": "timestamp with time zone",
1273
+ "primaryKey": false,
1274
+ "notNull": false
1275
+ },
1276
+ "created_at": {
1277
+ "name": "created_at",
1278
+ "type": "timestamp with time zone",
1279
+ "primaryKey": false,
1280
+ "notNull": true,
1281
+ "default": "now()"
1282
+ },
1283
+ "updated_at": {
1284
+ "name": "updated_at",
1285
+ "type": "timestamp with time zone",
1286
+ "primaryKey": false,
1287
+ "notNull": true,
1288
+ "default": "now()"
1289
+ }
1290
+ },
1291
+ "indexes": {
1292
+ "user_permissions_user_id_idx": {
1293
+ "name": "user_permissions_user_id_idx",
1294
+ "columns": [
1295
+ {
1296
+ "expression": "user_id",
1297
+ "isExpression": false,
1298
+ "asc": true,
1299
+ "nulls": "last"
1300
+ }
1301
+ ],
1302
+ "isUnique": false,
1303
+ "concurrently": false,
1304
+ "method": "btree",
1305
+ "with": {}
1306
+ },
1307
+ "user_permissions_permission_id_idx": {
1308
+ "name": "user_permissions_permission_id_idx",
1309
+ "columns": [
1310
+ {
1311
+ "expression": "permission_id",
1312
+ "isExpression": false,
1313
+ "asc": true,
1314
+ "nulls": "last"
1315
+ }
1316
+ ],
1317
+ "isUnique": false,
1318
+ "concurrently": false,
1319
+ "method": "btree",
1320
+ "with": {}
1321
+ },
1322
+ "user_permissions_expires_at_idx": {
1323
+ "name": "user_permissions_expires_at_idx",
1324
+ "columns": [
1325
+ {
1326
+ "expression": "expires_at",
1327
+ "isExpression": false,
1328
+ "asc": true,
1329
+ "nulls": "last"
1330
+ }
1331
+ ],
1332
+ "isUnique": false,
1333
+ "concurrently": false,
1334
+ "method": "btree",
1335
+ "with": {}
1336
+ }
1337
+ },
1338
+ "foreignKeys": {
1339
+ "user_permissions_user_id_users_id_fk": {
1340
+ "name": "user_permissions_user_id_users_id_fk",
1341
+ "tableFrom": "user_permissions",
1342
+ "tableTo": "users",
1343
+ "schemaTo": "spfn_auth",
1344
+ "columnsFrom": [
1345
+ "user_id"
1346
+ ],
1347
+ "columnsTo": [
1348
+ "id"
1349
+ ],
1350
+ "onDelete": "cascade",
1351
+ "onUpdate": "no action"
1352
+ },
1353
+ "user_permissions_permission_id_permissions_id_fk": {
1354
+ "name": "user_permissions_permission_id_permissions_id_fk",
1355
+ "tableFrom": "user_permissions",
1356
+ "tableTo": "permissions",
1357
+ "schemaTo": "spfn_auth",
1358
+ "columnsFrom": [
1359
+ "permission_id"
1360
+ ],
1361
+ "columnsTo": [
1362
+ "id"
1363
+ ],
1364
+ "onDelete": "cascade",
1365
+ "onUpdate": "no action"
1366
+ }
1367
+ },
1368
+ "compositePrimaryKeys": {},
1369
+ "uniqueConstraints": {
1370
+ "user_permissions_unique": {
1371
+ "name": "user_permissions_unique",
1372
+ "nullsNotDistinct": false,
1373
+ "columns": [
1374
+ "user_id",
1375
+ "permission_id"
1376
+ ]
1377
+ }
1378
+ },
1379
+ "policies": {},
1380
+ "checkConstraints": {},
1381
+ "isRLSEnabled": false
1382
+ }
1383
+ },
1384
+ "enums": {},
1385
+ "schemas": {},
1386
+ "sequences": {},
1387
+ "roles": {},
1388
+ "policies": {},
1389
+ "views": {},
1390
+ "_meta": {
1391
+ "columns": {},
1392
+ "schemas": {},
1393
+ "tables": {}
1394
+ }
1395
+ }