From f87a8c7a3ab78dc7399ff60d4033840fb124b3f9 Mon Sep 17 00:00:00 2001 From: Kanholt Date: Sun, 25 Jan 2026 18:42:33 +0100 Subject: [PATCH 1/4] updated the supabase integration updated the content and add images --- library/modules/supabase/README.md | 13 +++- .../fs-sb-call-broadcast-realtime.png | Bin 0 -> 11451 bytes .../modules/supabase/fs-sb-call-function.png | Bin 0 -> 17522 bytes .../supabase/fs-sb-client-create-record.png | Bin 0 -> 11786 bytes .../supabase/fs-sb-client-delete-record.png | Bin 0 -> 12830 bytes .../supabase/fs-sb-client-update-record.png | Bin 0 -> 13028 bytes .../modules/supabase/fs-sb-create-record.png | Bin 0 -> 15600 bytes .../modules/supabase/fs-sb-delete-files.png | Bin 0 -> 10188 bytes .../modules/supabase/fs-sb-download-file.png | Bin 0 -> 10108 bytes library/modules/supabase/fs-sb-login.png | Bin 0 -> 18743 bytes library/modules/supabase/fs-sb-logout.png | Bin 0 -> 14147 bytes .../supabase/fs-sb-resumable-upload.png | Bin 0 -> 11915 bytes .../fs-sb-retrieve-public-file-url.png | Bin 0 -> 11738 bytes .../modules/supabase/fs-sb-set-presence.png | Bin 0 -> 10407 bytes .../supabase/fs-sb-subscribe-channel.png | Bin 0 -> 12582 bytes .../modules/supabase/fs-sb-update-record.png | Bin 0 -> 19318 bytes .../modules/supabase/fs-sb-upload-file.png | Bin 0 -> 10451 bytes library/modules/supabase/fs-sb-user.png | Bin 0 -> 12474 bytes library/modules/supabase/nodes/auth/log-in.md | 13 +++- .../modules/supabase/nodes/auth/log-out.md | 14 +++- library/modules/supabase/nodes/auth/user.md | 12 ++++ .../nodes/data/call-a-postgres-function.md | 13 ++-- .../supabase/nodes/data/create-new-record.md | 47 ++++++++------ .../edge-functions/call-edge-function.md | 52 +++++---------- .../supabase/nodes/events/create-record.md | 30 +++++---- .../supabase/nodes/events/delete-records.md | 26 ++++---- .../supabase/nodes/events/update-records.md | 28 ++++---- .../nodes/realtime/broadcast-message.md | 15 +++-- .../supabase/nodes/realtime/set-presence.md | 17 ++++- .../nodes/realtime/subscribe-to-channel.md | 16 +++-- .../supabase/nodes/storage/delete-files.md | 53 ++++++++------- .../supabase/nodes/storage/download-file.md | 49 ++++++++------ .../storage/retrieve-public-file-urls.md | 45 +++++++------ .../nodes/storage/upload-file-resumable.md | 61 ++++++++++-------- .../supabase/nodes/storage/upload-file.md | 59 +++++++++-------- library/modules/supabase/release-notes.md | 3 +- 36 files changed, 333 insertions(+), 233 deletions(-) create mode 100644 library/modules/supabase/fs-sb-call-broadcast-realtime.png create mode 100644 library/modules/supabase/fs-sb-call-function.png create mode 100644 library/modules/supabase/fs-sb-client-create-record.png create mode 100644 library/modules/supabase/fs-sb-client-delete-record.png create mode 100644 library/modules/supabase/fs-sb-client-update-record.png create mode 100644 library/modules/supabase/fs-sb-create-record.png create mode 100644 library/modules/supabase/fs-sb-delete-files.png create mode 100644 library/modules/supabase/fs-sb-download-file.png create mode 100644 library/modules/supabase/fs-sb-login.png create mode 100644 library/modules/supabase/fs-sb-logout.png create mode 100644 library/modules/supabase/fs-sb-resumable-upload.png create mode 100644 library/modules/supabase/fs-sb-retrieve-public-file-url.png create mode 100644 library/modules/supabase/fs-sb-set-presence.png create mode 100644 library/modules/supabase/fs-sb-subscribe-channel.png create mode 100644 library/modules/supabase/fs-sb-update-record.png create mode 100644 library/modules/supabase/fs-sb-upload-file.png create mode 100644 library/modules/supabase/fs-sb-user.png diff --git a/library/modules/supabase/README.md b/library/modules/supabase/README.md index 92effd7..a966559 100644 --- a/library/modules/supabase/README.md +++ b/library/modules/supabase/README.md @@ -7,4 +7,15 @@ hide_title: true > This is currently a private extension to Fluxscape. The documentation is still under development and will be improved over time. -Fluxscape's Supabase integration provides a first-class way to sync data, authenticate users, and trigger serverless workflows directly from within Fluxscape apps. +Fluxscape’s Supabase integration provides a first-class way to sync data, authenticate users, and trigger serverless workflows directly from within Fluxscape apps. + +The integration is designed for teams building production-grade applications that require a robust backend, strong data modeling, row-level security, and scalable serverless functions, all while staying inside the Fluxscape visual workflow. + +### Access to the Supabase integration + +The Supabase integration is currently available by request. + +If you are interested in using it or evaluating it for your team or customers, please contact the Fluxscape team via +https://fluxscape.io/contact + +We use this process to ensure proper onboarding, feedback. \ No newline at end of file diff --git a/library/modules/supabase/fs-sb-call-broadcast-realtime.png b/library/modules/supabase/fs-sb-call-broadcast-realtime.png new file mode 100644 index 0000000000000000000000000000000000000000..84868f1529c204f38f97edf11f60dbb5466fbc4e GIT binary patch literal 11451 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 literal 0 HcmV?d00001 diff --git a/library/modules/supabase/fs-sb-call-function.png b/library/modules/supabase/fs-sb-call-function.png new file mode 100644 index 0000000000000000000000000000000000000000..3777bd89601d43ba661712ce99f66989826343e1 GIT binary patch literal 17522 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 literal 0 HcmV?d00001 diff --git a/library/modules/supabase/fs-sb-client-create-record.png b/library/modules/supabase/fs-sb-client-create-record.png new file mode 100644 index 0000000000000000000000000000000000000000..74f5a218a5dc7a06b05512e21651980a0f28ec8c GIT binary patch literal 11786 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 B6deEn literal 0 HcmV?d00001 diff --git a/library/modules/supabase/fs-sb-client-delete-record.png b/library/modules/supabase/fs-sb-client-delete-record.png new file mode 100644 index 0000000000000000000000000000000000000000..7377146ffe13dbf0c048bc1f25caeb8c375e2e08 GIT binary patch literal 12830 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 literal 0 HcmV?d00001 diff --git a/library/modules/supabase/fs-sb-client-update-record.png b/library/modules/supabase/fs-sb-client-update-record.png new file mode 100644 index 0000000000000000000000000000000000000000..ad5a72cabf4eb2762b70e9d0bfd14284a56f230e GIT binary patch literal 13028 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 literal 0 HcmV?d00001 diff --git a/library/modules/supabase/fs-sb-download-file.png b/library/modules/supabase/fs-sb-download-file.png new file mode 100644 index 0000000000000000000000000000000000000000..3519cc06b9c137cf61cce34bdce17fe23cd70c7c GIT binary patch literal 10108 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 literal 0 HcmV?d00001 diff --git a/library/modules/supabase/fs-sb-logout.png b/library/modules/supabase/fs-sb-logout.png new file mode 100644 index 0000000000000000000000000000000000000000..84596a4fec99f07ab17fb715d89902cc59ebb83b GIT binary patch literal 14147 zcmeIYWmuHm*Ec+rlpu_kj+dEoa^)(Rz6#)PMAX1Q*(*yu84FCX) zdw6%yId1*m`2YZd3VT^ubp=^j26cBA8+%7<06;!EB@I_wOM#+)qw_ePgu#KGgijX7MJ z?!6#nz*&~xk@(r-#aOnV;Kl+jz#yHOq_9T-VD+m$++1p};nVChsy&<#06s|wrMh)( zJ@$wActFUkG0Nx46*v0TZt+&bOcw+NW`Qo-)MA9ZAW>blsud)Wif%Y_4CSK+Xw&|L z86~x-eUqfTgdRX(~f@;~{Dx z7Ue{_RnRJWH~y94{mY2Ql7~3?hzWrk=3%wF1UZ&;wk$yrT5^yCkKxh7sLYkhW7l;W z5B;3m2ieDYA)=~3{gf~H#dsp zG^fk#NWh^}9`>*?AA9LT>ViX>j_Vb3P*) zeW&z;Y7?vZD;C2Y#vja&u;{-qVLyKsbywptnLO#lJ7osWDB@NbQ+2?@JAE(k)dhMZ z<;LIGF>2pUd66|S9DNqoUx(4bz-CN_jc_TjxObADK9W9buZ z(Q@+Xs5h^@K06ommg<$N*>PpOFV0u_u4)JLWXkwx8fzNE^IWfBXPkSJ=UC;K#Q*LM zk?glpb7j8RM=UINl0F!OviBxi5?f^OQ}8$QGk&_K&!v0cA*8YY(!#Q~Y*uIX!7iO6 z=_ySUz4!;({$*E=XQWwzJdgUjtyc)#+TC8e+PY!2++TRz@z9jiCH(AL|MJCoK!E5i z9|TJ}Bse0MX@KMyFE-2!GqNVJCdD;mT(#x-qsPh*tfTM9*;-)pr?iCXKX+s@Ws+io zBqb(Jq`Jowr2JH$NHOfSzT(~*E-5N=DJ90@PJfW&)^o+Z_sU(VD%Jg5>H)RP%5TvStoCy^hc4 z1_~z8`Mo;xl~bicc|!ReGIJ{F6~=`Ng#ktv^#m$?O3W(O?TQscj5-bFwQowd38p*C zDRh9`@xUJqA)R@4Uk`B3rp=yOHu5#Xnk zH$Ls!YF@R>%~*MVk!{2-P9vA!(a|Bx!q_^X2V1ySa5;UKe+w98uvrt|RpY&!$3B>B zo?$s}CT3M^M{bttGV|ti-WVn^8qn_7d?7+;6yq6#MShQKjq8T%h#St0Fr+l9ttzi{ zHb|=Ktb!Rd8+6t3*DlZRHnut_H4-%}TEXqFrbm}l?O=8yZ@><@W&++L z)9%)-Gi_3ClWr?5w4R`Ed=`ZQv3#cOMlFPknTxCvG?FvESx0hym%ikFr~ZR}Fa34= zB~NEgRZpFN(H+&E7_51WQmpLkw=ep{myKEp?xb4=od!8vw_PjTF5jlys$qV>3d2B# zy5<3Y#D0lMBobowk?#<%A%V4XO`SWioqEKuXLSV2)G&#$Y9SxOcmkzX=yaamC#K zQR^G!nwW=D>sVq|l44R0t2pbvJe`W03cH$L-_Z}9!==K@;+aC#LYxv>#Z1LGRhOYJ zwoF!8KcNSc=O*b?>87^N^g_*?nI7Nb(Z2bk>B#_H)WY_~md5^f2t^F=L&w98tN@+!_TBwyFcC2Kx(6ATQ~RklL8Mzm%SCCa ztV8^GX+3bmci?>G9wj{s>wBs4fXXX5)YOgWHnf)Uz0SGX8a`ZzLQya3*M zn0axVT0b%H@)?3y0Y*kj^TtFHTHvu{<{p6l*QibIUoMVKsVJo-)b7`Ya-wrv6zkb8 z9_T4vdMny{wXoJ#uu)L~aG=w808ESr04#J01N{X=+5@ovN&^5a=zjnJD=`9qi~fIr z{;B6-{!@x+kcah88spyYiqExV(M?P<>7>*VO{A?7Rj+|<}TKn4nN0YP1pJt&O$osp5m!F4^_y5G^X>ap?Vf$V3H``zB`dgjEZ((BU_P*AR z26FaJXse=MO-ew7U*az{|69p_Ui5EH9S>`FSr;cXqo>q=y5$e^e=q!B8UIqL{~wjY zeE*Zm|5ozfIDa=mOwHXMt{&#Qwm5c69DFO-J{~8)n z1RqtJ*#Q9dECspe+P)abMce?gzWM$G)|6ua{!>qq!sz#yrhRXpM0JJ|aNrr=e~z>J z_6Y}@*~`9an13MB@o4hA-f4B+?UM=3!V-Sh<8-T%t@LO@d2a{o^;00S2r&ww~jlL-@#Aq0Sa z$PE0X`K zTP6>^#b7pCxAOeih1j$(Ug)MDdbt0g@wCx&UK1BA{Lk)S&4Jdc6{H&bhYm&41XHPN zZGU!*JY^g_1M8u&!TW!2O$_R2I&{9ynBvdwl3WIOT%mj+D*A`UE(bj3R5wc9dGYsl z6)Hf+V3ooy&HDNeErX_U-ay?=(9=-nacIk|e)NYATn(wscnm+1W%M1Dht*36N*3xU zqN2nY_@i+ZjS~db#DROQfi1>?_CBqf*A+#tPQ(NPX9^$C1LtX9OJBG3_Vx}I6dfso zHl>$O@tHylJjOpnp%gpR{WwWBCp8yFX_VnF+x^y( z*YdjFv6ZIvO>%1wm+X%R%qQBW*#(w25Ckq92UjgE`l3Z^3U%I#mk;QBVn^|<_LP%4 zLGIb&7|bX}4F9^@`#>{VU(1A2NRxH8}efd$za5SyGf^aPkO$ ztv!t4)E~g2BKw0_|Aev?!BNHx7S1m)#%)mR%!N!r{j#oSRmT0ap%BsDJubqPh%)VX|)AS&$t z2&1jbA;V*EEtNUXuh1v0#H>u!Q7_BbpNk<@H_{|eWsDcYAIn`4;oA+W2 zq%1+KxxrU3;4v8|6MSW5<$?9rpL2)v;%e|EI?3}oRoGB^i5H(N&6?HVA@BOH0_VsLx``bY*9RB(=d$UUdUi6g>ZLq&NQ2Ibyv{(~*v_{lAIH64 zODei*yeU+zx>M(NBzE!ZNW`kIykm*A6O!pdV+CeiJmwq85z%>5Je6W=N~N23POhSs za_L1isKra1B1%{ccj{85WA!-;R(9TXuTai9Oe)l_V8*(V;(8ZxTm$dv?zUbX*IPTV z-A{4=Z!)i`?DyN3ZF-}zC+HID-z0G;{bEsnq4+d7Yi(|G-_UskEt?je1F`s zY*?mQRA-gBRCQ1KQh9wioA+!{P{w8?gA);VHApvEX>YmZy*Mp!p1b2N=e^7uGT4urRTOX9SJt8n))G~v`Thmw}%O^->QVlX?7~ApqhBn5KIm;Rq;hE zcfBOe+*|XNfbCB4`1iSuvRLZZRa2}vQOQu=T@JCk>qegN(GQ-ay2T3AlOEoBU9XYF zgrl9^yYP`z(ZCs(rq}Y3i=LFeP<4CnYlTDTzVtx#qNu=+)JR8?3Z2h6l2S}e+QrH! zgV+j$99`R$JxEyrH4Z4rug$@ipHz;jRF_hqd&H-hm{dOdB;wOjS(2I^qu_>eYF3tG zYvIaMO_=^e(*|5lTfHV}vx_E&FH_@>D5zb!5;=8Gof2zm_`aXM>ybkA zQ`vXS$dQTh64~gReIy5E`qqQX!HUC)BzlE@?=(0aH*%5cXxlZNU)%*UylL(tAGWo~ z(J>_)%IkF1)Lmh{^*-D?`*hdZ1}S0H?h+nRxl_H%9n6z%*}eJ<@dkn$9dddZ>%Z+s zd9X>+S_abdyBYBzG`{%NpIaxXo^D`JXSV!=(ym*7QLJ&b!X+ra{mx0Vq_I(xW6I^p z_CPb@M*qibR1{vBNqaFeJL96CrXA@fcuyI&bJ&#|lu)Fk_lcx&zSH8TX5GCF2f{>CN8C&r7bL`bR?TipWs>DP`=Ziq!|9Z_wNK*H<^(3ann|6kZ zucaMX+g2)TYY%HmlFJA=+J(kFto8Y-6O%T21|I)X)W2Qx;-;-%>CD0TspN~nTU3IB zTC9sftJr?ojkTl@(3Taro?e?>Y3CT@`Kbe0^%53K8Fl=a6p~${Aox5va$Kd)b)CsP+mZa8| zSW(>}$D)#>Yu2n~n8UWwBn}Nrw?kc)ma-X~Z&*yeYf}>Ql2A+KGI0)Ghg>~&*&J{F zd@8(E(5VlxuA)q=wDoWEWCu!VIJZDzv?~m!kKcyR<#tX@2_dR+ATaqd=b&|tp$c9} zEwjMIwnnS3Z(rif9NY;tBSm`&Mllo~oh8k0Y;&w)QV+TU8STZJ=1kdW>5hqL_oQnO z$`93!(?|?970Ol%yCOQvbyfLgAAyj-(HqbrZ)Q_v8o!NH%AInGSGO==1f*2|@gNG~ zKi#q1Uj-K)>|AH>A5zdkN>pCN*bLGJ(ltoxwjFhZ3$Cq)>ZLDLk-NJ^@)VHvQgCHB zMbh>uKb{m-xky89m0cjnuMB$(ll=;KQ3XjyX<$P~tdwfl5*LD|N)b2m{?R@d+!*Tw z&$5+Gxx&v*vofO_#{E$i-af1T|Nm@`|}AQe;~eb?UU) zsULC&xJUU+z*txdkL%9pgl~4jMHtQ-+9Rd<5*P&NR&jdMTM@2C5&2Nfro?OX@ zkI90{1E6yyJ`JR;UYn{LCQh>rGtLti8kdGxGX^C-HL^Ys%VW?=1h=EUqLA9<%~iy6 zn<(d!Y}+EzVZnMqIjqzO@Cvoi8GW&==Z*iOZN$WS2L72JN(qL4EY_>rs`=F3(^!!D zAw1V3`Yye|%+$&FvIMvChSZiZCqge7KYh~X)@J=xIQ&Pkq%%d9PdHP0oc||@z_(SI z5&7a*#DbDu6!WGcz_H{mcU+(yI7>>U)T8A%6o9neadQgZxjJcy+cm8i?hP<;-g0Zs zhE1OpgLXl=J9`TzO?qk@F16U;FX%CEwy%H)T&B*+kq*wMOk6T&sqx_sIa-4u;LB}> zHjt?nde(=t#V!JZ^}FK;+UApl`Y|!tHZP>(hVF&;RL%;Q;N3Eeij4HL>0d2(AS$Q& zRgtF=TS1dH!*v*y%Wfyu?Pbtb)h0P)JkfIDPOFN0W%(VvwJt=zCKP9zmn!K0dG4+lAUy1u!66KCd|Km z?YWw}a9RX!*@D$%C*!1pnR5e=au!uUSDuHEAgOfKaaajwg-+RWE>?*b?D6Ers}4?) zMej1O9RxQ$WVGG?NP1skKSw0$lnsoi(a`9GReGqHHTlkL!9C8 zQFVb=p)pp%UQ#;h)M6`(EjzwCwDea&rzBOxA+H#&qBO4J2FDhY7cBv_Yg3Gtz^K_g z1n7$+^Wd(}`Lbd72M0Fp*8+mZIaV8f_TXff@1UmAv5i9~*yH}| zm_2a*M>HOL```y```Y?`JXrC{!Rwai?P%o0*hhCbIQXI+rnTTEeRKIS`w>{}&NgoT zZ7!wF$p|6mUW?59H}EujphN09Y&#ipJVDRDyb-jM!l#)n ziDO|=YKr&|YAb<`x)1GoG@Sl~>8{Oy$IwNjEb>nj{^c_o;*ArgnSS*L1NK4t9RCjs z__EJ)Y}b?0Fn>Vyq{!H6E9kkW0@SAK2N|9cUXr%xaatrUcpw2RAtm*^yZcFO2P23< zognnQm*D#Crlv3LjtRa&zhTGS(X{w@^*gp}$)Q~F+35~Eaq&7C!m+Wj38kf*6Exir zJQ@u%c&gXyg-F^V)sW@xI<%Ml2jnLCf*Do`a5m;4`ePP!g?JtB(=5tAG^Tz?JlU6z z(4xnG;Ep+blDeVM9KnC!4*=RMm@RItLjS-Y;%K;IZqCEzANa!zO#?)D(jxwWKUmT5 zhd5~T!yg)h3k`q#__j9j5B#x<2I;MB$I}0SKSI#(2gX8+aYj3~g~iXpxdU!y{``V= zj#o~`tm;LI*6e!K#-aXweSM1I1Z#wqoLiamjSh+{E7Yl;KBuyP(9cX?c%!5g;~&10 zal>4!ZhL7cfglBc|F#c7+c+p|;{c7-;O^hr)AbR`U4v)+7r7NGpcwMIG0{4>s?rK3EPV4 zsZy)ff7t+29!m-S?%&(j3(Yv;JOrm^Oz$Xqs}>hJBMi*~mqpsUEv)?l2o2~b8CWfbs+5-a<@qs2hJIrTN6HrK3p`~7#Zc(ws z#ZN5Z4@8?sHKIJ)-QC?*b3@^W6Gmz@-krCMARiQK;R}mIQA7}FR-IL^pwA%M^_VER z>eTESJ*cx)tCk%5tah&f9CX zoEC5(s)a)56<;;fd1*d)j*~+tjfE0^vmbYCu~kRrK9gPo&1xmInk*i{@s_Sf+E3K> z_|>@}OsR8hhCeYQP<-g1cy}6xNFd|XRR{>kT5yAp9R8eztyR{mibxvZAHMYq9G$b3 zzd9P_@81)&rmH!dF+yF)=vEqY`yl2JVdc+At54w|yQ!oxC}l}=LT@kjm6yr})Owf@ ztO#=eCl;$v!v&6;f=04Drneh$wg=FIjt_Mo2Ll5;i)@^(K=i0Yu`B1DQ`}Up()xgp zbRd_(9A#fli(YeR-Td*ZkAWUxM7lTrM5%`?GPKTt{oZ==a=u~sj*?ET_m(ayjc3X- z1FoktC-R&v{nn5gbygPvt%n8FMegoT70T5O3O-w|<(P}42ix_$j1>A@P+$$K&XV0u zAb>ZR1TEk%4WdSxR;iqXW$87d-_X zoekE^1~7nevKaN4YKCXiH)k;?D~riUnKy-4V|{&nXdHJx0UZKl99^@Cm2h%$DlG+V z$l6bph6>qF$mjU4znqLoJt{s?sIYs&#uDF)J~pTTEbJ%gIM7p|tZBxz?3+bMG!!(v~;c zU`r6S(B{dmn2c_<0f+SMb!(*nLd0d!48%nTx$+~0kPp}*AVyYSCc53bR~*wLuNZg2 zgbRRNeS}=>xx0wR_IjyI$f46N-t9hWmrmYy`}AyjKrj2ykuH@iF65Y`lCy}U4ti0k zd2HZw9(X9!TBC*AzK=hWIb=LZm>OIL?5cM1AkuHUzJy!B8H>S<&B~w==Z}2Y><7B$Q!JNd zGQ0Pbzi@bWg>;?-wea#RlY~XsKui?;>yE!Hw);SFZKQOXcf_En+(y^di*82rgQKIV z>A}MZ3zDE!OhM1mmcAIXVni-yFkQ?<5Z1xaZp13L-%E8DW#ChZdmj^xwh2j?F+@VmrWI z&F}l&t19D8{q31IY~MBb(deh)QSveYobY?w+MKsh&*g|!1wL0BdM$pE=GieL6|Uc@ z$lW@9S48S|VKLIA%Xco|2-}h~UBdG1R>Dwfrb|b^s{BkmthxV2V7<{?02v3gF5PMs zt2Wi5-W#|m@7o^VmX)(Lslotr& zAloEUv6D%2u6^8>@0p;pf1ahVqWAd$^$N2mL26j$w7H}q! zq!E!uU=Q@oD)mT|=Uk)sYpKhhL<)kk;qVcfystKi?Itdmvn}|!iZ;3t#I#Ft(HPLe^d}f^sSYP@EY{UTI`u0E>ASDqVe+$tY)^)t z80MI_aeP+VEjWvC@k70f8>v}lK)$G}KsS%UWSGe_o3KdjW((UJArREEgK-HQ-hr zn7}2BohhKtCm|zahBxoC=_HgiicTMgjMU3UP7lB4TbKbiZ)$~I@{_b_mnSU{rZXmmKG zZ!#vg!DK=J%d4yF>Ukma$@qoNrOy1zT(*uHEzo37YmaIMj1@Z&LkW5qNUXc;ej->O zfT7fE&#P;XWx6cj7blbV+jH#p`AxI znE|o)pC0}`yz_l-w%37!UXjtqW|cCf^?h1me@@^SNV3p=^bbd$YN|heGYvWVGRa-# zgMa+&|L@Du5!kc4#xs4d7H-hy7oV9AaSh)^n~*`)0F??yDy;+68)NyrT?5fwxFYfwV&Ve-~4Ij z4-@o77$10S#-HdQBnIuf|102M8~i&CLjIi#4FB2yy-xoBVjSGks|0@sXI$X^zB~+2 Nc&RE^{le_+{{X!$jYt3h literal 0 HcmV?d00001 diff --git a/library/modules/supabase/fs-sb-resumable-upload.png b/library/modules/supabase/fs-sb-resumable-upload.png new file mode 100644 index 0000000000000000000000000000000000000000..0e4112e7d62747a74dae82fce0b5704e4ef7237a GIT binary patch literal 11915 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 pv#b9Y@IPnu#0LI{c!eX`$Y`~6kWPmB$fd` literal 0 HcmV?d00001 diff --git a/library/modules/supabase/fs-sb-retrieve-public-file-url.png b/library/modules/supabase/fs-sb-retrieve-public-file-url.png new file mode 100644 index 0000000000000000000000000000000000000000..b088358d24371467624c13b62c2d3fd498c5e15b GIT binary patch literal 11738 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%0D?pNI}9(z8?KF(f5kz+YgSm!yh35vQO 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 literal 0 HcmV?d00001 diff --git a/library/modules/supabase/fs-sb-subscribe-channel.png b/library/modules/supabase/fs-sb-subscribe-channel.png new file mode 100644 index 0000000000000000000000000000000000000000..e95673aec69d896fef6aa622bbf766cb78875318 GIT binary patch literal 12582 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 literal 0 HcmV?d00001 diff --git a/library/modules/supabase/fs-sb-update-record.png b/library/modules/supabase/fs-sb-update-record.png new file mode 100644 index 0000000000000000000000000000000000000000..cec0737d5c279fe650fb53e5c127412159b20903 GIT binary patch literal 19318 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 fyCGH@l literal 0 HcmV?d00001 diff --git a/library/modules/supabase/fs-sb-upload-file.png b/library/modules/supabase/fs-sb-upload-file.png new file mode 100644 index 0000000000000000000000000000000000000000..e3c340c205bafae2b1b583e67874558517b89f8f GIT binary patch literal 10451 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 y3C+JNdY%ma-Mar z0RUQK0D$HK<8kVU{M^QA0D!5?Ra@IwS6f@i*ca&J>fs0g+=)$1XLw+ud$wz(W&0(Y z5a`NV1+;j0%78Z3;K7a4LMd#=wAvHJK72A~W2bSv`B;n7GW9}PNsOHqo!ErJw|DP8 z#L?foH_5>F1rxRjA-)O1s}PZ-{+uA$l^F(rS*8eE!B-i8!>{T{TXjrL#)RTI41GA@ z1Y0Ase9h3k|z8Ho8eD~N?A7b*czfo zgcL8}0sq3d*(>pkWr62Qk$0Xl#uY0CrJ;=c7FhCeveN9f0*qxe;i8qMUmO5;qGDia zUkz`8?zA#m{8Ca?|I)zN#`dFD;Yx-JLHc%qlRYs?%T7U&{gqO(cV&RD2cAiHiOoY!y{ows zs}b3qvbs{JqtowmO7iNR*B0jW6i9q@yCi3%?%0>5z54$Cb@9pQ`0}>$oUWAkUc=a5 zsT;@K)u9qFX?W%t;qM7wceb;VVpH0gtB@joCx)~y;$}dCu^QJzEoJ0+mEPd(wJ(Nb z{Mcg7v}a=~k2v#7%Uo`&rf+%K$w=~xu*t{!-}DW?7fHX&?ktohc~nQrU1Pqc0w}_6 zZd3-ImG=`o-;o$(vrO|-5vqy#K?t(3;{jAe0xqLqL^O2^?*laTMJ+D&WbV8z7Ub5X z;}l|j5Pp1sCh8OC_uf;AGzxR{`4xN%Q;(z3EB$@EgV~brCsvr$@pM z@=o#5cWGTyJlXe5f9~AsF~sL%LdS*YM7WO$e!57fr5M9<@BEoN97E6U3SEmi)u3r@ z4B$N8apQ!sOnbD>fSZf(1D4bqsRQaI0%RU#`kd$wng;`FE{x|QXK%o4IqyDQvIUz8 z%15K6juE1%YQ1He`TCwQ&xw1}TQUnqSj^#nUEh@#i?aE$cscy_jVteJjEgQS|2TFg z{)M*4+vg>svMJ($@(OZK-Ll+y+#jFJDMC&*St;g@y z2gFw;whgw~f>{nuYIl~{-jzz^zI5q$a=cl@mG%_-Q+8R>XQdI+!WpclVvpF}!)v?9 zcJ`H}6Avd&ZwPpB5cui@RpR-(=Dn{fa=ek1;O_e3xX9$we2`^@cTPHPTe zB(bw=p0o>rC>=_*9@7YiM!_zAW7}p-eEx(s`s3@5sovoOhV@$9=kK0&j6JU7Y)2=Z zS|4Gm<#EyaqWZR-&+TGUDa>_p{%Uz6%zX4ml0obxqt>Mqfp9p=r?LoU}KSzT}A&{=E0& zis)s9%Wwxq8M2Ikj96x^%tM)ChvSZ&j-^#;RiCSPszj=y9pT^9)4zU4cL#m<`N{N? z&~5dSx9DAo@&neZ*^RG)!-HQbUr0(-cG@lv*x5hW|?KdOaa7#RLx}2p)X?K z*rZqXL-=9M`%1TxHKx&)_h%p4h`+R%s|jz(bNP&;CyqY3ZeJ@^`_OG~Gn{qsANgoknxE3@SV}i!>a?_qXlk_E?aWla{X?tc~=IwYe44o6>;)Kg+)tcB12Qf zqh;4iJ@fcWbKuB=gFDeB+T*%ISBB9eJj0_SCr7L*rt?Bkm#Bj#ntW1?CA> zwCT1zq%=fS(F_aq=Y5`gdwz0Y)Vsm9VqRRhoE>?&*Cpv5OxnZ4{f(WaBjhWce5LGs z=7u!dCdO>_>{_}ZPzNgq`*-t%Db|`Y;dXfelb0bVyj;r=Tnt~7{1!jvlP~0&t zRI(7>J;YGI-j8m#J9$;$6pn*8=YKgk~M5wyb{O4<#U$b zRBoeuv&VOKMa=(g!^Qgj)eHWkzK#uJjp{zbK8yAIppZ@}y8@X+DeESSdS+xcQdE^s zZ7lE&UMGkg$Q48g{vLEQ_+hXbVT@o%@cJcyuiPmJS@rXCv6#vgl5vl-!?XET@hDOxL7Yd>%730n`#Ec^cDb|HtLZ<22(23`)l zA1Jm>vn~7D__cJt`wMF{G{!q=;v7zBNa{Z4B+t#*7fJ7vvSJAF5(!*g8C~VE4P0gC zy5l_KzINQ~;E(6E*{BU%S$GvVz58WXMV}?@r$j^51F$Q3NVfZOw`sTG#V4oVahwu` z*wRG*D-{g-4p3bFzMu3Qufnt=zsktSuZ(PR7DhfN5H_x;EGXD2Y&A1 z)@%W}Xsp1nfWDYtFIz9k5cuPh^F@a@3*ETkU8~GaM*HJfLANPSE8H=y&M z#V)(+KC-A&y)U#A!*UZ98|7>1``%amLyWo4g~#&gu<7cdz@_EX{;g(wn0cgihxKTK zx%*DksJ1(|JE0n7~Uay%YMW+$zEuibg+F$MDSP286LeG-43<|TkQ~bcA`g50X@Tcbx!8rUP#*J-%*_!bD64#>sFTT zaw}d^CM>Kxhhh1M8nZ!9!`|TvX1}jFx%u5=9;vEwEWcj(aE5Do4Eh86z`4mJ1TX2- z#;05XZd{B1l3Bsup7=Dev^vPStN%n_i!uxnR_|xF@{C#ftQR=af5&>eEs*q@Sjdcw z$5f~1NWxkd0+&V}l1Inf{m0FNJwmeJ)7C&t?Yd`!Ei}KP|1G=)dJozazW#}novR>; zw3}`8S6TI^JU|3}62v7=uq4e8`%VB*7-x<~g?F6{gUI#rmG~M*sgx_kDkKJr{ zj#7;d&V8;CB-JAjMzRm}`KpyTkZD2>? zCv9N+UpJF-D>EuzDSS~d0qW0|HmhvUE{CoJe%oDS@m>9n9^&00t5UX)8-|unk>*Tz7+}+1z1?9XG~gH&qM?2P z(XIfxzhD6167?4VIQBXUz(D<_UUvb;d9;61X^r!a{SDJx_|2$gqD`Fw0AOP8>*(m^ z=K=(&q-Bp&Z_R414@^O(26vV1fu0h!4nR9ci9k>9-y#6jKxHcE=?JnF3iR~w@>32} zyYLr>G8O(kEO|lbFBXuy+67YsVgp`ET1$8DNAt6;?2PftGI=7C*shHXY z7ZAu>SyD0}AV4BORs!hjEGey|q$DXNBPk;zPUR5y3-SWl28w(63I9>@w;mlwKYL$S zZ;&g{OX#;=TRR{aq;}!LZ$tn3{PEK<(DmPzy!?))MV+AJZ;GU}gp}m}Netxb^nVfi zP5C4C*S!9iQ~j+>+1NGE(Zfu~)swoaRM*sHl%!PuGV@<3|913`D4Uu~c#RS=~9 z?`=5}{!ilnF8G&8(|?=1t|arHCjW!-ACkYPplsypO0{PDdkxj4RVDw+*b%>~^!@WE(3{x- z3liw>FHdGpwsc*atoEDD#P=NBO+&THu1u6$cy2a-WE0X12hh;cF_wSS#Gesx75WYT z9@LZ&(o|yq3#8KN>FG+IK8fNu;-7j;Wg*Qobh2-b{H0Ec;h#zUUeSMc>Yw9B zOZU$+^-rMqEA;+<2x=i-MF|73@Vq6#fZw zg?!I!f9ViHdEjz`=;B(ogsEdH|MfYBLC0P%pV>muimGwbsl;J-qGg%U8=ucO=93M( z8`+EBiv{ARDZ6ozV|!76h^-Sfz;OwuzN|B{&V6DwK36aNI)8%ESn%}rkadv}JPg+h z=Myw?n4g~)#U%79%qkORcEU5{g6#Im1oyPMNxcf}z*`fL3(BXEfYVYigd@XFz>%$< z(W?V*@eIg{O-8oMLIVgOR*|4`yFJU@Ke54YrSsb>U{^=F^%<-|=4CX)y1F=x+q z)u2uAm3tdL-W&Buufg{Z*LSgH+6zB;`?{f~MWXImljr7}8#8?zNX}KG!3y-x}^ed8fDcy+aC0Uyu=dRsVe*IF8$GJIsvE9yV&eI92OuLkYeq@aFKD{?^Mt)H7)OtQxsfw<|Xr*lNL* zduoyr!!5m)z^(cdy*pFf#&)a~a`({Ecgi(dZ6PO?W2-T)Ik%E7>$N6g>ce1_V|P6v z3f9G}eaJyXQj9IZy$RCWOOJh{{Gj{!`|AOT%3`g-t6GC)&Pj^cjbS@VXd7F)HOLU+ zv7XdP+1q_o*};W}TIU2!eXm@>G__AU=bqMRnCq$>7ib#wD}s667LXQ_IQ%~8)9EVO zp&o)|?-B^rIlv3Bl~jfEP>*y=K-FZH{s(p0>=q?u)_bngyJh9=#j8 z-5Qvf?!E&@kJj&xq<15W7iRPgU!+I3aQ9|i@4jIiJ#omPvf@}iTJc!@5SFxmJ*sWT zeE;B3qkXkf7|&BG?>W_ZPn0hM$ssKqMvTs0jOxbxsN1s?IG!HB5~q$*&X(Tmhr;4C zP$41vi*Ge<$7N+fzU4Lva3`H=)_{fTUmH5GgH1UV*OL$$y)dKdhi9#V%nv7Q=orP! zo@~_Pq`_+=yR$e{q6Kg-bbl}Nv$VrEeG;suLpw=TfPw#`5laxRFwkkhZ}3BC)9P%C zyn4%`=wfVyk+bYrzFnKx-CED-OVEhfmJp|E)26Pklm6=;n*0S`TL*zno8`8bcIS0b z3ETVmNv!d+W^DTNZVT#cVgaGPilkh&aOQYnv`vwNp{GL+Qh z(Uez#haJ!^fu;>uuTxI44OxGBR2)j)t9T`W%}MT+H-M>&!_cHnEb!Zx$=i7Sr{h+> z&d32($j)Yq*8!1P-G!@{Yu~@J3);96P)WovbQwI}m!3Vhb1O{Adn+V)%dC{Y%DC>J z4u8ywDUf+A{YyzCAYzI6O~_#(u6IMmDvMu_5@j87(7QWXtI(l>ZRRB&E=H(os%`&T z42oGpK@T9&D>i{a@q9ak(*cJAUz0k4)lz9`?jIU2*6puy;nqHm=i9WklEO^x=y#J= za&!B`mQcHKnjO^oY;@+6+_RxZaQ5zsFf{fAHZjg-)*mcTuqLt6o1>txXMjD>w?(%W z(5Hhm9w3KWt)f-y3yi@V^Tj&E4{BR`>DGa+#t>r3uyC)?s5qJ*$}HiUwzgRbT>9)- zCSKQz6%Sr0Ww6Vx2#AM=qNhm%v6CL-L?d1{bSE(RiM;+^USDO>5^3Nc7`JMseUyypaP#+*wXefv3h39yn-$rgqS(p-$5fA>43nX#N7fa? zLd7V(Aoxa=8S=II)46woC{A<~CZsx~W~kn)R?TisHtFXy)Q2e9RY1ISt6v~=;fpN1 zUxLT$KEm~2oI$Wj6uudaQqu?qVfo#OW|Dn}^ZWYV)W=t{Z9i~v2^zCm#XCAI@_l?3 zqGVp@mI|c&aF;y5nocjn{d(Ao+i_-6HEcp37ih11;`>NBi$Ceqlkuuw@qnB*op0ZD zYBKcY^=qy9^tW0yj1CTeC`2cHYeOUaQRLKGtELeRLb&EAeUE0v@~PQ0q-4sC5kyr$ zPN9Y?kD8N%r4Lexv}l28R+sO_*eH{;HF}(%45{75SIyl=6m&mAk*7`smFN-ato(b; zNG1p**aU)Aab6}~D7->09j-zMOL{ALEffUU!L3+dgc1}l!qoHxGhaGo9EPE=)d85z zEEGqoe@f@5c)&h7owU^CF43xHllpYT3Q7VObh~S`?flqXi$L|E&Zp<{k$=40xP>PT z6Ts8O@GCQg0c=G98&=+(V3G-XYrf-gPA*ooB5(^Gjqgs1<`0GlEMRs~&e~Rx9iE^G zW$XxSX}WN+Wr0jm$XL0ye>41(Fa2^~&RG}=ykcsfaDAZ;g*=m^0*;qEc0H6Fzt3Op z%7Aw6EXwxCKy}s3@Jl#qk{O?a+J*y?RIXwg_aq04jo^0#VRHf{h2dsaN)b*-H}~}I zZtbO01$XHY9yu-Do?q?K(}p%o8l6`w?g5t-Zc7HMdXBkRP;hkMeyhOF9ULJ8vBfqh zzQ_ISUj7QD^Dz<9c)P?14&LHz8SX{KNuWt`Dyi0fgCf0Rg?n!NLUje>79b6)CQ#huWHhc27bj6#w>`*W-z6T_f0Jw)1w#Ak_KP>dI=2tX z%OmqC>jAl)Bg0XuX*=>$Zjk}$PI>;*j>Y834cFn~uEKOH{;$^A8u%Pcf*!Vp_qrQs ze`_4EEa>CC`w9!)-E44%okPpaoq241cHG9#Y=7Y~qBB29Ewe2wxC_ZFxi9K<*db0T zf7EE!;+#}#r|0h~849|Q6{$Rb5lAqdcdA&9_!@P}y!T8Baf!a<;XpR)={)s2JYbr& z*RULtmOR3sgL=b!aeYHu0&yq&{WbAWozDfj$?F=L)n1|GsY}^!v$A`23cDeKAksIk z>?MWVr0!W#dfK)RV|7*LqHLcsytnhZTGAGnm}y@45YRi)1MYH z){AgNa_2e~KJq8&5tQ!ptAJuCPB7_*)3xr0K8#@On8jr1bnd4$E~#U+Ov=A(do?Sb z4sBMo(>mqp&Ad6CLeO%`djy_DKa(ROL;6jj2jD6r30RiRa)|%0J?syQQ84q zPf>S;da27!$T8R1Be<78RhxE9=5iSqyVX^5$zX1dS}YlJ(a^Y^0ojf9G>|ClD_19K zt>kSZCaYKE=JNwqyE#@LSu{1D&lNQ`eKIldC0j1@q~#ZPnF{~BqsF2(wP-mh;;M0k zCbP5UW!){~zx=0}H(*Sy+O&12SdY-(1;wRdHwL{w4MMpTYSm`^nxK7z@=!~@?=@2q zr~fn^Pl`~hwv>W{qn4q;Eo#a4|7_YQpJR2f#b|r87IOpY=H~W@tf)a4G`dNg$|Z%7 zx6MVf6o~!ah4(g}MAA2c%M$!OrzPZDAHxNHUsF5AiqE))5;4fM-8ZRpS?|MPGX}Nz z#E=GBl-gFgA|YmYA>*r21!cGp|ATVd0jAb^TE&Y<+TR&=2Vq9QnYHDE9{$@OGP!x{ z&Izh`D2m8ql!V>(yRC{cMbjm`f29)=fGmm*Z)w)I*Li>6QEObQJ8!J7w@!kR6RK8N z;d^6`Y3XDlxHzeYs_|0}^w5!IpZJXV&yOlR?3-EF?U??5b0_Kuae{M4C zL637?QowAG!X<+&s5JqDl%1;cOrwzE3zjU(-BbX>x0mi-YrVZ$Vg4hpgrn^ zoNVfiht*>JmY~rjyPo=cxJ;u>_7IG(aZjeK3h%Vc;ZBb>uBi$50?X&Gr;6J?=7T*J zAdZ;Ly`H@Gb@=Hsjk>;?48__Y)xBHU^p8Vkp3~J$KM4zeukw>lsZ#u)OebUxH* zlD2`iE3}>KS5vrnNG9$r3_N3v>6M?psIs#1lfvayk9&+G^L{-$HLE~(E{=NOO_kA# zk77Tq`0wBFsNP8=wHDvao~CY6>jTe}4)a~y6IF$Ld5!&Q zb`Mb`|3Tu;Nf-_iwhHWGiA zTy^Su!{eMA=IfE2z$@!C<4bH9yv5sIl=T%TY#p~_D2bxp&nZK!Fg{eEv zR`O1BaSv_LAyLv$Lz|4s&NyIjbg)LHlwwE6mHhWhGOoKjHLH5uY4sYw8~wDwPnKM7 zT1gUwYyfej96}sNtDhIhs@j4eSZYU^F~3Q$fQUgz1+C#5TJXN=g-@ObV&)(jFhblFePb!%s zyw2oM8xwB|}q&ogC8ftu+O<`c?`GaYiO9wJ+*=og{pEco!`?+N@n6 zl!&!q@Yv}j;#bSb;_fy0{4)VySC+IiWVy=uZ4@i?T9FY<05*#=8AKSt>zBq<@afaG z(VKQeq<^9_EL8otBUBwRygxZk@1Cguv?g?a+QZ(e_>L*m(|6SV@~rs=mES8{ zREfoR2Hx#fo@FJ^5Cd#>tESo~k@&fk)(_vdX7Ji}(VH5tQ0sEP%fd@)<7)yYMRyZW zNS}a$?5`>ym$r!yLrcxuADVL~6BdweO}F;^H@Bqw+kV+W_U$b?-QjIKaAzoC$`7%M zY_bn?^{&h@)yiY1_Vp6-Vo%wQp5WW<0P2uU5SDv!%=TUc3x6`|sXn<^MI7zk_)1m$ zS@iz3Q%FjQqC=ao{nU0OaJTn(pJ2+N^)K9>JN|b5ihoR&l3#vEZ^)#D(+cX6YM8G9 zOOSg4w|w2`h5XQIPWt?x3(#pfI1K1(U?%VqBGPzWJAk8SE)zkf!D{( z!m}zT+=~=UL715YKysilzKVDLH}K^L5+c_lF$i`)AD5^l#`E zeT3SdrM6u|qWJ}n^8Fk&sy|DfI)8*tPz&4thUrg~%wJbmz2nk)?RqRs9)Hf=th&Nn z)6;j2`M3TQ?L0HY)Kt*Y<(p^zxC4lAW2}GvI6=Mi^`9p4Wf@K0p;pO2HDC=8+S +Logs in an existing user using an email and password or a phone number and password. -Log in an existing user with an email and password or phone and password. +
+![Log In node](../../fs-sb-login.png) +
-{/*##head##*/} +This node authenticates the user against your connected Supabase project and, on success, creates an active user session. The session can then be used by other Supabase nodes in the app to access protected data, apply row-level security policies, and perform authenticated operations. + +The Log In node is typically used as part of an authentication flow together with input fields for credentials and conditional logic to handle successful and failed login attempts. -This is based on the [Supabase Client SDK - Sign in a user](https://supabase.com/docs/reference/javascript/auth-signinwithpassword). +This functionality is based on the Supabase Client SDK sign-in method. For implementation details and behavior, see +[Supabase Client SDK – Sign in a user](https://supabase.com/docs/reference/javascript/auth-signinwithpassword). diff --git a/library/modules/supabase/nodes/auth/log-out.md b/library/modules/supabase/nodes/auth/log-out.md index 2794b46..337560f 100644 --- a/library/modules/supabase/nodes/auth/log-out.md +++ b/library/modules/supabase/nodes/auth/log-out.md @@ -5,9 +5,17 @@ hide_title: true {/*##head##*/} # Log Out +
+Logs out the currently authenticated user from the connected Supabase project. -Log in an existing user with an email and password or phone and password. +
+![Log Out node](../../fs-sb-logout.png) +
+ +This node clears the active user session and removes the user’s authentication state from the app. After logging out, any subsequent Supabase operations will be executed without an authenticated user until a new login occurs. + +The Log Out node is typically used in navigation flows, account menus, or security-related actions where the user explicitly ends their session. -{/*##head##*/} -This is based on the [Supabase Client SDK - Sign out a user](https://supabase.com/docs/reference/javascript/auth-signout). +This functionality is based on the Supabase Client SDK sign-out method. For reference, see +[Supabase Client SDK – Sign out a user](https://supabase.com/docs/reference/javascript/auth-signout). \ No newline at end of file diff --git a/library/modules/supabase/nodes/auth/user.md b/library/modules/supabase/nodes/auth/user.md index 80c2c03..b6d06e6 100644 --- a/library/modules/supabase/nodes/auth/user.md +++ b/library/modules/supabase/nodes/auth/user.md @@ -5,5 +5,17 @@ hide_title: true {/*##head##*/} # User +
+Returns the currently authenticated user from the active Supabase session. + +
+ ![User node](../../fs-sb-user.png) +
+ +This node provides access to the user object associated with the current session. The returned data includes identifiers and metadata such as the user ID, email address, phone number, and any custom user metadata defined in Supabase. + +The User node is commonly used to display account information, personalize the UI, or drive conditional logic based on whether a user is logged in or not. If no active session exists, the node returns `null`. + +The returned user data reflects the authentication state managed by Supabase and automatically updates as the session changes. {/*##head##*/} diff --git a/library/modules/supabase/nodes/data/call-a-postgres-function.md b/library/modules/supabase/nodes/data/call-a-postgres-function.md index 8b0a124..a4023c1 100644 --- a/library/modules/supabase/nodes/data/call-a-postgres-function.md +++ b/library/modules/supabase/nodes/data/call-a-postgres-function.md @@ -2,10 +2,15 @@ hide_title: true --- -{/*##head##*/} +# Supabase Call a Postgres Function +
+Calls a Postgres function (RPC) defined in your Supabase database. -# Supabase Call a Postgres function +The Supabase Call a Postgres Function node allows you to execute a Postgres function directly on the database. This is commonly used for encapsulating complex queries, enforcing business logic close to the data, or performing operations that are difficult or inefficient to express using standard CRUD nodes. -{/*##head##*/} +Postgres functions are executed within the database context and can return scalar values, records, or sets of rows. This makes them well suited for aggregations, computed results, permission-aware queries, and reusable backend logic. -This is based on the [Supabase Client SDK - Call a Postgres function](https://supabase.com/docs/reference/javascript/rpc). +The node returns the raw result of the function execution. If the function returns multiple rows, the result will be an array. If no active session exists or permissions are insufficient, the call will fail according to your Supabase security and RLS configuration. + +This functionality is based on the Supabase Client SDK RPC method. For reference, see +[Supabase Client SDK – Call a Postgres function](https://supabase.com/docs/reference/javascript/rpc). \ No newline at end of file diff --git a/library/modules/supabase/nodes/data/create-new-record.md b/library/modules/supabase/nodes/data/create-new-record.md index 96069f7..d00decd 100644 --- a/library/modules/supabase/nodes/data/create-new-record.md +++ b/library/modules/supabase/nodes/data/create-new-record.md @@ -2,27 +2,32 @@ hide_title: true --- -{/*##head##*/} - # Create New Record +
+Creates a new record in a specified Supabase table. + +
+ ![Create New Record node](../../fs-sb-create-record.png) +
-The Create New Record node creates a new record in a specified table. You can define its field values and optionally set access control rules to manage who can read or write the record. +The Create New Record node inserts a new row into a selected table in your connected Supabase database. You define the field values either directly in the property panel or dynamically by connecting inputs from other nodes. -{/*##head##*/} +This node is commonly used for creating application data such as users, orders, content items, or any custom domain objects defined in your database schema. Insert operations respect Supabase Row Level Security (RLS) policies and the authentication context of the current user. -This is based on the [Supabase Client SDK - Insert data](https://supabase.com/docs/reference/javascript/insert). +This functionality is based on the Supabase Client SDK insert method. For reference, see +[Supabase Client SDK – Insert data](https://supabase.com/docs/reference/javascript/insert). ## Inputs
-| Data | Type | Description | -| -------------------------------------------- | ---- | --------------------------------- | -| Table Name | enum | List of all the available tables. | +| Data | Type | Description | +| -------------------------------------------- | ---- | ----------- | +| Table Name | enum | The table where the new record will be created. |
-Under the group "Data" all the table fields will be, and are designed to both be exist dynamically in the property panel (for supported types) and by making a connection. +Under the **Data** group, all available fields for the selected table are exposed. These fields can be set directly in the property panel for supported types or populated dynamically through node connections. ## Outputs @@ -30,15 +35,15 @@ Under the group "Data" all the table fields will be, and are designed to both be | Data | Type | Description | | --------------------------------------------- | ------- | ----------- | -| Object ID | string | | -| Success | signal | | -| Failure | signal | | -| Finally | signal | | -| Is Fetching | boolean | | -| Is Fetched | boolean | | -| Status | string | | -| Is Success | boolean | | -| Is Error | boolean | | -| Error Text | string | | - - +| Object ID | string | Internal identifier for this insert operation. | +| Success | signal | Triggered when the record is successfully created. | +| Failure | signal | Triggered if the insert operation fails. | +| Finally | signal | Triggered after the operation completes, regardless of outcome. | +| Is Fetching | boolean | True while the insert request is in progress. | +| Is Fetched | boolean | True once the request has completed. | +| Status | string | Status returned from the insert operation. | +| Is Success | boolean | True if the record was created successfully. | +| Is Error | boolean | True if an error occurred. | +| Error Text | string | Error message returned by Supabase, if any. | + + \ No newline at end of file diff --git a/library/modules/supabase/nodes/edge-functions/call-edge-function.md b/library/modules/supabase/nodes/edge-functions/call-edge-function.md index a2fc72d..f50557e 100644 --- a/library/modules/supabase/nodes/edge-functions/call-edge-function.md +++ b/library/modules/supabase/nodes/edge-functions/call-edge-function.md @@ -2,15 +2,18 @@ hide_title: true --- -{/*##head##*/} - # Call Edge Function +
+Calls a specific Supabase Edge Function by name and sends an optional request body. -The Call Edge Function node calls a specific Supabase Edge Function. You provide the unique function name, and the request body. +
+ ![Call Edge Function node](../../fs-sb-call-function.png) +
-{/*##head##*/} +The Call Edge Function node invokes a Supabase Edge Function deployed in your Supabase project. Provide the function name and an optional payload, and Fluxscape will execute the request and return the response object. -This is based on the [Supabase Client SDK - Invokes a Supabase Edge Function](https://supabase.com/docs/reference/javascript/functions-invoke). +This node is based on the Supabase Client SDK invoke method. For reference, see +[Supabase Client SDK – Invokes a Supabase Edge Function](https://supabase.com/docs/reference/javascript/functions-invoke). ## Inputs @@ -18,44 +21,23 @@ This is based on the [Supabase Client SDK - Invokes a Supabase Edge Function](ht | Data | Type | Description | | ----------------------------------------------- | ---------- | ----------- | -| Function Name | string | | -| Options | javascript | | +| Function Name | string | The name of the Edge Function to invoke (without a URL). | +| Options | javascript | A script that returns an options object for the request. | -Similar to how the Function node works, you can use `Inputs.Value` inside the Options script to create a custom request. +Similar to how other scriptable nodes work, you can use `Inputs.Value` inside the Options script to build a dynamic request. ### Options ```js -// Write your query script here, check out the reference documentation for examples +// Return an options object for the Edge Function invocation. +// Examples: headers, method, responseType, body, etc. return { // headers: { - // "my-custom-header": 'my-custom-header-value', + // "my-custom-header": "my-custom-header-value", // }, - // method: 'POST', - // responseType: 'text', + // method: "POST", + // responseType: "text", body: JSON.stringify(Inputs.Data), -}; -``` - -## Outputs - -> The response you get back is a pure object, and will not be converted to a Noodl Object. - -
- -| Data | Type | Description | -| --------------------------------------------- | ------- | ----------- | -| Object ID | string | | -| Success | signal | | -| Failure | signal | | -| Finally | signal | | -| Is Fetching | boolean | | -| Is Fetched | boolean | | -| Status | string | | -| Is Success | boolean | | -| Is Error | boolean | | -| Error Text | string | | - -
+}; \ No newline at end of file diff --git a/library/modules/supabase/nodes/events/create-record.md b/library/modules/supabase/nodes/events/create-record.md index afdb121..f665270 100644 --- a/library/modules/supabase/nodes/events/create-record.md +++ b/library/modules/supabase/nodes/events/create-record.md @@ -2,23 +2,27 @@ hide_title: true --- -{/*##head##*/} - # Supabase Client Event Create Record +
+Emits a signal when a record is created by the client in Supabase. + +
+ ![Supabase Client Event Create Record node](../../fs-sb-client-create-record.png) +
-This node is used to receive a signal when a Supabase record is created by the client. Similiar to the [Receive Event node](/nodes/events/receive-event), just the Send Event node is built into the Create Record node. +This node listens for record creation events triggered by client-side actions in Supabase. It allows your app to react immediately when new data is created, such as updating UI state, triggering workflows, or chaining additional logic. -{/*##head##*/} +It works similarly to the [Receive Event node](/nodes/events/receive-event), but in this case the event emission is built directly into the Create Record flow, removing the need for a separate Send Event node. ## Inputs
-| Data | Type | Description | -| ------------------------------------------------ | ------- | ----------------------------------------------------------------------------------- | -| Enable | boolean | Allow filtering on a specific table events, otherwise this will receive all events. | -| Table Name | string | Visible when "Enable" is true. | -| Data Object ID | string | | +| Data | Type | Description | +| ------------------------------------------------ | ------- | ----------- | +| Enable | boolean | Enables filtering by a specific table. When disabled, events from all tables are received. | +| Table Name | string | The table to listen to. Only visible when **Enable** is true. | +| Data Object ID | string | Optional identifier used to scope or correlate the event. |
@@ -28,8 +32,8 @@ This node is used to receive a signal when a Supabase record is created by the c | Data | Type | Description | | -------------------------------------------- | ------ | ----------- | -| On | signal | | -| Table Name | string | | -| Record ID | string | | +| On | signal | Triggered when a matching record creation event is received. | +| Table Name | string | The name of the table where the record was created. | +| Record ID | string | The identifier of the newly created record. | - + \ No newline at end of file diff --git a/library/modules/supabase/nodes/events/delete-records.md b/library/modules/supabase/nodes/events/delete-records.md index 0af7c2d..d12bf1d 100644 --- a/library/modules/supabase/nodes/events/delete-records.md +++ b/library/modules/supabase/nodes/events/delete-records.md @@ -2,22 +2,26 @@ hide_title: true --- -{/*##head##*/} - # Supabase Client Event Delete Records +
+Emits a signal when one or more records are deleted by the client in Supabase. + +
+ ![Supabase Client Event Delete Records node](../../fs-sb-client-delete-record.png) +
-This node is used to receive a signal when a Supabase record is deleted by the client. Similiar to the [Receive Event node](/nodes/events/receive-event), just the Send Event node is built into the Delete Records node. +This node listens for record deletion events triggered by client-side actions in Supabase. It allows your app to react immediately when records are removed, such as updating lists, refreshing views, or triggering follow-up workflows. -{/*##head##*/} +It works similarly to the [Receive Event node](/nodes/events/receive-event), but in this case the event emission is built directly into the Delete Records flow, removing the need for a separate Send Event node. ## Inputs
-| Data | Type | Description | -| -------------------------------------------- | ------- | ----------------------------------------------------------------------------------- | -| Enable | boolean | Allow filtering on a specific table events, otherwise this will receive all events. | -| Table Name | string | Visible when "Enable" is true. | +| Data | Type | Description | +| -------------------------------------------- | ------- | ----------- | +| Enable | boolean | Enables filtering by a specific table. When disabled, events from all tables are received. | +| Table Name | string | The table to listen to. Only visible when **Enable** is true. |
@@ -27,7 +31,7 @@ This node is used to receive a signal when a Supabase record is deleted by the c | Data | Type | Description | | -------------------------------------------- | ------ | ----------- | -| On | signal | | -| Table Name | string | | +| On | signal | Triggered when a matching record deletion event is received. | +| Table Name | string | The name of the table where records were deleted. | - + \ No newline at end of file diff --git a/library/modules/supabase/nodes/events/update-records.md b/library/modules/supabase/nodes/events/update-records.md index 4f74489..ac3a781 100644 --- a/library/modules/supabase/nodes/events/update-records.md +++ b/library/modules/supabase/nodes/events/update-records.md @@ -2,23 +2,27 @@ hide_title: true --- -{/*##head##*/} - # Supabase Client Event Update Records +
+Emits a signal when one or more records are updated by the client in Supabase. + +
+ ![Supabase Client Event Update Records node](../../fs-sb-client-update-record.png) +
-This node is used to receive a signal when a Supabase record is updated by the client. Similiar to the [Receive Event node](/nodes/events/receive-event), just the Send Event node is built into the Update Records node. +This node listens for record update events triggered by client-side actions in Supabase. It allows your app to react immediately when existing data changes, such as refreshing views, recalculating derived state, or triggering follow-up workflows. -{/*##head##*/} +It works similarly to the [Receive Event node](/nodes/events/receive-event), but in this case the event emission is built directly into the Update Records flow, removing the need for a separate Send Event node. ## Inputs
-| Data | Type | Description | -| ------------------------------------------------ | ------- | ----------------------------------------------------------------------------------- | -| Enable | boolean | Allow filtering on a specific table events, otherwise this will receive all events. | -| Table Name | string | Visible when "Enable" is true. | -| Data Object ID | string | | +| Data | Type | Description | +| ------------------------------------------------ | ------- | ----------- | +| Enable | boolean | Enables filtering by a specific table. When disabled, events from all tables are received. | +| Table Name | string | The table to listen to. Only visible when **Enable** is true. | +| Data Object ID | string | Optional identifier used to scope or correlate the event. |
@@ -28,7 +32,7 @@ This node is used to receive a signal when a Supabase record is updated by the c | Data | Type | Description | | -------------------------------------------- | ------ | ----------- | -| On | signal | | -| Table Name | string | | +| On | signal | Triggered when a matching record update event is received. | +| Table Name | string | The name of the table where records were updated. | - + \ No newline at end of file diff --git a/library/modules/supabase/nodes/realtime/broadcast-message.md b/library/modules/supabase/nodes/realtime/broadcast-message.md index 1b2b169..4f0cbb4 100644 --- a/library/modules/supabase/nodes/realtime/broadcast-message.md +++ b/library/modules/supabase/nodes/realtime/broadcast-message.md @@ -2,10 +2,17 @@ hide_title: true --- -{/*##head##*/} - # Supabase Realtime Broadcast Message +
+Broadcasts a message to a Supabase Realtime channel so other connected clients can react immediately. + +
+ ![Realtime Broadcast Message node](../../fs-sb-call-broadcast-realtime.png) +
+ +The Supabase Realtime Broadcast Message node sends an event payload to a Supabase Realtime channel using broadcast messaging. This is useful for lightweight real-time signaling between connected clients, such as notifying other users that something has changed, triggering UI updates, or coordinating collaborative interactions. -{/*##head##*/} +Broadcast messages are ephemeral and are not persisted in the database. Only clients that are actively subscribed to the channel at the time of sending will receive the message. If you require persistence or guaranteed processing, consider using database changes or Edge Functions instead. -This is based on the [Supabase Client SDK - Broadcast a message](https://supabase.com/docs/reference/javascript/broadcastmessage). +This functionality is based on the Supabase Client SDK broadcast message method. For reference, see +[Supabase Client SDK – Broadcast a message](https://supabase.com/docs/reference/javascript/broadcastmessage). \ No newline at end of file diff --git a/library/modules/supabase/nodes/realtime/set-presence.md b/library/modules/supabase/nodes/realtime/set-presence.md index 16f30e9..4a8babc 100644 --- a/library/modules/supabase/nodes/realtime/set-presence.md +++ b/library/modules/supabase/nodes/realtime/set-presence.md @@ -2,8 +2,19 @@ hide_title: true --- -{/*##head##*/} - # Supabase Realtime Set Presence +
+Sets the presence state for the current user on a Supabase Realtime channel. + +
+ ![Realtime Set Presence node](../../fs-sb-set-presence.png) +
+ +The Supabase Realtime Set Presence node updates the presence information for the currently authenticated user on a specified Realtime channel. Presence data is commonly used to track which users are online, active, or participating in a shared context such as a room, document, or collaborative session. + +Presence state is ephemeral and exists only while the client is connected to the channel. When a user disconnects or leaves the channel, their presence is automatically removed. This makes it suitable for real-time indicators such as online users, cursors, activity status, or collaboration awareness. + +This functionality is based on the Supabase Realtime presence API. Presence updates are broadcast to all clients subscribed to the same channel, allowing UIs to stay in sync as users join, update their state, or leave. -{/*##head##*/} +For reference, see +[Supabase Realtime – Presence](https://supabase.com/docs/guides/realtime/presence). \ No newline at end of file diff --git a/library/modules/supabase/nodes/realtime/subscribe-to-channel.md b/library/modules/supabase/nodes/realtime/subscribe-to-channel.md index fb48c33..3f52579 100644 --- a/library/modules/supabase/nodes/realtime/subscribe-to-channel.md +++ b/library/modules/supabase/nodes/realtime/subscribe-to-channel.md @@ -2,10 +2,18 @@ hide_title: true --- -{/*##head##*/} - # Supabase Realtime Subscribe To Channel +
+Subscribes the client to a Supabase Realtime channel to receive real-time events. + +
+ ![Realtime Subscribe To Channel node](../../fs-sb-subscribe-channel.png) +
+ +The Supabase Realtime Subscribe To Channel node connects the client to a specified Realtime channel. Once subscribed, the client can receive broadcast messages, presence updates, and other real-time events published on that channel. + +This node is typically used as the entry point for real-time features such as live updates, collaborative experiences, activity feeds, or presence-aware interfaces. It is commonly paired with nodes like **Broadcast Message** and **Set Presence** to build complete real-time workflows. -{/*##head##*/} +Subscriptions are active as long as the client remains connected. When the client disconnects or unsubscribes, it will stop receiving events from the channel. -This is based on the [Supabase Client SDK - Subscribe to channel](https://supabase.com/docs/reference/javascript/subscribe). +This functionality is based on the Supabase Client SDK channel subscription method. For reference, see [Supabase Client SDK – Subscribe to channel](https://supabase.com/docs/reference/javascript/subscribe). \ No newline at end of file diff --git a/library/modules/supabase/nodes/storage/delete-files.md b/library/modules/supabase/nodes/storage/delete-files.md index 91a15fc..7646d55 100644 --- a/library/modules/supabase/nodes/storage/delete-files.md +++ b/library/modules/supabase/nodes/storage/delete-files.md @@ -2,23 +2,30 @@ hide_title: true --- -{/*##head##*/} - # Supabase Delete Files +
+Deletes one or more files from a Supabase Storage bucket. + +
+ ![Supabase Delete Files node](../../fs-sb-delete-files.png) +
-{/*##head##*/} +This node removes files from the specified Supabase Storage bucket based on the provided file paths. It is commonly used for cleanup operations, user-initiated file removal, or managing stored assets within an application. -This is based on the [Supabase Client SDK - Delete files in a bucket](https://supabase.com/docs/reference/javascript/storage-from-remove). +Delete operations respect Supabase Storage access policies and the authentication context of the current user. + +This functionality is based on the Supabase Client SDK method for deleting files from a bucket. For reference, see +[Supabase Client SDK – Delete files in a bucket](https://supabase.com/docs/reference/javascript/storage-from-remove). ## Inputs
-| Data | Type | Description | -| ------------------------------------------------- | ------------- | ----------- | -| Delete | signal | | -| Bucket | string | | -| Paths to Delete | array of string | | +| Data | Type | Description | +| ------------------------------------------------- | --------------- | ----------- | +| Delete | signal | Triggers the delete operation. | +| Bucket | string | The Storage bucket name. | +| Paths to Delete | array of string | One or more file paths to remove from the bucket. |
@@ -26,17 +33,17 @@ This is based on the [Supabase Client SDK - Delete files in a bucket](https://su
-| Data | Type | Description | -| ----------------------------------------------- | ------------- | ----------- | -| Deleted Paths | array of string | | -| Is Deleting | boolean | | -| Is Deleted | boolean | | -| Status | string | | -| Is Success | boolean | | -| Is Error | boolean | | -| Error Text | string | | -| Success | signal | | -| Failure | signal | | -| Finally | signal | | - -
+| Data | Type | Description | +| ----------------------------------------------- | --------------- | ----------- | +| Deleted Paths | array of string | The file paths that were successfully deleted. | +| Is Deleting | boolean | True while the delete operation is in progress. | +| Is Deleted | boolean | True once the delete operation has completed. | +| Status | string | Status returned from the delete operation. | +| Is Success | boolean | True if the files were deleted successfully. | +| Is Error | boolean | True if an error occurred. | +| Error Text | string | Error message returned by Supabase, if any. | +| Success | signal | Triggered when the operation completes successfully. | +| Failure | signal | Triggered if the operation fails. | +| Finally | signal | Triggered after the operation completes, regardless of outcome. | + + \ No newline at end of file diff --git a/library/modules/supabase/nodes/storage/download-file.md b/library/modules/supabase/nodes/storage/download-file.md index c4c6002..45984bf 100644 --- a/library/modules/supabase/nodes/storage/download-file.md +++ b/library/modules/supabase/nodes/storage/download-file.md @@ -2,13 +2,20 @@ hide_title: true --- -{/*##head##*/} - # Download File +
+Downloads a file from a Supabase Storage bucket. + +
+ ![Supabase Download File node](../../fs-sb-download-file.png) +
-{/*##head##*/} +This node retrieves a file stored in Supabase Storage and makes its contents available to the app. It can be used to download assets such as images, documents, or data files for display, processing, or client-side handling. -This is based on the [Supabase Client SDK - Download a file](https://supabase.com/docs/reference/javascript/storage-from-download). +The downloaded file can be accessed in multiple formats depending on your use case, including a raw Blob, text, or an ArrayBuffer. + +This functionality is based on the Supabase Client SDK method for downloading files from Storage. For reference, see +[Supabase Client SDK – Download a file](https://supabase.com/docs/reference/javascript/storage-from-download). ## Inputs @@ -16,9 +23,9 @@ This is based on the [Supabase Client SDK - Download a file](https://supabase.co | Data | Type | Description | | ------------------------------------------------------ | ------ | ----------- | -| Download | signal | | -| Bucket | string | | -| Path (within bucket) | string | | +| Download | signal | Triggers the download operation. | +| Bucket | string | The Storage bucket name. | +| Path (within bucket) | string | The file path inside the bucket. | @@ -28,17 +35,17 @@ This is based on the [Supabase Client SDK - Download a file](https://supabase.co | Data | Type | Description | | --------------------------------------------------- | ------- | ----------- | -| File Blob | \* | | -| File Text | string | | -| File Array Buffer | \* | | -| Is Downloading | boolean | | -| Is Downloaded | boolean | | -| Status | string | | -| Is Success | boolean | | -| Is Error | boolean | | -| Error Text | string | | -| Success | signal | | -| Failure | signal | | -| Finally | signal | | - - +| File Blob | * | The downloaded file as a binary Blob. | +| File Text | string | The file contents as text, when applicable. | +| File Array Buffer | * | The file contents as an ArrayBuffer. | +| Is Downloading | boolean | True while the download is in progress. | +| Is Downloaded | boolean | True once the download has completed. | +| Status | string | Status returned from the download operation. | +| Is Success | boolean | True if the file was downloaded successfully. | +| Is Error | boolean | True if an error occurred. | +| Error Text | string | Error message returned by Supabase, if any. | +| Success | signal | Triggered when the operation completes successfully. | +| Failure | signal | Triggered if the operation fails. | +| Finally | signal | Triggered after the operation completes, regardless of outcome. | + + \ No newline at end of file diff --git a/library/modules/supabase/nodes/storage/retrieve-public-file-urls.md b/library/modules/supabase/nodes/storage/retrieve-public-file-urls.md index 907061e..a730827 100644 --- a/library/modules/supabase/nodes/storage/retrieve-public-file-urls.md +++ b/library/modules/supabase/nodes/storage/retrieve-public-file-urls.md @@ -2,13 +2,18 @@ hide_title: true --- -{/*##head##*/} - # Supabase Retrieve Public File URLs +
+Generates public URLs for one or more files stored in a Supabase Storage bucket. + +
+ ![Supabase Retrieve Public File URLs node](../../fs-sb-retrieve-public-file-url.png) +
+This node is useful when you want to display images, link to documents, or render media that is stored in Supabase Storage. The result is a list of URLs corresponding to the provided file paths. -{/*##head##*/} +Depending on your bucket configuration, the generated URLs may be publicly accessible or time-limited. Expiration can be configured to control how long the URLs remain valid. -This is based on the [Supabase Client SDK - Retrieve public URL](https://supabase.com/docs/reference/javascript/storage-from-getpublicurl). +This functionality is based on the Supabase Client SDK method for retrieving a public URL. For reference, see [Supabase Client SDK – Retrieve public URL](https://supabase.com/docs/reference/javascript/storage-from-getpublicurl). ## Inputs @@ -16,10 +21,10 @@ This is based on the [Supabase Client SDK - Retrieve public URL](https://supabas | Data | Type | Description | | ---------------------------------------------------------- | --------------- | ----------- | -| Fetch | signal | | -| Bucket | string | | -| Paths (array of strings) | array of string | | -| Expires In (seconds) | number | | +| Fetch | signal | Triggers the URL generation. | +| Bucket | string | The Storage bucket name. | +| Paths (array of strings) | array of string | One or more file paths inside the bucket. | +| Expires In (seconds) | number | Optional. Used when generating time-limited URLs. | @@ -29,15 +34,15 @@ This is based on the [Supabase Client SDK - Retrieve public URL](https://supabas | Data | Type | Description | | --------------------------------------------- | --------------- | ----------- | -| Signed URLs | array of string | | -| Is Fetching | boolean | | -| Is Fetched | boolean | | -| Is Success | boolean | | -| Is Error | boolean | | -| Status | string | | -| Error Text | string | | -| Success | signal | | -| Failure | signal | | -| Finally | signal | | - - +| Signed URLs | array of string | The resulting URLs, in the same order as the input paths. | +| Is Fetching | boolean | True while the request is in progress. | +| Is Fetched | boolean | True once the request has completed. | +| Is Success | boolean | True if URLs were generated successfully. | +| Is Error | boolean | True if an error occurred. | +| Status | string | Status returned from the operation. | +| Error Text | string | Error message returned by Supabase, if any. | +| Success | signal | Triggered when the operation completes successfully. | +| Failure | signal | Triggered if the operation fails. | +| Finally | signal | Triggered after the operation completes, regardless of outcome. | + + \ No newline at end of file diff --git a/library/modules/supabase/nodes/storage/upload-file-resumable.md b/library/modules/supabase/nodes/storage/upload-file-resumable.md index e473f11..75a73ed 100644 --- a/library/modules/supabase/nodes/storage/upload-file-resumable.md +++ b/library/modules/supabase/nodes/storage/upload-file-resumable.md @@ -2,13 +2,20 @@ hide_title: true --- -{/*##head##*/} - # Supabase Upload File (Resumable) +
+Uploads a file to Supabase Storage using resumable upload support. + +
+ ![Supabase Upload File (Resumable) node](../../fs-sb-resumable-upload.png) +
-{/*##head##*/} +This node allows you to upload large files reliably to Supabase Storage. Resumable uploads make it possible to pause, resume, or cancel an upload, which is especially useful for unstable network conditions or large file transfers. -This is based on the [Resumable Uploads](https://supabase.com/docs/guides/storage/uploads/resumable-uploads). +The upload is performed against a specified Storage bucket and path. When enabled, upsert allows an existing file at the same path to be overwritten. + +This functionality is based on Supabase’s resumable upload support. For reference, see +[Supabase – Resumable Uploads](https://supabase.com/docs/guides/storage/uploads/resumable-uploads). ## Inputs @@ -16,14 +23,14 @@ This is based on the [Resumable Uploads](https://supabase.com/docs/guides/storag | Data | Type | Description | | ------------------------------------------------------ | ----------- | ----------- | -| Upload | signal | | -| Bucket | string | | -| Path (within bucket) | string | | -| Upsert | boolean | | -| File | Blob / File | | -| Pause Upload | signal | | -| Resume Upload | signal | | -| Cancel Upload | signal | | +| Upload | signal | Starts the upload process. | +| Bucket | string | The Storage bucket name. | +| Path (within bucket) | string | The destination file path inside the bucket. | +| Upsert | boolean | Whether to overwrite an existing file at the same path. | +| File | Blob / File | The file or blob to upload. | +| Pause Upload | signal | Pauses an ongoing upload. | +| Resume Upload | signal | Resumes a paused upload. | +| Cancel Upload | signal | Cancels the upload operation. | @@ -31,18 +38,18 @@ This is based on the [Resumable Uploads](https://supabase.com/docs/guides/storag
-| Data | Type | Description | -| ------------------------------------------------- | ------- | --------------------------------------------- | -| Upload Progress | number | | -| Public Url | string | | -| Is Uploading | boolean | | -| Is Uploaded | boolean | | -| Status | string | "idle" or "uploading" or "success" or "error" | -| Is Success | boolean | | -| Is Error | boolean | | -| Error Text | string | | -| Success | signal | | -| Failure | signal | | -| Finally | signal | | - -
+| Data | Type | Description | +| ------------------------------------------------- | ------- | ----------- | +| Upload Progress | number | Upload progress as a percentage value. | +| Public Url | string | Public URL of the uploaded file, if applicable. | +| Is Uploading | boolean | True while the upload is in progress. | +| Is Uploaded | boolean | True once the upload has completed successfully. | +| Status | string | Current upload status: `idle`, `uploading`, `success`, or `error`. | +| Is Success | boolean | True if the upload completed successfully. | +| Is Error | boolean | True if an error occurred. | +| Error Text | string | Error message returned by Supabase, if any. | +| Success | signal | Triggered when the upload completes successfully. | +| Failure | signal | Triggered if the upload fails. | +| Finally | signal | Triggered after the upload completes, regardless of outcome. | + + \ No newline at end of file diff --git a/library/modules/supabase/nodes/storage/upload-file.md b/library/modules/supabase/nodes/storage/upload-file.md index 8911df3..34218f1 100644 --- a/library/modules/supabase/nodes/storage/upload-file.md +++ b/library/modules/supabase/nodes/storage/upload-file.md @@ -2,15 +2,20 @@ hide_title: true --- -{/*##head##*/} - # Supabase Upload File +
+Uploads a file to an existing Supabase Storage bucket. + +
+ ![Supabase Upload File node](../../fs-sb-upload-file.png) +
-Uploads a file to an existing bucket. +This node uploads a file directly to Supabase Storage at the specified bucket and path. It is best suited for smaller files or situations where resumable uploads are not required. -{/*##head##*/} +When enabled, the upsert option allows an existing file at the same path to be overwritten. Upload operations respect Supabase Storage access policies and are executed in the context of the current user. -This is based on the [Supabase Client SDK - Upload a file](https://supabase.com/docs/reference/javascript/storage-from-upload). +This functionality is based on the Supabase Client SDK upload method. For reference, see +[Supabase Client SDK – Upload a file](https://supabase.com/docs/reference/javascript/storage-from-upload). ## Inputs @@ -18,11 +23,11 @@ This is based on the [Supabase Client SDK - Upload a file](https://supabase.com/ | Data | Type | Description | | ------------------------------------------------------ | ----------- | ----------- | -| Upload | signal | | -| Bucket | string | | -| Path (within bucket) | string | | -| Upsert | boolean | | -| File | Blob / File | | +| Upload | signal | Triggers the upload operation. | +| Bucket | string | The Storage bucket name. | +| Path (within bucket) | string | The destination file path inside the bucket. | +| Upsert | boolean | Whether to overwrite an existing file at the same path. | +| File | Blob / File | The file or blob to upload. | @@ -30,20 +35,20 @@ This is based on the [Supabase Client SDK - Upload a file](https://supabase.com/
-| Data | Type | Description | -| ------------------------------------------------ | ------- | --------------------------------------------- | -| File ID | string | | -| File Path | string | | -| File Full Path | string | | -| Public Url | string | | -| Is Uploading | boolean | | -| Is Uploaded | boolean | | -| Status | string | "idle" or "uploading" or "success" or "error" | -| Is Success | boolean | | -| Is Error | boolean | | -| Error Text | string | | -| Success | signal | | -| Failure | signal | | -| Finally | signal | | - -
+| Data | Type | Description | +| ------------------------------------------------ | ------- | ----------- | +| File ID | string | Identifier returned for the uploaded file, if available. | +| File Path | string | The file path within the bucket. | +| File Full Path | string | The full resolved path to the uploaded file. | +| Public Url | string | Public URL of the uploaded file, if applicable. | +| Is Uploading | boolean | True while the upload is in progress. | +| Is Uploaded | boolean | True once the upload has completed successfully. | +| Status | string | Current upload status: `idle`, `uploading`, `success`, or `error`. | +| Is Success | boolean | True if the upload completed successfully. | +| Is Error | boolean | True if an error occurred. | +| Error Text | string | Error message returned by Supabase, if any. | +| Success | signal | Triggered when the upload completes successfully. | +| Failure | signal | Triggered if the upload fails. | +| Finally | signal | Triggered after the upload completes, regardless of outcome. | + + \ No newline at end of file diff --git a/library/modules/supabase/release-notes.md b/library/modules/supabase/release-notes.md index 9b27463..576e4e8 100644 --- a/library/modules/supabase/release-notes.md +++ b/library/modules/supabase/release-notes.md @@ -3,6 +3,7 @@ title: Release Notes hide_title: true --- -# Release Notes +# Release Notes - TBA Version 1.0 [yyyy-mm-dd] + From c8ff32f0222ffff3b9bc7111258f33f8a7cf0aa7 Mon Sep 17 00:00:00 2001 From: Kanholt Date: Mon, 26 Jan 2026 22:04:27 +0100 Subject: [PATCH 2/4] correction remove html tags --- library/modules/supabase/nodes/auth/log-in.md | 2 +- library/modules/supabase/nodes/auth/log-out.md | 2 +- library/modules/supabase/nodes/auth/user.md | 2 +- library/modules/supabase/nodes/data/call-a-postgres-function.md | 2 +- library/modules/supabase/nodes/data/create-new-record.md | 2 +- .../modules/supabase/nodes/edge-functions/call-edge-function.md | 2 +- library/modules/supabase/nodes/events/create-record.md | 2 +- library/modules/supabase/nodes/events/delete-records.md | 2 +- library/modules/supabase/nodes/events/update-records.md | 2 +- library/modules/supabase/nodes/realtime/broadcast-message.md | 2 +- library/modules/supabase/nodes/realtime/set-presence.md | 2 +- library/modules/supabase/nodes/realtime/subscribe-to-channel.md | 2 +- library/modules/supabase/nodes/storage/delete-files.md | 2 +- library/modules/supabase/nodes/storage/download-file.md | 2 +- .../modules/supabase/nodes/storage/retrieve-public-file-urls.md | 2 +- library/modules/supabase/nodes/storage/upload-file-resumable.md | 2 +- library/modules/supabase/nodes/storage/upload-file.md | 2 +- 17 files changed, 17 insertions(+), 17 deletions(-) diff --git a/library/modules/supabase/nodes/auth/log-in.md b/library/modules/supabase/nodes/auth/log-in.md index 3ed5a80..c3e848c 100644 --- a/library/modules/supabase/nodes/auth/log-in.md +++ b/library/modules/supabase/nodes/auth/log-in.md @@ -5,7 +5,7 @@ hide_title: true {/*##head##*/} # Log In -
+ Logs in an existing user using an email and password or a phone number and password.
diff --git a/library/modules/supabase/nodes/auth/log-out.md b/library/modules/supabase/nodes/auth/log-out.md index 337560f..630a41f 100644 --- a/library/modules/supabase/nodes/auth/log-out.md +++ b/library/modules/supabase/nodes/auth/log-out.md @@ -5,7 +5,7 @@ hide_title: true {/*##head##*/} # Log Out -
+ Logs out the currently authenticated user from the connected Supabase project.
diff --git a/library/modules/supabase/nodes/auth/user.md b/library/modules/supabase/nodes/auth/user.md index b6d06e6..cc1ac1f 100644 --- a/library/modules/supabase/nodes/auth/user.md +++ b/library/modules/supabase/nodes/auth/user.md @@ -5,7 +5,7 @@ hide_title: true {/*##head##*/} # User -
+ Returns the currently authenticated user from the active Supabase session.
diff --git a/library/modules/supabase/nodes/data/call-a-postgres-function.md b/library/modules/supabase/nodes/data/call-a-postgres-function.md index a4023c1..6fea31e 100644 --- a/library/modules/supabase/nodes/data/call-a-postgres-function.md +++ b/library/modules/supabase/nodes/data/call-a-postgres-function.md @@ -3,7 +3,7 @@ hide_title: true --- # Supabase Call a Postgres Function -
+ Calls a Postgres function (RPC) defined in your Supabase database. The Supabase Call a Postgres Function node allows you to execute a Postgres function directly on the database. This is commonly used for encapsulating complex queries, enforcing business logic close to the data, or performing operations that are difficult or inefficient to express using standard CRUD nodes. diff --git a/library/modules/supabase/nodes/data/create-new-record.md b/library/modules/supabase/nodes/data/create-new-record.md index d00decd..5f1f930 100644 --- a/library/modules/supabase/nodes/data/create-new-record.md +++ b/library/modules/supabase/nodes/data/create-new-record.md @@ -3,7 +3,7 @@ hide_title: true --- # Create New Record -
+ Creates a new record in a specified Supabase table.
diff --git a/library/modules/supabase/nodes/edge-functions/call-edge-function.md b/library/modules/supabase/nodes/edge-functions/call-edge-function.md index f50557e..9c703cc 100644 --- a/library/modules/supabase/nodes/edge-functions/call-edge-function.md +++ b/library/modules/supabase/nodes/edge-functions/call-edge-function.md @@ -3,7 +3,7 @@ hide_title: true --- # Call Edge Function -
+ Calls a specific Supabase Edge Function by name and sends an optional request body.
diff --git a/library/modules/supabase/nodes/events/create-record.md b/library/modules/supabase/nodes/events/create-record.md index f665270..04af028 100644 --- a/library/modules/supabase/nodes/events/create-record.md +++ b/library/modules/supabase/nodes/events/create-record.md @@ -3,7 +3,7 @@ hide_title: true --- # Supabase Client Event Create Record -
+ Emits a signal when a record is created by the client in Supabase.
diff --git a/library/modules/supabase/nodes/events/delete-records.md b/library/modules/supabase/nodes/events/delete-records.md index d12bf1d..cddc6e8 100644 --- a/library/modules/supabase/nodes/events/delete-records.md +++ b/library/modules/supabase/nodes/events/delete-records.md @@ -3,7 +3,7 @@ hide_title: true --- # Supabase Client Event Delete Records -
+ Emits a signal when one or more records are deleted by the client in Supabase.
diff --git a/library/modules/supabase/nodes/events/update-records.md b/library/modules/supabase/nodes/events/update-records.md index ac3a781..29d87a8 100644 --- a/library/modules/supabase/nodes/events/update-records.md +++ b/library/modules/supabase/nodes/events/update-records.md @@ -3,7 +3,7 @@ hide_title: true --- # Supabase Client Event Update Records -
+ Emits a signal when one or more records are updated by the client in Supabase.
diff --git a/library/modules/supabase/nodes/realtime/broadcast-message.md b/library/modules/supabase/nodes/realtime/broadcast-message.md index 4f0cbb4..021f260 100644 --- a/library/modules/supabase/nodes/realtime/broadcast-message.md +++ b/library/modules/supabase/nodes/realtime/broadcast-message.md @@ -3,7 +3,7 @@ hide_title: true --- # Supabase Realtime Broadcast Message -
+ Broadcasts a message to a Supabase Realtime channel so other connected clients can react immediately.
diff --git a/library/modules/supabase/nodes/realtime/set-presence.md b/library/modules/supabase/nodes/realtime/set-presence.md index 4a8babc..3873be4 100644 --- a/library/modules/supabase/nodes/realtime/set-presence.md +++ b/library/modules/supabase/nodes/realtime/set-presence.md @@ -3,7 +3,7 @@ hide_title: true --- # Supabase Realtime Set Presence -
+ Sets the presence state for the current user on a Supabase Realtime channel.
diff --git a/library/modules/supabase/nodes/realtime/subscribe-to-channel.md b/library/modules/supabase/nodes/realtime/subscribe-to-channel.md index 3f52579..4d28eb0 100644 --- a/library/modules/supabase/nodes/realtime/subscribe-to-channel.md +++ b/library/modules/supabase/nodes/realtime/subscribe-to-channel.md @@ -3,7 +3,7 @@ hide_title: true --- # Supabase Realtime Subscribe To Channel -
+ Subscribes the client to a Supabase Realtime channel to receive real-time events.
diff --git a/library/modules/supabase/nodes/storage/delete-files.md b/library/modules/supabase/nodes/storage/delete-files.md index 7646d55..75c4eaa 100644 --- a/library/modules/supabase/nodes/storage/delete-files.md +++ b/library/modules/supabase/nodes/storage/delete-files.md @@ -3,7 +3,7 @@ hide_title: true --- # Supabase Delete Files -
+ Deletes one or more files from a Supabase Storage bucket.
diff --git a/library/modules/supabase/nodes/storage/download-file.md b/library/modules/supabase/nodes/storage/download-file.md index 45984bf..a0baa0d 100644 --- a/library/modules/supabase/nodes/storage/download-file.md +++ b/library/modules/supabase/nodes/storage/download-file.md @@ -3,7 +3,7 @@ hide_title: true --- # Download File -
+ Downloads a file from a Supabase Storage bucket.
diff --git a/library/modules/supabase/nodes/storage/retrieve-public-file-urls.md b/library/modules/supabase/nodes/storage/retrieve-public-file-urls.md index a730827..1059acd 100644 --- a/library/modules/supabase/nodes/storage/retrieve-public-file-urls.md +++ b/library/modules/supabase/nodes/storage/retrieve-public-file-urls.md @@ -3,7 +3,7 @@ hide_title: true --- # Supabase Retrieve Public File URLs -
+ Generates public URLs for one or more files stored in a Supabase Storage bucket.
diff --git a/library/modules/supabase/nodes/storage/upload-file-resumable.md b/library/modules/supabase/nodes/storage/upload-file-resumable.md index 75a73ed..d5bab13 100644 --- a/library/modules/supabase/nodes/storage/upload-file-resumable.md +++ b/library/modules/supabase/nodes/storage/upload-file-resumable.md @@ -3,7 +3,7 @@ hide_title: true --- # Supabase Upload File (Resumable) -
+ Uploads a file to Supabase Storage using resumable upload support.
diff --git a/library/modules/supabase/nodes/storage/upload-file.md b/library/modules/supabase/nodes/storage/upload-file.md index 34218f1..a7bcaad 100644 --- a/library/modules/supabase/nodes/storage/upload-file.md +++ b/library/modules/supabase/nodes/storage/upload-file.md @@ -3,7 +3,7 @@ hide_title: true --- # Supabase Upload File -
+ Uploads a file to an existing Supabase Storage bucket.
From a686f48dc53e6b66fa943248d94b3cb55ecac747 Mon Sep 17 00:00:00 2001 From: Kanholt Date: Mon, 26 Jan 2026 22:06:14 +0100 Subject: [PATCH 3/4] Update set-presence.md Update set-presence --- library/modules/supabase/nodes/realtime/set-presence.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/library/modules/supabase/nodes/realtime/set-presence.md b/library/modules/supabase/nodes/realtime/set-presence.md index 3873be4..67ab4f9 100644 --- a/library/modules/supabase/nodes/realtime/set-presence.md +++ b/library/modules/supabase/nodes/realtime/set-presence.md @@ -16,5 +16,4 @@ Presence state is ephemeral and exists only while the client is connected to the This functionality is based on the Supabase Realtime presence API. Presence updates are broadcast to all clients subscribed to the same channel, allowing UIs to stay in sync as users join, update their state, or leave. -For reference, see -[Supabase Realtime – Presence](https://supabase.com/docs/guides/realtime/presence). \ No newline at end of file +For reference, see [Supabase Realtime – Presence](https://supabase.com/docs/guides/realtime/presence). \ No newline at end of file From ecb4a3bc2759d5e05283dba43d5b7b96b42357a3 Mon Sep 17 00:00:00 2001 From: Kanholt Date: Tue, 27 Jan 2026 12:35:40 +0100 Subject: [PATCH 4/4] added tag added tag for editor compatibility --- library/modules/supabase/nodes/auth/log-in.md | 35 ++++++++++++++- library/modules/supabase/nodes/auth/user.md | 10 ++--- .../nodes/data/call-a-postgres-function.md | 6 ++- .../supabase/nodes/data/create-new-record.md | 4 ++ .../supabase/nodes/data/delete-records.md | 45 ++++++++++--------- .../supabase/nodes/data/query-records.md | 2 +- .../supabase/nodes/data/update-records.md | 2 +- .../edge-functions/call-edge-function.md | 4 ++ .../supabase/nodes/events/create-record.md | 4 ++ .../supabase/nodes/events/delete-records.md | 4 ++ .../supabase/nodes/events/update-records.md | 4 ++ .../nodes/realtime/broadcast-message.md | 4 ++ .../supabase/nodes/realtime/set-presence.md | 4 ++ .../nodes/realtime/subscribe-to-channel.md | 4 ++ .../supabase/nodes/storage/delete-files.md | 4 ++ .../supabase/nodes/storage/download-file.md | 4 ++ .../storage/retrieve-public-file-urls.md | 4 ++ .../nodes/storage/upload-file-resumable.md | 4 ++ .../supabase/nodes/storage/upload-file.md | 4 ++ 19 files changed, 121 insertions(+), 31 deletions(-) diff --git a/library/modules/supabase/nodes/auth/log-in.md b/library/modules/supabase/nodes/auth/log-in.md index c3e848c..9bd823c 100644 --- a/library/modules/supabase/nodes/auth/log-in.md +++ b/library/modules/supabase/nodes/auth/log-in.md @@ -9,7 +9,7 @@ hide_title: true Logs in an existing user using an email and password or a phone number and password.
-![Log In node](../../fs-sb-login.png) + ![Log In node](../../fs-sb-login.png)
This node authenticates the user against your connected Supabase project and, on success, creates an active user session. The session can then be used by other Supabase nodes in the app to access protected data, apply row-level security policies, and perform authenticated operations. @@ -18,3 +18,36 @@ The Log In node is typically used as part of an authentication flow together wit This functionality is based on the Supabase Client SDK sign-in method. For implementation details and behavior, see [Supabase Client SDK – Sign in a user](https://supabase.com/docs/reference/javascript/auth-signinwithpassword). + +{/*##head##*/} + +## Inputs + +
+ +| Data | Type | Description | +| ---------------------------------------- | ------ | ----------- | +| Log In | signal | Triggers the sign-in request. | +| Email | string | Email address of the user (used for email login). | +| Phone | string | Phone number of the user (used for phone login). | +| Password | string | Password for the account. | + +
+ +## Outputs + +
+ +| Data | Type | Description | +| --------------------------------------------- | ------- | ----------- | +| Success | signal | Triggered when the login completes successfully. | +| Failure | signal | Triggered if the login fails. | +| Finally | signal | Triggered after the login completes, regardless of outcome. | +| Is Fetching | boolean | True while the login request is in progress. | +| Is Fetched | boolean | True once the login request has completed. | +| Status | string | Status returned from the operation. | +| Is Success | boolean | True if the login completed successfully. | +| Is Error | boolean | True if an error occurred. | +| Error Text | string | Error message returned by Supabase, if any. | + +
\ No newline at end of file diff --git a/library/modules/supabase/nodes/auth/user.md b/library/modules/supabase/nodes/auth/user.md index cc1ac1f..26db145 100644 --- a/library/modules/supabase/nodes/auth/user.md +++ b/library/modules/supabase/nodes/auth/user.md @@ -8,14 +8,10 @@ hide_title: true Returns the currently authenticated user from the active Supabase session. -
- ![User node](../../fs-sb-user.png) -
- -This node provides access to the user object associated with the current session. The returned data includes identifiers and metadata such as the user ID, email address, phone number, and any custom user metadata defined in Supabase. +This node provides access to the user object associated with the current session, including identifiers and metadata such as user ID, email, phone number, and custom user metadata. The User node is commonly used to display account information, personalize the UI, or drive conditional logic based on whether a user is logged in or not. If no active session exists, the node returns `null`. -The returned user data reflects the authentication state managed by Supabase and automatically updates as the session changes. +The returned user data reflects the authentication state managed by Supabase and updates automatically as the session changes. -{/*##head##*/} +{/*##head##*/} \ No newline at end of file diff --git a/library/modules/supabase/nodes/data/call-a-postgres-function.md b/library/modules/supabase/nodes/data/call-a-postgres-function.md index 6fea31e..8efc8c6 100644 --- a/library/modules/supabase/nodes/data/call-a-postgres-function.md +++ b/library/modules/supabase/nodes/data/call-a-postgres-function.md @@ -2,6 +2,8 @@ hide_title: true --- +{/*##head##*/} + # Supabase Call a Postgres Function Calls a Postgres function (RPC) defined in your Supabase database. @@ -13,4 +15,6 @@ Postgres functions are executed within the database context and can return scala The node returns the raw result of the function execution. If the function returns multiple rows, the result will be an array. If no active session exists or permissions are insufficient, the call will fail according to your Supabase security and RLS configuration. This functionality is based on the Supabase Client SDK RPC method. For reference, see -[Supabase Client SDK – Call a Postgres function](https://supabase.com/docs/reference/javascript/rpc). \ No newline at end of file +[Supabase Client SDK – Call a Postgres function](https://supabase.com/docs/reference/javascript/rpc). + +{/*##head##*/} \ No newline at end of file diff --git a/library/modules/supabase/nodes/data/create-new-record.md b/library/modules/supabase/nodes/data/create-new-record.md index 5f1f930..965191e 100644 --- a/library/modules/supabase/nodes/data/create-new-record.md +++ b/library/modules/supabase/nodes/data/create-new-record.md @@ -2,6 +2,8 @@ hide_title: true --- +{/*##head##*/} + # Create New Record Creates a new record in a specified Supabase table. @@ -17,6 +19,8 @@ This node is commonly used for creating application data such as users, orders, This functionality is based on the Supabase Client SDK insert method. For reference, see [Supabase Client SDK – Insert data](https://supabase.com/docs/reference/javascript/insert). +{/*##head##*/} + ## Inputs
diff --git a/library/modules/supabase/nodes/data/delete-records.md b/library/modules/supabase/nodes/data/delete-records.md index ed70ae5..903e67b 100644 --- a/library/modules/supabase/nodes/data/delete-records.md +++ b/library/modules/supabase/nodes/data/delete-records.md @@ -4,22 +4,27 @@ hide_title: true {/*##head##*/} -# Update Records +# Delete Records -The Delete Record node removes a specific record in your Supabase table. You provide the record's unique ID, and the node handles the deletion. +Deletes one or more records from a Supabase table. -{/*##head##*/} +The Delete Records node removes records from a selected table based on a filter condition. It is commonly used for cleanup operations, user-initiated deletions, or administrative actions within an application. + +Delete operations respect Supabase Row Level Security (RLS) policies and are executed in the context of the currently authenticated user. + +This functionality is based on the Supabase Client SDK delete method. For reference, see +[Supabase Client SDK – Delete data](https://supabase.com/docs/reference/javascript/delete). -This is based on the [Supabase Client SDK - Delete data](https://supabase.com/docs/reference/javascript/delete). +{/*##head##*/} ## Inputs
-| Data | Type | Description | -| -------------------------------------------- | ---------- | --------------------------------- | -| Filter | javascript | | -| Table Name | enum | List of all the available tables. | +| Data | Type | Description | +| ---------------------------------------- | ---------- | ----------- | +| Table Name | enum | The table from which records will be deleted. | +| Filter | javascript | Filter expression used to select which records to delete. |
@@ -29,15 +34,15 @@ This is based on the [Supabase Client SDK - Delete data](https://supabase.com/do | Data | Type | Description | | --------------------------------------------- | ------- | ----------- | -| Object ID | string | | -| Success | signal | | -| Failure | signal | | -| Finally | signal | | -| Is Fetching | boolean | | -| Is Fetched | boolean | | -| Status | string | | -| Is Success | boolean | | -| Is Error | boolean | | -| Error Text | string | | - -
+| Object ID | string | Internal identifier for this delete operation. | +| Success | signal | Triggered when the delete operation completes successfully. | +| Failure | signal | Triggered if the delete operation fails. | +| Finally | signal | Triggered after the operation completes, regardless of outcome. | +| Is Fetching | boolean | True while the delete request is in progress. | +| Is Fetched | boolean | True once the request has completed. | +| Status | string | Status returned from the delete operation. | +| Is Success | boolean | True if the records were deleted successfully. | +| Is Error | boolean | True if an error occurred. | +| Error Text | string | Error message returned by Supabase, if any. | + +
\ No newline at end of file diff --git a/library/modules/supabase/nodes/data/query-records.md b/library/modules/supabase/nodes/data/query-records.md index 741b93f..bfb4661 100644 --- a/library/modules/supabase/nodes/data/query-records.md +++ b/library/modules/supabase/nodes/data/query-records.md @@ -8,7 +8,7 @@ hide_title: true The Query Records node retrieves data from your Supabase table or views. You can use it to fetch a list of records or perform a count query, depending on your needs. -{/*##head##*/} +{/*##main##*/} This is based on the [Supabase Client SDK - Fetch data](https://supabase.com/docs/reference/javascript/select). diff --git a/library/modules/supabase/nodes/data/update-records.md b/library/modules/supabase/nodes/data/update-records.md index f9f3f25..426866c 100644 --- a/library/modules/supabase/nodes/data/update-records.md +++ b/library/modules/supabase/nodes/data/update-records.md @@ -8,7 +8,7 @@ hide_title: true The Update Records node modifies an existing record in your Supabase table. You specify which record to update and which fields to change. -{/*##head##*/} +{/*##main##*/} This is based on the [Supabase Client SDK - Update data](https://supabase.com/docs/reference/javascript/update). diff --git a/library/modules/supabase/nodes/edge-functions/call-edge-function.md b/library/modules/supabase/nodes/edge-functions/call-edge-function.md index 9c703cc..9df9445 100644 --- a/library/modules/supabase/nodes/edge-functions/call-edge-function.md +++ b/library/modules/supabase/nodes/edge-functions/call-edge-function.md @@ -2,10 +2,14 @@ hide_title: true --- +{/*##head##*/} + # Call Edge Function Calls a specific Supabase Edge Function by name and sends an optional request body. +{/*##main##*/} +
![Call Edge Function node](../../fs-sb-call-function.png)
diff --git a/library/modules/supabase/nodes/events/create-record.md b/library/modules/supabase/nodes/events/create-record.md index 04af028..474c0f5 100644 --- a/library/modules/supabase/nodes/events/create-record.md +++ b/library/modules/supabase/nodes/events/create-record.md @@ -2,10 +2,14 @@ hide_title: true --- +{/*##head##*/} + # Supabase Client Event Create Record Emits a signal when a record is created by the client in Supabase. +{/*##main##*/} +
![Supabase Client Event Create Record node](../../fs-sb-client-create-record.png)
diff --git a/library/modules/supabase/nodes/events/delete-records.md b/library/modules/supabase/nodes/events/delete-records.md index cddc6e8..d40825c 100644 --- a/library/modules/supabase/nodes/events/delete-records.md +++ b/library/modules/supabase/nodes/events/delete-records.md @@ -2,10 +2,14 @@ hide_title: true --- +{/*##head##*/} + # Supabase Client Event Delete Records Emits a signal when one or more records are deleted by the client in Supabase. +{/*##main##*/} +
![Supabase Client Event Delete Records node](../../fs-sb-client-delete-record.png)
diff --git a/library/modules/supabase/nodes/events/update-records.md b/library/modules/supabase/nodes/events/update-records.md index 29d87a8..70ba370 100644 --- a/library/modules/supabase/nodes/events/update-records.md +++ b/library/modules/supabase/nodes/events/update-records.md @@ -2,10 +2,14 @@ hide_title: true --- +{/*##head##*/} + # Supabase Client Event Update Records Emits a signal when one or more records are updated by the client in Supabase. +{/*##main##*/} +
![Supabase Client Event Update Records node](../../fs-sb-client-update-record.png)
diff --git a/library/modules/supabase/nodes/realtime/broadcast-message.md b/library/modules/supabase/nodes/realtime/broadcast-message.md index 021f260..c34b6f1 100644 --- a/library/modules/supabase/nodes/realtime/broadcast-message.md +++ b/library/modules/supabase/nodes/realtime/broadcast-message.md @@ -2,10 +2,14 @@ hide_title: true --- +{/*##head##*/} + # Supabase Realtime Broadcast Message Broadcasts a message to a Supabase Realtime channel so other connected clients can react immediately. +{/*##main##*/} +
![Realtime Broadcast Message node](../../fs-sb-call-broadcast-realtime.png)
diff --git a/library/modules/supabase/nodes/realtime/set-presence.md b/library/modules/supabase/nodes/realtime/set-presence.md index 67ab4f9..2e32c70 100644 --- a/library/modules/supabase/nodes/realtime/set-presence.md +++ b/library/modules/supabase/nodes/realtime/set-presence.md @@ -2,10 +2,14 @@ hide_title: true --- +{/*##head##*/} + # Supabase Realtime Set Presence Sets the presence state for the current user on a Supabase Realtime channel. +{/*##main##*/} +
![Realtime Set Presence node](../../fs-sb-set-presence.png)
diff --git a/library/modules/supabase/nodes/realtime/subscribe-to-channel.md b/library/modules/supabase/nodes/realtime/subscribe-to-channel.md index 4d28eb0..afa7a65 100644 --- a/library/modules/supabase/nodes/realtime/subscribe-to-channel.md +++ b/library/modules/supabase/nodes/realtime/subscribe-to-channel.md @@ -2,10 +2,14 @@ hide_title: true --- +{/*##head##*/} + # Supabase Realtime Subscribe To Channel Subscribes the client to a Supabase Realtime channel to receive real-time events. +{/*##main##*/} +
![Realtime Subscribe To Channel node](../../fs-sb-subscribe-channel.png)
diff --git a/library/modules/supabase/nodes/storage/delete-files.md b/library/modules/supabase/nodes/storage/delete-files.md index 75c4eaa..7767608 100644 --- a/library/modules/supabase/nodes/storage/delete-files.md +++ b/library/modules/supabase/nodes/storage/delete-files.md @@ -2,10 +2,14 @@ hide_title: true --- +{/*##head##*/} + # Supabase Delete Files Deletes one or more files from a Supabase Storage bucket. +{/*##main##*/} +
![Supabase Delete Files node](../../fs-sb-delete-files.png)
diff --git a/library/modules/supabase/nodes/storage/download-file.md b/library/modules/supabase/nodes/storage/download-file.md index a0baa0d..03ba1d1 100644 --- a/library/modules/supabase/nodes/storage/download-file.md +++ b/library/modules/supabase/nodes/storage/download-file.md @@ -2,10 +2,14 @@ hide_title: true --- +{/*##head##*/} + # Download File Downloads a file from a Supabase Storage bucket. +{/*##main##*/} +
![Supabase Download File node](../../fs-sb-download-file.png)
diff --git a/library/modules/supabase/nodes/storage/retrieve-public-file-urls.md b/library/modules/supabase/nodes/storage/retrieve-public-file-urls.md index 1059acd..803552f 100644 --- a/library/modules/supabase/nodes/storage/retrieve-public-file-urls.md +++ b/library/modules/supabase/nodes/storage/retrieve-public-file-urls.md @@ -2,10 +2,14 @@ hide_title: true --- +{/*##head##*/} + # Supabase Retrieve Public File URLs Generates public URLs for one or more files stored in a Supabase Storage bucket. +{/*##main##*/} +
![Supabase Retrieve Public File URLs node](../../fs-sb-retrieve-public-file-url.png)
diff --git a/library/modules/supabase/nodes/storage/upload-file-resumable.md b/library/modules/supabase/nodes/storage/upload-file-resumable.md index d5bab13..80bebe8 100644 --- a/library/modules/supabase/nodes/storage/upload-file-resumable.md +++ b/library/modules/supabase/nodes/storage/upload-file-resumable.md @@ -2,10 +2,14 @@ hide_title: true --- +{/*##head##*/} + # Supabase Upload File (Resumable) Uploads a file to Supabase Storage using resumable upload support. +{/*##main##*/} +
![Supabase Upload File (Resumable) node](../../fs-sb-resumable-upload.png)
diff --git a/library/modules/supabase/nodes/storage/upload-file.md b/library/modules/supabase/nodes/storage/upload-file.md index a7bcaad..789feb1 100644 --- a/library/modules/supabase/nodes/storage/upload-file.md +++ b/library/modules/supabase/nodes/storage/upload-file.md @@ -2,10 +2,14 @@ hide_title: true --- +{/*##head##*/} + # Supabase Upload File Uploads a file to an existing Supabase Storage bucket. +{/*##main##*/} +
![Supabase Upload File node](../../fs-sb-upload-file.png)