CHORE:CLEANUP

This commit is contained in:
Damien Ostler 2024-05-26 13:31:18 -04:00
parent 7a568aa8d0
commit ca13aa4ae9
10 changed files with 2 additions and 1285 deletions

707
.gitignore vendored
View File

@ -14,713 +14,10 @@ yarn-error.log*
/.next /.next
/data /data
/supabase/volumes/db/data/*
#local env files #local env files
.env*.local .env*.local
/maildev /maildev
/owncast /owncast
/coverage /coverage
supabase/volumes/db/data/postmaster.pid /supabase/volumes/db/data
supabase/volumes/db/data/pg_xact/0000
supabase/volumes/db/data/pg_wal/000000010000000000000002
supabase/volumes/db/data/pg_wal/000000010000000000000001
supabase/volumes/db/data/pg_subtrans/0000
supabase/volumes/db/data/pg_stat_tmp/pgss_query_texts.stat
supabase/volumes/db/data/pg_logical/snapshots/0-1DE05B0.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1DD4DA8.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1DD4CF8.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1DD4CC0.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1DD4BF0.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1DD4B40.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1DD4B08.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1DD4A38.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1DAEA38.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1DAA9F0.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1DAA940.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1DA41B8.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1D911B0.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1D86E40.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1D821B0.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1D53E20.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1D51FE0.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1D51F10.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1D50F10.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1D4F3A0.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1D4CDD8.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1D48180.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1D48148.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1D33CD8.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1D33248.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1D311E0.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1D2A8C0.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1CEF2B8.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1CEF218.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1CEF168.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1CEF130.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1CECFF0.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1CEB9B8.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1CD3990.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1CD2988.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1CD28D8.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1CD2808.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1CD0BA8.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1CCDBE0.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1CCB568.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1CC8940.snap
supabase/volumes/db/data/global/pg_internal.init
supabase/volumes/db/data/global/pg_control
supabase/volumes/db/data/global/2964
supabase/volumes/db/data/global/2695
supabase/volumes/db/data/global/2694
supabase/volumes/db/data/global/2677
supabase/volumes/db/data/global/2676
supabase/volumes/db/data/global/1261
supabase/volumes/db/data/global/1260
supabase/volumes/db/data/global/1233
supabase/volumes/db/data/global/1232
supabase/volumes/db/data/global/1214_vm
supabase/volumes/db/data/global/1214_fsm
supabase/volumes/db/data/global/1214
supabase/volumes/db/data/base/5/pg_internal.init
supabase/volumes/db/data/base/5/826
supabase/volumes/db/data/base/5/6116
supabase/volumes/db/data/base/5/6113
supabase/volumes/db/data/base/5/6112
supabase/volumes/db/data/base/5/6111
supabase/volumes/db/data/base/5/6110
supabase/volumes/db/data/base/5/6106
supabase/volumes/db/data/base/5/6104
supabase/volumes/db/data/base/5/5002
supabase/volumes/db/data/base/5/3596
supabase/volumes/db/data/base/5/3534
supabase/volumes/db/data/base/5/3503
supabase/volumes/db/data/base/5/3502
supabase/volumes/db/data/base/5/3501
supabase/volumes/db/data/base/5/3455
supabase/volumes/db/data/base/5/2841
supabase/volumes/db/data/base/5/2840_vm
supabase/volumes/db/data/base/5/2840_fsm
supabase/volumes/db/data/base/5/2840
supabase/volumes/db/data/base/5/2838
supabase/volumes/db/data/base/5/2837
supabase/volumes/db/data/base/5/2836_vm
supabase/volumes/db/data/base/5/2836_fsm
supabase/volumes/db/data/base/5/2836
supabase/volumes/db/data/base/5/2704
supabase/volumes/db/data/base/5/2703
supabase/volumes/db/data/base/5/2702
supabase/volumes/db/data/base/5/2701
supabase/volumes/db/data/base/5/2699
supabase/volumes/db/data/base/5/2696
supabase/volumes/db/data/base/5/2693
supabase/volumes/db/data/base/5/2691
supabase/volumes/db/data/base/5/2690
supabase/volumes/db/data/base/5/2685
supabase/volumes/db/data/base/5/2684
supabase/volumes/db/data/base/5/2679
supabase/volumes/db/data/base/5/2678
supabase/volumes/db/data/base/5/2675
supabase/volumes/db/data/base/5/2674
supabase/volumes/db/data/base/5/2673
supabase/volumes/db/data/base/5/2667
supabase/volumes/db/data/base/5/2666
supabase/volumes/db/data/base/5/2665
supabase/volumes/db/data/base/5/2664
supabase/volumes/db/data/base/5/2663
supabase/volumes/db/data/base/5/2662
supabase/volumes/db/data/base/5/2659
supabase/volumes/db/data/base/5/2658
supabase/volumes/db/data/base/5/2657
supabase/volumes/db/data/base/5/2656
supabase/volumes/db/data/base/5/2620_vm
supabase/volumes/db/data/base/5/2620_fsm
supabase/volumes/db/data/base/5/2620
supabase/volumes/db/data/base/5/2619_vm
supabase/volumes/db/data/base/5/2619_fsm
supabase/volumes/db/data/base/5/2619
supabase/volumes/db/data/base/5/2618
supabase/volumes/db/data/base/5/2615
supabase/volumes/db/data/base/5/2610_fsm
supabase/volumes/db/data/base/5/2610
supabase/volumes/db/data/base/5/2609
supabase/volumes/db/data/base/5/2608_vm
supabase/volumes/db/data/base/5/2608_fsm
supabase/volumes/db/data/base/5/2608
supabase/volumes/db/data/base/5/2606_fsm
supabase/volumes/db/data/base/5/2606
supabase/volumes/db/data/base/5/2604_fsm
supabase/volumes/db/data/base/5/2604
supabase/volumes/db/data/base/5/2600
supabase/volumes/db/data/base/5/2579
supabase/volumes/db/data/base/5/2224
supabase/volumes/db/data/base/5/18190
supabase/volumes/db/data/base/5/18176
supabase/volumes/db/data/base/5/18165
supabase/volumes/db/data/base/5/18143
supabase/volumes/db/data/base/5/18133
supabase/volumes/db/data/base/5/18132
supabase/volumes/db/data/base/5/18131
supabase/volumes/db/data/base/5/18130
supabase/volumes/db/data/base/5/18129
supabase/volumes/db/data/base/5/18128
supabase/volumes/db/data/base/5/18127
supabase/volumes/db/data/base/5/18098
supabase/volumes/db/data/base/5/18096
supabase/volumes/db/data/base/5/18094
supabase/volumes/db/data/base/5/18093
supabase/volumes/db/data/base/5/18092
supabase/volumes/db/data/base/5/18087
supabase/volumes/db/data/base/5/18086
supabase/volumes/db/data/base/5/18067
supabase/volumes/db/data/base/5/18064
supabase/volumes/db/data/base/5/18047
supabase/volumes/db/data/base/5/18035
supabase/volumes/db/data/base/5/18034
supabase/volumes/db/data/base/5/18033
supabase/volumes/db/data/base/5/18027
supabase/volumes/db/data/base/5/18020
supabase/volumes/db/data/base/5/18019
supabase/volumes/db/data/base/5/18018
supabase/volumes/db/data/base/5/18013
supabase/volumes/db/data/base/5/17953
supabase/volumes/db/data/base/5/17951
supabase/volumes/db/data/base/5/17944
supabase/volumes/db/data/base/5/17939
supabase/volumes/db/data/base/5/17938
supabase/volumes/db/data/base/5/17936
supabase/volumes/db/data/base/5/17930
supabase/volumes/db/data/base/5/17928
supabase/volumes/db/data/base/5/17925
supabase/volumes/db/data/base/5/17923
supabase/volumes/db/data/base/5/17922
supabase/volumes/db/data/base/5/17893
supabase/volumes/db/data/base/5/17890
supabase/volumes/db/data/base/5/17889
supabase/volumes/db/data/base/5/17888
supabase/volumes/db/data/base/5/17887
supabase/volumes/db/data/base/5/17882
supabase/volumes/db/data/base/5/17880
supabase/volumes/db/data/base/5/17847
supabase/volumes/db/data/base/5/17846
supabase/volumes/db/data/base/5/17845
supabase/volumes/db/data/base/5/17844
supabase/volumes/db/data/base/5/17843
supabase/volumes/db/data/base/5/17840
supabase/volumes/db/data/base/5/17838
supabase/volumes/db/data/base/5/17836
supabase/volumes/db/data/base/5/17835
supabase/volumes/db/data/base/5/17823
supabase/volumes/db/data/base/5/17819
supabase/volumes/db/data/base/5/17675
supabase/volumes/db/data/base/5/17674
supabase/volumes/db/data/base/5/17659
supabase/volumes/db/data/base/5/17658
supabase/volumes/db/data/base/5/17657
supabase/volumes/db/data/base/5/17654
supabase/volumes/db/data/base/5/17650
supabase/volumes/db/data/base/5/17649
supabase/volumes/db/data/base/5/17648
supabase/volumes/db/data/base/5/17647
supabase/volumes/db/data/base/5/17646
supabase/volumes/db/data/base/5/17641
supabase/volumes/db/data/base/5/17638
supabase/volumes/db/data/base/5/17626
supabase/volumes/db/data/base/5/17623
supabase/volumes/db/data/base/5/17621
supabase/volumes/db/data/base/5/17616_fsm
supabase/volumes/db/data/base/5/17616
supabase/volumes/db/data/base/5/17614
supabase/volumes/db/data/base/5/17611
supabase/volumes/db/data/base/5/17609
supabase/volumes/db/data/base/5/17604
supabase/volumes/db/data/base/5/17602
supabase/volumes/db/data/base/5/17599
supabase/volumes/db/data/base/5/17590
supabase/volumes/db/data/base/5/17587
supabase/volumes/db/data/base/5/17585
supabase/volumes/db/data/base/5/17580_fsm
supabase/volumes/db/data/base/5/17580
supabase/volumes/db/data/base/5/17578
supabase/volumes/db/data/base/5/17575
supabase/volumes/db/data/base/5/17566
supabase/volumes/db/data/base/5/17563
supabase/volumes/db/data/base/5/17554
supabase/volumes/db/data/base/5/17551
supabase/volumes/db/data/base/5/17549
supabase/volumes/db/data/base/5/17544_fsm
supabase/volumes/db/data/base/5/17544
supabase/volumes/db/data/base/5/17542
supabase/volumes/db/data/base/5/17539
supabase/volumes/db/data/base/5/17537
supabase/volumes/db/data/base/5/17532_fsm
supabase/volumes/db/data/base/5/17532
supabase/volumes/db/data/base/5/17530
supabase/volumes/db/data/base/5/17527
supabase/volumes/db/data/base/5/17508
supabase/volumes/db/data/base/5/17499
supabase/volumes/db/data/base/5/17498
supabase/volumes/db/data/base/5/17482
supabase/volumes/db/data/base/5/17476
supabase/volumes/db/data/base/5/17475
supabase/volumes/db/data/base/5/17465
supabase/volumes/db/data/base/5/17464
supabase/volumes/db/data/base/5/17437
supabase/volumes/db/data/base/5/17435
supabase/volumes/db/data/base/5/17434
supabase/volumes/db/data/base/5/17427
supabase/volumes/db/data/base/5/17421
supabase/volumes/db/data/base/5/17420
supabase/volumes/db/data/base/5/17401
supabase/volumes/db/data/base/5/17376
supabase/volumes/db/data/base/5/17373
supabase/volumes/db/data/base/5/17372
supabase/volumes/db/data/base/5/17360
supabase/volumes/db/data/base/5/17356
supabase/volumes/db/data/base/5/17355
supabase/volumes/db/data/base/5/17350
supabase/volumes/db/data/base/5/17336
supabase/volumes/db/data/base/5/17325
supabase/volumes/db/data/base/5/17319
supabase/volumes/db/data/base/5/17318
supabase/volumes/db/data/base/5/17302
supabase/volumes/db/data/base/5/17277
supabase/volumes/db/data/base/5/17272
supabase/volumes/db/data/base/5/17270
supabase/volumes/db/data/base/5/17252
supabase/volumes/db/data/base/5/17245
supabase/volumes/db/data/base/5/17241
supabase/volumes/db/data/base/5/17240
supabase/volumes/db/data/base/5/17226
supabase/volumes/db/data/base/5/17225
supabase/volumes/db/data/base/5/17222
supabase/volumes/db/data/base/5/17220
supabase/volumes/db/data/base/5/17216
supabase/volumes/db/data/base/5/17215
supabase/volumes/db/data/base/5/17212
supabase/volumes/db/data/base/5/17211
supabase/volumes/db/data/base/5/17210
supabase/volumes/db/data/base/5/17209
supabase/volumes/db/data/base/5/17208
supabase/volumes/db/data/base/5/17203
supabase/volumes/db/data/base/5/17192
supabase/volumes/db/data/base/5/17163
supabase/volumes/db/data/base/5/17156
supabase/volumes/db/data/base/5/17137
supabase/volumes/db/data/base/5/17122
supabase/volumes/db/data/base/5/17110
supabase/volumes/db/data/base/5/17109
supabase/volumes/db/data/base/5/17108
supabase/volumes/db/data/base/5/17095
supabase/volumes/db/data/base/5/17094
supabase/volumes/db/data/base/5/17093
supabase/volumes/db/data/base/5/17092
supabase/volumes/db/data/base/5/17085
supabase/volumes/db/data/base/5/17081
supabase/volumes/db/data/base/5/17080
supabase/volumes/db/data/base/5/17078
supabase/volumes/db/data/base/5/17072
supabase/volumes/db/data/base/5/17071
supabase/volumes/db/data/base/5/17069
supabase/volumes/db/data/base/5/17066
supabase/volumes/db/data/base/5/17058
supabase/volumes/db/data/base/5/16557
supabase/volumes/db/data/base/5/16555
supabase/volumes/db/data/base/5/16551
supabase/volumes/db/data/base/5/16546
supabase/volumes/db/data/base/5/16545
supabase/volumes/db/data/base/5/16533
supabase/volumes/db/data/base/5/16532
supabase/volumes/db/data/base/5/16531
supabase/volumes/db/data/base/5/16524
supabase/volumes/db/data/base/5/16523
supabase/volumes/db/data/base/5/16516
supabase/volumes/db/data/base/5/16515
supabase/volumes/db/data/base/5/16514
supabase/volumes/db/data/base/5/16509
supabase/volumes/db/data/base/5/16499
supabase/volumes/db/data/base/5/16496
supabase/volumes/db/data/base/5/16495
supabase/volumes/db/data/base/5/16493
supabase/volumes/db/data/base/5/16488
supabase/volumes/db/data/base/5/16480
supabase/volumes/db/data/base/5/16468
supabase/volumes/db/data/base/5/16467
supabase/volumes/db/data/base/5/16465
supabase/volumes/db/data/base/5/16463
supabase/volumes/db/data/base/5/16462
supabase/volumes/db/data/base/5/16461
supabase/volumes/db/data/base/5/16458
supabase/volumes/db/data/base/5/1259_vm
supabase/volumes/db/data/base/5/1259_fsm
supabase/volumes/db/data/base/5/1259
supabase/volumes/db/data/base/5/1255_fsm
supabase/volumes/db/data/base/5/1255
supabase/volumes/db/data/base/5/1249_vm
supabase/volumes/db/data/base/5/1249_fsm
supabase/volumes/db/data/base/5/1249
supabase/volumes/db/data/base/5/1247_fsm
supabase/volumes/db/data/base/5/1247
supabase/volumes/db/data/base/1/pg_internal.init
supabase/volumes/db/data/base/1/2841
supabase/volumes/db/data/base/1/2840_vm
supabase/volumes/db/data/base/1/2840_fsm
supabase/volumes/db/data/base/1/2840
supabase/volumes/db/data/base/1/2696
supabase/volumes/db/data/base/1/2619_vm
supabase/volumes/db/data/base/1/2619_fsm
supabase/volumes/db/data/base/1/2619
supabase/volumes/db/data/base/1/1259
supabase/volumes/db/data/postmaster.pid
supabase/volumes/db/data/pg_xact/0000
supabase/volumes/db/data/pg_wal/000000010000000000000003
supabase/volumes/db/data/pg_wal/000000010000000000000001
supabase/volumes/db/data/pg_subtrans/0000
supabase/volumes/db/data/pg_stat_tmp/pgss_query_texts.stat
supabase/volumes/db/data/pg_replslot/cainophile_s38zcwp1/state
supabase/volumes/db/data/pg_replslot/cainophile_geatpn94/state
supabase/volumes/db/data/pg_logical/snapshots/0-219E100.snap
supabase/volumes/db/data/pg_logical/snapshots/0-219E030.snap
supabase/volumes/db/data/pg_logical/snapshots/0-219DF68.snap
supabase/volumes/db/data/pg_logical/snapshots/0-219DF30.snap
supabase/volumes/db/data/pg_logical/snapshots/0-219C118.snap
supabase/volumes/db/data/pg_logical/snapshots/0-219B090.snap
supabase/volumes/db/data/pg_logical/snapshots/0-218F998.snap
supabase/volumes/db/data/pg_logical/snapshots/0-218E538.snap
supabase/volumes/db/data/pg_logical/snapshots/0-2188658.snap
supabase/volumes/db/data/pg_logical/snapshots/0-2181458.snap
supabase/volumes/db/data/pg_logical/snapshots/0-2180B58.snap
supabase/volumes/db/data/pg_logical/snapshots/0-2177990.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1CC28B0.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1CBC9C0.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1CB8D18.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1CA97A8.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1C9FDD8.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1C44448.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1C247B0.snap
supabase/volumes/db/data/pg_logical/snapshots/0-1BB38E0.snap
supabase/volumes/db/data/global/pg_control
supabase/volumes/db/data/global/2964
supabase/volumes/db/data/global/2695
supabase/volumes/db/data/global/2694
supabase/volumes/db/data/global/2677
supabase/volumes/db/data/global/2676
supabase/volumes/db/data/global/1261
supabase/volumes/db/data/global/1260
supabase/volumes/db/data/global/1233
supabase/volumes/db/data/global/1232
supabase/volumes/db/data/global/1214_vm
supabase/volumes/db/data/global/1214_fsm
supabase/volumes/db/data/global/1214
supabase/volumes/db/data/base/5/6116
supabase/volumes/db/data/base/5/6113
supabase/volumes/db/data/base/5/6112
supabase/volumes/db/data/base/5/6111
supabase/volumes/db/data/base/5/6110
supabase/volumes/db/data/base/5/6106
supabase/volumes/db/data/base/5/6104
supabase/volumes/db/data/base/5/5002
supabase/volumes/db/data/base/5/3534
supabase/volumes/db/data/base/5/3503
supabase/volumes/db/data/base/5/3502
supabase/volumes/db/data/base/5/3501
supabase/volumes/db/data/base/5/3455
supabase/volumes/db/data/base/5/2841
supabase/volumes/db/data/base/5/2840_vm
supabase/volumes/db/data/base/5/2840_fsm
supabase/volumes/db/data/base/5/2840
supabase/volumes/db/data/base/5/2838_fsm
supabase/volumes/db/data/base/5/2838
supabase/volumes/db/data/base/5/2837
supabase/volumes/db/data/base/5/2836_vm
supabase/volumes/db/data/base/5/2836_fsm
supabase/volumes/db/data/base/5/2836
supabase/volumes/db/data/base/5/2704
supabase/volumes/db/data/base/5/2703
supabase/volumes/db/data/base/5/2702
supabase/volumes/db/data/base/5/2701
supabase/volumes/db/data/base/5/2699
supabase/volumes/db/data/base/5/2696
supabase/volumes/db/data/base/5/2693
supabase/volumes/db/data/base/5/2691
supabase/volumes/db/data/base/5/2690
supabase/volumes/db/data/base/5/2685
supabase/volumes/db/data/base/5/2684
supabase/volumes/db/data/base/5/2679
supabase/volumes/db/data/base/5/2678
supabase/volumes/db/data/base/5/2675
supabase/volumes/db/data/base/5/2674
supabase/volumes/db/data/base/5/2673
supabase/volumes/db/data/base/5/2667
supabase/volumes/db/data/base/5/2666
supabase/volumes/db/data/base/5/2665
supabase/volumes/db/data/base/5/2664
supabase/volumes/db/data/base/5/2663
supabase/volumes/db/data/base/5/2662
supabase/volumes/db/data/base/5/2659
supabase/volumes/db/data/base/5/2658
supabase/volumes/db/data/base/5/2657
supabase/volumes/db/data/base/5/2656
supabase/volumes/db/data/base/5/2620_vm
supabase/volumes/db/data/base/5/2620_fsm
supabase/volumes/db/data/base/5/2620
supabase/volumes/db/data/base/5/2619_vm
supabase/volumes/db/data/base/5/2619_fsm
supabase/volumes/db/data/base/5/2619
supabase/volumes/db/data/base/5/2618_fsm
supabase/volumes/db/data/base/5/2618
supabase/volumes/db/data/base/5/2615
supabase/volumes/db/data/base/5/2610_fsm
supabase/volumes/db/data/base/5/2610
supabase/volumes/db/data/base/5/2609_fsm
supabase/volumes/db/data/base/5/2609
supabase/volumes/db/data/base/5/2608_vm
supabase/volumes/db/data/base/5/2608_fsm
supabase/volumes/db/data/base/5/2608
supabase/volumes/db/data/base/5/2606_fsm
supabase/volumes/db/data/base/5/2606
supabase/volumes/db/data/base/5/2604_fsm
supabase/volumes/db/data/base/5/2604
supabase/volumes/db/data/base/5/2600_fsm
supabase/volumes/db/data/base/5/2600
supabase/volumes/db/data/base/5/2579
supabase/volumes/db/data/base/5/2224
supabase/volumes/db/data/base/5/18190
supabase/volumes/db/data/base/5/18176
supabase/volumes/db/data/base/5/18165
supabase/volumes/db/data/base/5/18143
supabase/volumes/db/data/base/5/18133
supabase/volumes/db/data/base/5/18132
supabase/volumes/db/data/base/5/18131
supabase/volumes/db/data/base/5/18130
supabase/volumes/db/data/base/5/18129
supabase/volumes/db/data/base/5/18128
supabase/volumes/db/data/base/5/18127
supabase/volumes/db/data/base/5/18098
supabase/volumes/db/data/base/5/18096
supabase/volumes/db/data/base/5/18094
supabase/volumes/db/data/base/5/18093
supabase/volumes/db/data/base/5/18092
supabase/volumes/db/data/base/5/18087
supabase/volumes/db/data/base/5/18086
supabase/volumes/db/data/base/5/18067
supabase/volumes/db/data/base/5/18064
supabase/volumes/db/data/base/5/18047
supabase/volumes/db/data/base/5/18035
supabase/volumes/db/data/base/5/18034
supabase/volumes/db/data/base/5/18033
supabase/volumes/db/data/base/5/18027
supabase/volumes/db/data/base/5/18020
supabase/volumes/db/data/base/5/18019
supabase/volumes/db/data/base/5/18018
supabase/volumes/db/data/base/5/18013
supabase/volumes/db/data/base/5/17953
supabase/volumes/db/data/base/5/17951
supabase/volumes/db/data/base/5/17944
supabase/volumes/db/data/base/5/17939
supabase/volumes/db/data/base/5/17938
supabase/volumes/db/data/base/5/17936
supabase/volumes/db/data/base/5/17930
supabase/volumes/db/data/base/5/17928
supabase/volumes/db/data/base/5/17925
supabase/volumes/db/data/base/5/17924
supabase/volumes/db/data/base/5/17923
supabase/volumes/db/data/base/5/17922
supabase/volumes/db/data/base/5/17915
supabase/volumes/db/data/base/5/17907
supabase/volumes/db/data/base/5/17893
supabase/volumes/db/data/base/5/17890
supabase/volumes/db/data/base/5/17889
supabase/volumes/db/data/base/5/17888
supabase/volumes/db/data/base/5/17887
supabase/volumes/db/data/base/5/17882
supabase/volumes/db/data/base/5/17880
supabase/volumes/db/data/base/5/17869
supabase/volumes/db/data/base/5/17867
supabase/volumes/db/data/base/5/17866
supabase/volumes/db/data/base/5/17865
supabase/volumes/db/data/base/5/17864
supabase/volumes/db/data/base/5/17862
supabase/volumes/db/data/base/5/17857
supabase/volumes/db/data/base/5/17847
supabase/volumes/db/data/base/5/17846
supabase/volumes/db/data/base/5/17845
supabase/volumes/db/data/base/5/17844
supabase/volumes/db/data/base/5/17843
supabase/volumes/db/data/base/5/17840
supabase/volumes/db/data/base/5/17838
supabase/volumes/db/data/base/5/17836
supabase/volumes/db/data/base/5/17835
supabase/volumes/db/data/base/5/17823
supabase/volumes/db/data/base/5/17819
supabase/volumes/db/data/base/5/17761
supabase/volumes/db/data/base/5/17760
supabase/volumes/db/data/base/5/17758
supabase/volumes/db/data/base/5/17756
supabase/volumes/db/data/base/5/17749
supabase/volumes/db/data/base/5/17744
supabase/volumes/db/data/base/5/17687
supabase/volumes/db/data/base/5/17684
supabase/volumes/db/data/base/5/17677
supabase/volumes/db/data/base/5/17675
supabase/volumes/db/data/base/5/17674
supabase/volumes/db/data/base/5/17673
supabase/volumes/db/data/base/5/17666
supabase/volumes/db/data/base/5/17659
supabase/volumes/db/data/base/5/17658
supabase/volumes/db/data/base/5/17657
supabase/volumes/db/data/base/5/17654
supabase/volumes/db/data/base/5/17650
supabase/volumes/db/data/base/5/17649
supabase/volumes/db/data/base/5/17648
supabase/volumes/db/data/base/5/17647
supabase/volumes/db/data/base/5/17646
supabase/volumes/db/data/base/5/17641
supabase/volumes/db/data/base/5/17638
supabase/volumes/db/data/base/5/17626
supabase/volumes/db/data/base/5/17623
supabase/volumes/db/data/base/5/17621
supabase/volumes/db/data/base/5/17616_fsm
supabase/volumes/db/data/base/5/17616
supabase/volumes/db/data/base/5/17614
supabase/volumes/db/data/base/5/17611
supabase/volumes/db/data/base/5/17609
supabase/volumes/db/data/base/5/17604_fsm
supabase/volumes/db/data/base/5/17604
supabase/volumes/db/data/base/5/17602
supabase/volumes/db/data/base/5/17599
supabase/volumes/db/data/base/5/17590
supabase/volumes/db/data/base/5/17587
supabase/volumes/db/data/base/5/17585
supabase/volumes/db/data/base/5/17580_fsm
supabase/volumes/db/data/base/5/17580
supabase/volumes/db/data/base/5/17578
supabase/volumes/db/data/base/5/17575
supabase/volumes/db/data/base/5/17566
supabase/volumes/db/data/base/5/17563
supabase/volumes/db/data/base/5/17554
supabase/volumes/db/data/base/5/17551
supabase/volumes/db/data/base/5/17549
supabase/volumes/db/data/base/5/17544_fsm
supabase/volumes/db/data/base/5/17544
supabase/volumes/db/data/base/5/17542
supabase/volumes/db/data/base/5/17539
supabase/volumes/db/data/base/5/17537
supabase/volumes/db/data/base/5/17532_fsm
supabase/volumes/db/data/base/5/17532
supabase/volumes/db/data/base/5/17530
supabase/volumes/db/data/base/5/17527
supabase/volumes/db/data/base/5/17508
supabase/volumes/db/data/base/5/17499
supabase/volumes/db/data/base/5/17482
supabase/volumes/db/data/base/5/17476
supabase/volumes/db/data/base/5/17475
supabase/volumes/db/data/base/5/17465
supabase/volumes/db/data/base/5/17464
supabase/volumes/db/data/base/5/17437
supabase/volumes/db/data/base/5/17435
supabase/volumes/db/data/base/5/17434
supabase/volumes/db/data/base/5/17427
supabase/volumes/db/data/base/5/17421
supabase/volumes/db/data/base/5/17420
supabase/volumes/db/data/base/5/17401
supabase/volumes/db/data/base/5/17376
supabase/volumes/db/data/base/5/17373
supabase/volumes/db/data/base/5/17372
supabase/volumes/db/data/base/5/17360
supabase/volumes/db/data/base/5/17356
supabase/volumes/db/data/base/5/17355
supabase/volumes/db/data/base/5/17350
supabase/volumes/db/data/base/5/17336
supabase/volumes/db/data/base/5/17325
supabase/volumes/db/data/base/5/17319
supabase/volumes/db/data/base/5/17318
supabase/volumes/db/data/base/5/17302
supabase/volumes/db/data/base/5/17277
supabase/volumes/db/data/base/5/17272
supabase/volumes/db/data/base/5/17252
supabase/volumes/db/data/base/5/17240
supabase/volumes/db/data/base/5/17226
supabase/volumes/db/data/base/5/17225
supabase/volumes/db/data/base/5/17222
supabase/volumes/db/data/base/5/17220
supabase/volumes/db/data/base/5/17216
supabase/volumes/db/data/base/5/17215
supabase/volumes/db/data/base/5/17212
supabase/volumes/db/data/base/5/17211
supabase/volumes/db/data/base/5/17210
supabase/volumes/db/data/base/5/17209
supabase/volumes/db/data/base/5/17208
supabase/volumes/db/data/base/5/17203
supabase/volumes/db/data/base/5/17192
supabase/volumes/db/data/base/5/17163
supabase/volumes/db/data/base/5/17156
supabase/volumes/db/data/base/5/17137
supabase/volumes/db/data/base/5/17122
supabase/volumes/db/data/base/5/17110
supabase/volumes/db/data/base/5/17109
supabase/volumes/db/data/base/5/17108
supabase/volumes/db/data/base/5/17095
supabase/volumes/db/data/base/5/17094
supabase/volumes/db/data/base/5/17093
supabase/volumes/db/data/base/5/17092
supabase/volumes/db/data/base/5/17085
supabase/volumes/db/data/base/5/17081
supabase/volumes/db/data/base/5/17080
supabase/volumes/db/data/base/5/17078
supabase/volumes/db/data/base/5/17072
supabase/volumes/db/data/base/5/17071
supabase/volumes/db/data/base/5/17069
supabase/volumes/db/data/base/5/17066
supabase/volumes/db/data/base/5/17058
supabase/volumes/db/data/base/5/16570
supabase/volumes/db/data/base/5/16557
supabase/volumes/db/data/base/5/16555
supabase/volumes/db/data/base/5/16551
supabase/volumes/db/data/base/5/16546
supabase/volumes/db/data/base/5/16545
supabase/volumes/db/data/base/5/16533
supabase/volumes/db/data/base/5/16532
supabase/volumes/db/data/base/5/16531
supabase/volumes/db/data/base/5/16524
supabase/volumes/db/data/base/5/16523
supabase/volumes/db/data/base/5/16516
supabase/volumes/db/data/base/5/16515
supabase/volumes/db/data/base/5/16514
supabase/volumes/db/data/base/5/16509
supabase/volumes/db/data/base/5/16499
supabase/volumes/db/data/base/5/16496
supabase/volumes/db/data/base/5/16495
supabase/volumes/db/data/base/5/16493
supabase/volumes/db/data/base/5/16488
supabase/volumes/db/data/base/5/16480
supabase/volumes/db/data/base/5/16479
supabase/volumes/db/data/base/5/16478
supabase/volumes/db/data/base/5/16476
supabase/volumes/db/data/base/5/16470
supabase/volumes/db/data/base/5/16469
supabase/volumes/db/data/base/5/16468
supabase/volumes/db/data/base/5/16467
supabase/volumes/db/data/base/5/16465
supabase/volumes/db/data/base/5/16463
supabase/volumes/db/data/base/5/16462
supabase/volumes/db/data/base/5/16461
supabase/volumes/db/data/base/5/16458
supabase/volumes/db/data/base/5/1259_vm
supabase/volumes/db/data/base/5/1259_fsm
supabase/volumes/db/data/base/5/1259
supabase/volumes/db/data/base/5/1255_fsm
supabase/volumes/db/data/base/5/1255
supabase/volumes/db/data/base/5/1249_vm
supabase/volumes/db/data/base/5/1249_fsm
supabase/volumes/db/data/base/5/1249
supabase/volumes/db/data/base/5/1247_fsm
supabase/volumes/db/data/base/5/1247
supabase/volumes/db/data/base/1/2841
supabase/volumes/db/data/base/1/2840_vm
supabase/volumes/db/data/base/1/2840_fsm
supabase/volumes/db/data/base/1/2840
supabase/volumes/db/data/base/1/2696
supabase/volumes/db/data/base/1/2619_vm
supabase/volumes/db/data/base/1/2619_fsm
supabase/volumes/db/data/base/1/2619
supabase/volumes/db/data/base/1/1259

View File

@ -1,241 +0,0 @@
_format_version: '2.1'
_transform: true
###
### Consumers / Users
###
consumers:
- username: DASHBOARD
- username: anon
keyauth_credentials:
- key: $SUPABASE_ANON_KEY
- username: service_role
keyauth_credentials:
- key: $SUPABASE_SERVICE_KEY
###
### Access Control List
###
acls:
- consumer: anon
group: anon
- consumer: service_role
group: admin
###
### Dashboard credentials
###
basicauth_credentials:
- consumer: DASHBOARD
username: $DASHBOARD_USERNAME
password: $DASHBOARD_PASSWORD
###
### API Routes
###
services:
## Open Auth routes
- name: auth-v1-open
url: http://auth:9999/verify
routes:
- name: auth-v1-open
strip_path: true
paths:
- /auth/v1/verify
plugins:
- name: cors
- name: auth-v1-open-callback
url: http://auth:9999/callback
routes:
- name: auth-v1-open-callback
strip_path: true
paths:
- /auth/v1/callback
plugins:
- name: cors
- name: auth-v1-open-authorize
url: http://auth:9999/authorize
routes:
- name: auth-v1-open-authorize
strip_path: true
paths:
- /auth/v1/authorize
plugins:
- name: cors
## Secure Auth routes
- name: auth-v1
_comment: 'GoTrue: /auth/v1/* -> http://auth:9999/*'
url: http://auth:9999/
routes:
- name: auth-v1-all
strip_path: true
paths:
- /auth/v1/
plugins:
- name: cors
- name: key-auth
config:
hide_credentials: false
- name: acl
config:
hide_groups_header: true
allow:
- admin
- anon
## Secure REST routes
- name: rest-v1
_comment: 'PostgREST: /rest/v1/* -> http://rest:3000/*'
url: http://rest:3000/
routes:
- name: rest-v1-all
strip_path: true
paths:
- /rest/v1/
plugins:
- name: cors
- name: key-auth
config:
hide_credentials: true
- name: acl
config:
hide_groups_header: true
allow:
- admin
- anon
## Secure GraphQL routes
- name: graphql-v1
_comment: 'PostgREST: /graphql/v1/* -> http://rest:3000/rpc/graphql'
url: http://rest:3000/rpc/graphql
routes:
- name: graphql-v1-all
strip_path: true
paths:
- /graphql/v1
plugins:
- name: cors
- name: key-auth
config:
hide_credentials: true
- name: request-transformer
config:
add:
headers:
- Content-Profile:graphql_public
- name: acl
config:
hide_groups_header: true
allow:
- admin
- anon
## Secure Realtime routes
- name: realtime-v1-ws
_comment: 'Realtime: /realtime/v1/* -> ws://realtime:4000/socket/*'
url: http://realtime-dev.supabase-realtime:4000/socket
protocol: ws
routes:
- name: realtime-v1-ws
strip_path: true
paths:
- /realtime/v1/
plugins:
- name: cors
- name: key-auth
config:
hide_credentials: false
- name: acl
config:
hide_groups_header: true
allow:
- admin
- anon
- name: realtime-v1-rest
_comment: 'Realtime: /realtime/v1/* -> ws://realtime:4000/socket/*'
url: http://realtime-dev.supabase-realtime:4000/api
protocol: http
routes:
- name: realtime-v1-rest
strip_path: true
paths:
- /realtime/v1/api
plugins:
- name: cors
- name: key-auth
config:
hide_credentials: false
- name: acl
config:
hide_groups_header: true
allow:
- admin
- anon
## Storage routes: the storage server manages its own auth
- name: storage-v1
_comment: 'Storage: /storage/v1/* -> http://storage:5000/*'
url: http://storage:5000/
routes:
- name: storage-v1-all
strip_path: true
paths:
- /storage/v1/
plugins:
- name: cors
## Edge Functions routes
- name: functions-v1
_comment: 'Edge Functions: /functions/v1/* -> http://functions:9000/*'
url: http://functions:9000/
routes:
- name: functions-v1-all
strip_path: true
paths:
- /functions/v1/
plugins:
- name: cors
## Analytics routes
- name: analytics-v1
_comment: 'Analytics: /analytics/v1/* -> http://logflare:4000/*'
url: http://analytics:4000/
routes:
- name: analytics-v1-all
strip_path: true
paths:
- /analytics/v1/
## Secure Database routes
- name: meta
_comment: 'pg-meta: /pg/* -> http://pg-meta:8080/*'
url: http://meta:8080/
routes:
- name: meta-all
strip_path: true
paths:
- /pg/
plugins:
- name: key-auth
config:
hide_credentials: false
- name: acl
config:
hide_groups_header: true
allow:
- admin
## Protected Dashboard - catch all remaining routes
- name: dashboard
_comment: 'Studio: /* -> http://studio:3000/*'
url: http://studio:3000/
routes:
- name: dashboard-all
strip_path: true
paths:
- /
plugins:
- name: cors
- name: basic-auth
config:
hide_credentials: true

View File

@ -1,5 +0,0 @@
\set jwt_secret `echo "$JWT_SECRET"`
\set jwt_exp `echo "$JWT_EXP"`
ALTER DATABASE postgres SET "app.settings.jwt_secret" TO :'jwt_secret';
ALTER DATABASE postgres SET "app.settings.jwt_exp" TO :'jwt_exp';

View File

@ -1,4 +0,0 @@
\set pguser `echo "$POSTGRES_USER"`
create schema if not exists _analytics;
alter schema _analytics owner to :pguser;

View File

@ -1,4 +0,0 @@
\set pguser `echo "$POSTGRES_USER"`
create schema if not exists _realtime;
alter schema _realtime owner to :pguser;

View File

@ -1,8 +0,0 @@
-- NOTE: change to your own passwords for production environments
\set pgpass `echo "$POSTGRES_PASSWORD"`
ALTER USER authenticator WITH PASSWORD :'pgpass';
ALTER USER pgbouncer WITH PASSWORD :'pgpass';
ALTER USER supabase_auth_admin WITH PASSWORD :'pgpass';
ALTER USER supabase_functions_admin WITH PASSWORD :'pgpass';
ALTER USER supabase_storage_admin WITH PASSWORD :'pgpass';

View File

@ -1,208 +0,0 @@
BEGIN;
-- Create pg_net extension
CREATE EXTENSION IF NOT EXISTS pg_net SCHEMA extensions;
-- Create supabase_functions schema
CREATE SCHEMA supabase_functions AUTHORIZATION supabase_admin;
GRANT USAGE ON SCHEMA supabase_functions TO postgres, anon, authenticated, service_role;
ALTER DEFAULT PRIVILEGES IN SCHEMA supabase_functions GRANT ALL ON TABLES TO postgres, anon, authenticated, service_role;
ALTER DEFAULT PRIVILEGES IN SCHEMA supabase_functions GRANT ALL ON FUNCTIONS TO postgres, anon, authenticated, service_role;
ALTER DEFAULT PRIVILEGES IN SCHEMA supabase_functions GRANT ALL ON SEQUENCES TO postgres, anon, authenticated, service_role;
-- supabase_functions.migrations definition
CREATE TABLE supabase_functions.migrations (
version text PRIMARY KEY,
inserted_at timestamptz NOT NULL DEFAULT NOW()
);
-- Initial supabase_functions migration
INSERT INTO supabase_functions.migrations (version) VALUES ('initial');
-- supabase_functions.hooks definition
CREATE TABLE supabase_functions.hooks (
id bigserial PRIMARY KEY,
hook_table_id integer NOT NULL,
hook_name text NOT NULL,
created_at timestamptz NOT NULL DEFAULT NOW(),
request_id bigint
);
CREATE INDEX supabase_functions_hooks_request_id_idx ON supabase_functions.hooks USING btree (request_id);
CREATE INDEX supabase_functions_hooks_h_table_id_h_name_idx ON supabase_functions.hooks USING btree (hook_table_id, hook_name);
COMMENT ON TABLE supabase_functions.hooks IS 'Supabase Functions Hooks: Audit trail for triggered hooks.';
CREATE FUNCTION supabase_functions.http_request()
RETURNS trigger
LANGUAGE plpgsql
AS $function$
DECLARE
request_id bigint;
payload jsonb;
url text := TG_ARGV[0]::text;
method text := TG_ARGV[1]::text;
headers jsonb DEFAULT '{}'::jsonb;
params jsonb DEFAULT '{}'::jsonb;
timeout_ms integer DEFAULT 1000;
BEGIN
IF url IS NULL OR url = 'null' THEN
RAISE EXCEPTION 'url argument is missing';
END IF;
IF method IS NULL OR method = 'null' THEN
RAISE EXCEPTION 'method argument is missing';
END IF;
IF TG_ARGV[2] IS NULL OR TG_ARGV[2] = 'null' THEN
headers = '{"Content-Type": "application/json"}'::jsonb;
ELSE
headers = TG_ARGV[2]::jsonb;
END IF;
IF TG_ARGV[3] IS NULL OR TG_ARGV[3] = 'null' THEN
params = '{}'::jsonb;
ELSE
params = TG_ARGV[3]::jsonb;
END IF;
IF TG_ARGV[4] IS NULL OR TG_ARGV[4] = 'null' THEN
timeout_ms = 1000;
ELSE
timeout_ms = TG_ARGV[4]::integer;
END IF;
CASE
WHEN method = 'GET' THEN
SELECT http_get INTO request_id FROM net.http_get(
url,
params,
headers,
timeout_ms
);
WHEN method = 'POST' THEN
payload = jsonb_build_object(
'old_record', OLD,
'record', NEW,
'type', TG_OP,
'table', TG_TABLE_NAME,
'schema', TG_TABLE_SCHEMA
);
SELECT http_post INTO request_id FROM net.http_post(
url,
payload,
params,
headers,
timeout_ms
);
ELSE
RAISE EXCEPTION 'method argument % is invalid', method;
END CASE;
INSERT INTO supabase_functions.hooks
(hook_table_id, hook_name, request_id)
VALUES
(TG_RELID, TG_NAME, request_id);
RETURN NEW;
END
$function$;
-- Supabase super admin
DO
$$
BEGIN
IF NOT EXISTS (
SELECT 1
FROM pg_roles
WHERE rolname = 'supabase_functions_admin'
)
THEN
CREATE USER supabase_functions_admin NOINHERIT CREATEROLE LOGIN NOREPLICATION;
END IF;
END
$$;
GRANT ALL PRIVILEGES ON SCHEMA supabase_functions TO supabase_functions_admin;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA supabase_functions TO supabase_functions_admin;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA supabase_functions TO supabase_functions_admin;
ALTER USER supabase_functions_admin SET search_path = "supabase_functions";
ALTER table "supabase_functions".migrations OWNER TO supabase_functions_admin;
ALTER table "supabase_functions".hooks OWNER TO supabase_functions_admin;
ALTER function "supabase_functions".http_request() OWNER TO supabase_functions_admin;
GRANT supabase_functions_admin TO postgres;
-- Remove unused supabase_pg_net_admin role
DO
$$
BEGIN
IF EXISTS (
SELECT 1
FROM pg_roles
WHERE rolname = 'supabase_pg_net_admin'
)
THEN
REASSIGN OWNED BY supabase_pg_net_admin TO supabase_admin;
DROP OWNED BY supabase_pg_net_admin;
DROP ROLE supabase_pg_net_admin;
END IF;
END
$$;
-- pg_net grants when extension is already enabled
DO
$$
BEGIN
IF EXISTS (
SELECT 1
FROM pg_extension
WHERE extname = 'pg_net'
)
THEN
GRANT USAGE ON SCHEMA net TO supabase_functions_admin, postgres, anon, authenticated, service_role;
ALTER function net.http_get(url text, params jsonb, headers jsonb, timeout_milliseconds integer) SECURITY DEFINER;
ALTER function net.http_post(url text, body jsonb, params jsonb, headers jsonb, timeout_milliseconds integer) SECURITY DEFINER;
ALTER function net.http_get(url text, params jsonb, headers jsonb, timeout_milliseconds integer) SET search_path = net;
ALTER function net.http_post(url text, body jsonb, params jsonb, headers jsonb, timeout_milliseconds integer) SET search_path = net;
REVOKE ALL ON FUNCTION net.http_get(url text, params jsonb, headers jsonb, timeout_milliseconds integer) FROM PUBLIC;
REVOKE ALL ON FUNCTION net.http_post(url text, body jsonb, params jsonb, headers jsonb, timeout_milliseconds integer) FROM PUBLIC;
GRANT EXECUTE ON FUNCTION net.http_get(url text, params jsonb, headers jsonb, timeout_milliseconds integer) TO supabase_functions_admin, postgres, anon, authenticated, service_role;
GRANT EXECUTE ON FUNCTION net.http_post(url text, body jsonb, params jsonb, headers jsonb, timeout_milliseconds integer) TO supabase_functions_admin, postgres, anon, authenticated, service_role;
END IF;
END
$$;
-- Event trigger for pg_net
CREATE OR REPLACE FUNCTION extensions.grant_pg_net_access()
RETURNS event_trigger
LANGUAGE plpgsql
AS $$
BEGIN
IF EXISTS (
SELECT 1
FROM pg_event_trigger_ddl_commands() AS ev
JOIN pg_extension AS ext
ON ev.objid = ext.oid
WHERE ext.extname = 'pg_net'
)
THEN
GRANT USAGE ON SCHEMA net TO supabase_functions_admin, postgres, anon, authenticated, service_role;
ALTER function net.http_get(url text, params jsonb, headers jsonb, timeout_milliseconds integer) SECURITY DEFINER;
ALTER function net.http_post(url text, body jsonb, params jsonb, headers jsonb, timeout_milliseconds integer) SECURITY DEFINER;
ALTER function net.http_get(url text, params jsonb, headers jsonb, timeout_milliseconds integer) SET search_path = net;
ALTER function net.http_post(url text, body jsonb, params jsonb, headers jsonb, timeout_milliseconds integer) SET search_path = net;
REVOKE ALL ON FUNCTION net.http_get(url text, params jsonb, headers jsonb, timeout_milliseconds integer) FROM PUBLIC;
REVOKE ALL ON FUNCTION net.http_post(url text, body jsonb, params jsonb, headers jsonb, timeout_milliseconds integer) FROM PUBLIC;
GRANT EXECUTE ON FUNCTION net.http_get(url text, params jsonb, headers jsonb, timeout_milliseconds integer) TO supabase_functions_admin, postgres, anon, authenticated, service_role;
GRANT EXECUTE ON FUNCTION net.http_post(url text, body jsonb, params jsonb, headers jsonb, timeout_milliseconds integer) TO supabase_functions_admin, postgres, anon, authenticated, service_role;
END IF;
END;
$$;
COMMENT ON FUNCTION extensions.grant_pg_net_access IS 'Grants access to pg_net';
DO
$$
BEGIN
IF NOT EXISTS (
SELECT 1
FROM pg_event_trigger
WHERE evtname = 'issue_pg_net_access'
) THEN
CREATE EVENT TRIGGER issue_pg_net_access ON ddl_command_end WHEN TAG IN ('CREATE EXTENSION')
EXECUTE PROCEDURE extensions.grant_pg_net_access();
END IF;
END
$$;
INSERT INTO supabase_functions.migrations (version) VALUES ('20210809183423_update_grants');
ALTER function supabase_functions.http_request() SECURITY DEFINER;
ALTER function supabase_functions.http_request() SET search_path = supabase_functions;
REVOKE ALL ON FUNCTION supabase_functions.http_request() FROM PUBLIC;
GRANT EXECUTE ON FUNCTION supabase_functions.http_request() TO postgres, anon, authenticated, service_role;
COMMIT;

View File

@ -1,16 +0,0 @@
// Follow this setup guide to integrate the Deno language server with your editor:
// https://deno.land/manual/getting_started/setup_your_environment
// This enables autocomplete, go to definition, etc.
import { serve } from "https://deno.land/std@0.177.1/http/server.ts"
serve(async () => {
return new Response(
`"Hello from Edge Functions!"`,
{ headers: { "Content-Type": "application/json" } },
)
})
// To invoke:
// curl 'http://localhost:<KONG_HTTP_PORT>/functions/v1/hello' \
// --header 'Authorization: Bearer <anon/service_role API key>'

View File

@ -1,94 +0,0 @@
import { serve } from 'https://deno.land/std@0.131.0/http/server.ts'
import * as jose from 'https://deno.land/x/jose@v4.14.4/index.ts'
console.log('main function started')
const JWT_SECRET = Deno.env.get('JWT_SECRET')
const VERIFY_JWT = Deno.env.get('VERIFY_JWT') === 'true'
function getAuthToken(req: Request) {
const authHeader = req.headers.get('authorization')
if (!authHeader) {
throw new Error('Missing authorization header')
}
const [bearer, token] = authHeader.split(' ')
if (bearer !== 'Bearer') {
throw new Error(`Auth header is not 'Bearer {token}'`)
}
return token
}
async function verifyJWT(jwt: string): Promise<boolean> {
const encoder = new TextEncoder()
const secretKey = encoder.encode(JWT_SECRET)
try {
await jose.jwtVerify(jwt, secretKey)
} catch (err) {
console.error(err)
return false
}
return true
}
serve(async (req: Request) => {
if (req.method !== 'OPTIONS' && VERIFY_JWT) {
try {
const token = getAuthToken(req)
const isValidJWT = await verifyJWT(token)
if (!isValidJWT) {
return new Response(JSON.stringify({ msg: 'Invalid JWT' }), {
status: 401,
headers: { 'Content-Type': 'application/json' },
})
}
} catch (e) {
console.error(e)
return new Response(JSON.stringify({ msg: e.toString() }), {
status: 401,
headers: { 'Content-Type': 'application/json' },
})
}
}
const url = new URL(req.url)
const { pathname } = url
const path_parts = pathname.split('/')
const service_name = path_parts[1]
if (!service_name || service_name === '') {
const error = { msg: 'missing function name in request' }
return new Response(JSON.stringify(error), {
status: 400,
headers: { 'Content-Type': 'application/json' },
})
}
const servicePath = `/home/deno/functions/${service_name}`
console.error(`serving the request with ${servicePath}`)
const memoryLimitMb = 150
const workerTimeoutMs = 1 * 60 * 1000
const noModuleCache = false
const importMapPath = null
const envVarsObj = Deno.env.toObject()
const envVars = Object.keys(envVarsObj).map((k) => [k, envVarsObj[k]])
try {
const worker = await EdgeRuntime.userWorkers.create({
servicePath,
memoryLimitMb,
workerTimeoutMs,
noModuleCache,
importMapPath,
envVars,
})
return await worker.fetch(req)
} catch (e) {
const error = { msg: e.toString() }
return new Response(JSON.stringify(error), {
status: 500,
headers: { 'Content-Type': 'application/json' },
})
}
})