From 1de474ed65ad63ac94a4e2b3eb9ee14a27360bc4 Mon Sep 17 00:00:00 2001 From: Mark Phelps <209477+markphelps@users.noreply.github.com> Date: Mon, 27 Feb 2023 10:35:11 -0500 Subject: [PATCH 01/36] Release/1.19 (#1367) * chore: prep for v1.19-rc1 * chore: update CHANGELOG for release 1.19 (#1352) * chore: update version.txt * chore: v1.19.1 --------- Co-authored-by: George --- CHANGELOG.md | 24 ++++++++++++++++++++++++ version.txt | 2 +- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 89be68fdc9..20e66ba86f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,30 @@ This format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [v1.19.1](https://github.com/flipt-io/flipt/releases/tag/v1.19.1) - 2023-02-27 + +### Changed + +- Dependency updates +- UI: combobox shows 'No results found' if no input matches + +### Fixed + +- UI: issue where Edit Rule submit button was disabled [ui #108](https://github.com/flipt-io/flipt-ui/pull/108) + +## [v1.19.0](https://github.com/flipt-io/flipt/releases/tag/v1.19.0) - 2023-02-22 :lock: + +### Added + +- UI: Settings/API Tokens management +- Enable ability to specify bootstrap token [#1350](https://github.com/flipt-io/flipt/1350) +- Kubernetes Authentication Method [#1344](https://github.com/flipt-io/flipt/1344) + +### Changed + +- Dependency updates +- Switch to official redis client and redis-cache/v9 [#1345](https://github.com/flipt-io/flipt/1345) + ## [v1.18.2](https://github.com/flipt-io/flipt/releases/tag/v1.18.2) - 2023-02-14 :heart: ### Added diff --git a/version.txt b/version.txt index 1eabd7f1e7..8e63bed047 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -v1.18.2 \ No newline at end of file +v1.19.1 \ No newline at end of file From 82e1574f4ec4d40e6e97e3c0f136ac0b0cbcc0dc Mon Sep 17 00:00:00 2001 From: Mark Phelps <209477+markphelps@users.noreply.github.com> Date: Fri, 3 Mar 2023 11:02:49 -0500 Subject: [PATCH 02/36] chore: add Prose logo to README (#1373) --- README.md | 9 ++++++--- logos/users/prose.png | Bin 0 -> 9455 bytes 2 files changed, 6 insertions(+), 3 deletions(-) create mode 100644 logos/users/prose.png diff --git a/README.md b/README.md index 4b3d833b9b..33e1f6cad7 100644 --- a/README.md +++ b/README.md @@ -217,15 +217,18 @@ See [LICENSE](LICENSE). Some of the companies depending on Flipt in production. -

+

Paradigm - +    Rokt - +    Asphalt +    + + Prose

diff --git a/logos/users/prose.png b/logos/users/prose.png new file mode 100644 index 0000000000000000000000000000000000000000..0e67bdbf8e63408b1caceb5aca680f5f81d80634 GIT binary patch literal 9455 zcmeHt^;aBCx9*_9A-HFN2@nAW_XG{DfnY%fcX!R;?(P-{?oN<_;O-3W?j9tEyx(`e zbM6oK54daH>Q%jW?RxgJtEzi-uU*|Cit-ZJ7~~iL003J`QcM{DK!|?Up=hYj=VOt> zPtO9uL0LisP(DJr_uTL|QkOE8lLNec*3kec2>1Y`zmVqxfItpF`9}u;q!B3oqbnmY z{u_e`00fx5z zfxVfnqnV90@Gmb!-^R&Nke2pup#PMAjnmQ0_&V7-TwYF8~1A zEGaQz6<35KZ8_%+u6p`6Ss-?`ijL#X14HA&w>FFWMDZRdN?#O5Fmg+QG z^uGkO951*`RTtChk+J3d}{eWz3u`NVNF zyVsQT`>WzidUW02iKAe>pB|7~5H+0}biFQyYu{|LoUE{^LK z7IYqV=d8NKgj#QaGz;G9JXYzj*r=5#;G9ViUEW?^{@RgZ3tQi%MEO|E_#juB8>U-c zK|-{0bMCY}qC%OGJDiS)WNr}@89?UbL5HOpn=WoA5JAi2s#2GuU1<$TDxEE=`TaZ zP=cMwm3i$cMzz6sWqWeqhP9$CCAx>J{jO4MN|A9&A&PgzThvEK>kUDdxtQpc$(1L9 zbt$9tXW~I3%W>}ygl)>U??)ut-0$pB~EM@M!e6_bQlbiL{QyV%ZHI0CQZ!+@q zf)WA_j=QL)wk~LX3|g^AD-Pu;a&osRC>G zZgsTkN{zvivVD_Ob^EY2n6#5jk;)%`feJ}7^p#$}{Twrc+QO0QyR93xVtEo0^HB9= zN7TYW?yj&1@O=UW*2In@I3_X37-5|UYVwNxl1hEx){53>k1U#-RZtT>)I@|TvP>qG z`o0u11&Kt}18FN$v~r8U)#TQp0w@Nfl(NMODIJ`qM>2!DZHiM65nPmwaXv9{I5NJr57mW ziq;4;FYBNGS!|$d?y>QM@?fKulP%-;;Nq4Qg&{XnW&APZSa{9Y=s5Kync88DG@N+H z-$=+Lv^0Y&ihy5J>fKc%9aW*)?jXl?t6j)cpxem&ew@)<3kw4?N(JV9Q)Xq^1xN5o zr{k$fYBaW)AKfHiey2!z|6J|tXjoUr>*tT#dhQB-Lu&tinxQxu^Ga<*F=M>^d+0=i zToN3)E`lqW%B-SWGA4c-lB9a9K&dd}ofwwH8E5Z?K$j+Yn>4bSimo z;pduCaAtbf^w4&kg8GAt&zx0m(kvvV861<>_CjP*hkOUmtkS|l>CH5@U&tkGE8#)< z@hg;iK4=pq<~t6}?l|QD`Hl$V+J^a7-)(L((J^r1NN7m3I1XrF$ z%Wn=_q$i8TmMosVHy+9DXUD7nO7?p2dgvK6(J#tg&U5p^cRiX%Ia2a zqTV1m|8zD=Gv^Vp@E%hG`zEA7hu-r_-^s`q;lT`Zi94|`NBJ=n7NS-HIFPuAeBTR( zUz6H#Y;cjHJ*>pFJ9S!>d;|Tl^K@W+XQ~WO7k@hSu#H)&c3xv}8_uR)1=*Gk2kDh= zg1@zYP7R|iz%Nb){lvRi`USEN8J@mYn7|u%8m1dKJknTCr4Qhy_Ug{oX4a=oYO!^o z(WjUxRWQZES+kLkwKV7eAOzo4m!jID&roL}oa@Q>79ELZYm8b>q7lhANQ5IqUZ&Tz zjA4n5?zU9QiP^J zL{lFHduO)WGek00CaS*w8Sn4HY3wBc8D?e9g-b~GQ6 zmX~uqm;*v+?_(J)32fLYu|Wc#iNiJC9?8Dl)XSz%pyuEnW0tp?Z5R_mAb`#G`FZRt zWt`DD?q``=BV(;1Ez!+Es0m{WRJ%Bk_UUz~+xNJ2Dn`>_wRhT>%)3Y+aJCese~836KNG1b>pADo<&_^wnJ1&#b0^U16I)kk9F5 zV2-)Eq5x8>mokJ8dJfQt}mkxFK+X(%Qn+uUBSmjlYM;kV0gazek}Wa5cuP$jFI~}X*g6MMO z1Z7Y={h4lP{D-nTfn){8NECKsKDQIkpuXw7PUcx_hRNH5L{da*>i^nxq_fWs> z>w`RclIe0SkvBhqLv)2w^}EE$eLo{eLT9c?3*HU1z%tF<$O2Dgc`(7>4M}>0rY--Y>pub9s$RhvIcN_P8)m*WX}cDP!h9 z=Q+Xyw>O?r$Ui!?=azN%Rl$sHZ}v)~FPoGPzUYX4Ot!C~Bku^?v*NaCtg}rZWWMYf>vRh0t&US#V zwQ0y25HVicJ(zwET=yxR9qbWv$5^Ec5y4Ekim@Wr=75(BAv1=}MP_9>dr?2ieY!0S2u>1GZAkJUnbO$>tiybAbWUN5Pc=sr!mWcr$OLPlA7WMYhzzvq`A|Bb1e zWtsJ9OXJ2bxJ{!@r=~iAgD92XF22K<8s)2dx0PTq8P z-Vm5_A<@A(Jb&2s^=PcLs%4%q@6J0(PRU zp0&K-^nR42J$TVQ6?U(t5t&-J(yE_lYxbIgL_ z#-v*Us#5SRTh&oft|Hj?fv~0{HUlaZgtPZ6CV*;&-dxF(8lSuORd$T=F{MAr4H7BW z(0S9`+){&+i<-sh;^?;7=d6xv`VB(~=dB_^`i+gvMyVnuX`$twoGv&1_hB(obJjs( z3HBZ;CzXs}*%j{Jkob7AnpfQ)LEh_yucOJ{b(vnYF(nS|%CA@Nm=pHJ@P} zDu3W)mJ=W+{My3#cWu#b2gyXW-8|7a_&_`BaM{f)%~|T!AJ(R>BeKHG{`7-1nC07# z*1Qi4q+aBsW9#G<^>k65{ zAm^6_HXxEa*t;XW@4N|9p>2rV0qSQRN5gU5&&SJj9k0Y1jYn}TOuK+siB_<Nn{0Gi&ybK8|l!91KA{U40UCs4CtvC|v5ew*>-E5uwmz z_cL}cMhK7w&YdsFf{IUzn=yWR@syW=*ILQ;F0aYBlqp%!W@S4(-*RLQqtOIcmy*&I z(#rko$};SO3G%i5 zC0)*EhUbKdjlZYSxJytC{^;+rz;3BV?c?F9e&qhAbUDF4<%~5NP=H+QJbF6nx|vRo_=`i7MzVWa2e$aGt?{ZR~Q8viqfQYb>`DJFb-^y%EPw z-W0ZEN}qM<**}<6qx~+K%G4R3SEnV zQ}RJr)FU*);&n6b`L9MP$FH98_s1_uLz;j*m2>vnSljf~(;gO_ktun+ET)Wm6yP`y zzTSX((n9nn=#-!LZc{d7KE;<9PJNWzY;uOF7T;iYa%mU{vr*E8^? zra_|7J-U36)rO}J8)ondY0*U+^KXZ3ej8Oito`7~$joHjP5gRg{H=qoCS<*2wr|h^ z9EUlS_Lct3@TDF?fzwQ1014JKpQm^SUFx5rTdwrkhq4{#MB!~AXPELIdkzBYD{$Ye z;HPi(JB3IoivC;zHI03Sspz$I$xYV1wYVfCm2Dg7NP8`)ATQx;2IO5KdduOD;^!`c zMmfy$bQ973F;l`*qYb$zpGYM?IsuC?5dDO{T}!~oU&@B|oS??!6sF99W4+}~JyUb4 z+TUpEed2k+cD!@Do)VmoP zcKDq;!3!v~6PheTDjDhjfPqLS@l96qRFdy$9mw13f6BW`N=?_#<@6OgKMdy~$XG#M zU(j9F9lkreVJ}FoyslXW&H4(xLyP7T!Nh^g@CAxJ(&3X$fIM`JW$P`h{F4{KWbY!z_e1*%jo~YXE;o5i= zx&qnMhNC;LJie&5T`}gm^hEn(*iBKUlH-Y?JL_)Tb;-V1LtP~Cs0;&2|3tsL1@uqtJzVe)4up^ap1HK(RR zTI;MOI+%CdE>m{8)vF&lWi#VAr|)|jQ#bHbY6Iwr>79z9TEW{Pv= zKx#kYY;LI7|Lm4D*kbT)kea!M_v_JPwA)my_)vwV&qqu>F$x0)ws7Dl5$4X*7f(3q zZf1q*S?h~j;Tmw3B@V&sq8+br{;xP3Gwn1-&wFj6wt={qp4>z4+RNfTBU=N zcLL@hNfo}`fpjIm}?ss_Z~bT?Tkqn(u8&<4uqp6fSssfdY1xdlt@Q zxHyq7ZxX56{en|eis#ka86{e@w{|XIf&pJ8KCpN@sAyY-+AL>I>jWTVU%_T&4V7jF*d8sy3fb z^_;j>j822>On?tq(b2bo6dB+fu2Fk}hG1?DhC)5^mU8Jpk;kdV<&PoUyG zy+>MaHI!UVbo9mmp+JU}aL#Uo3Uwj&!j1%EDPeWOz4_&hx!KnsX_UY-7I+b{@1$lfEfY4IT*0za7o|)F3T&j1 zSVPSpCOcZJy1b&sM8e{&!pa1%R==se=dcjgf_9vkH8TppSI%cMD1Xm&9kK5cjv8_>F`{wjz!Lj)mLg%b9OscE;TfU{14`N?07KY_U^U1Dor)pE2-Z7iA#h9=PiZVs#3EDel>&KD=4IQ{sAVP zqvdt}qYA!clV~q2BS^y^(3$ffz{(f0DUA|<5t*{B0{%qT7V-kC`86fB8tes8p8B!a z(&_XxUBQz@NX0uCMx=|4xgf%!&NT1N(*thTvRyy)+TeOS zkAETWVy87f-I9)&q!EE|&}G)XAi$VK7FECH^*BW-%bD^!VSb^4QyQG*FzDCBP`}zC zH%XrvWh+E}R?fwXfr>A#L-ae*Lb|d@1s&<*S4)GnoUIJ3@$juYGDw4;Lzc6!t8$RZ z1kWWebz+L~s_6)Q1;d_)IgOtIaDJ1!iwX|>{Qc!e4^)wknD&b}V*Q(S>IM1HBVTF8 zSIFLOK5{%YL#QA8>J&05)~iuplHZCRI!AZMiHkm&fAB#6%ITPrwdfq(h`aUaASZwl zdpLZnMzU7=J{#_NjkOu(=g%}8qw*g9qGpmk7qZ3ryonjUsTrmZa*e#(e~PMG*RNEi z77S+l8PaHCZfOKuMVets=Zn_j@h`(JuEV1bEYch`4{>>9jhs6werBabHUNrlG`c-@ z;Cd&n@INh+7R|AyBJa>fyBSu^1W-;SVl6s~_WBKSSJc3csg?CQncEz!=RJ{GtW!D9 zM$Fr+yw0_ItHiNz=g{@Oc$-|v%DOT#j~iQVKc}5SmmB3xQIvjqSjYqtNn7IdZnR#H z-dDqeyc5O zts_BWS=y-We4jB%WNMf)&F&zjS_&DZtpHd?nGmI_3cl`FOzztu5DeKp zZVn5iEhw>P-@8tc)#&cl{`?x6qfi6o%46lTpk#=knkEVpXpPCtn;-1BbYZCYN~5bsFjbh%qNVX~Vz*LDRqsz^v?_FCERWc5N$ zg!IU8ft7_HmJz|y-}KP_c?aur%Oj6N?!iVW&>5+XX=MiqtgaF#nDf$*8DtQ8 zs^52-y8;;&ZrG&r5pl|&{Z@Z-AjC_bEk=|)skwT<6>Xe*>eE*Ngat#O8_G}U+v#R5 z5qKmxit>EtA`REGeEYp=&PNy4-6kw&x3cK@0aLZR5_xZj_c6%?q6I_PFGrb&d|KWH z4vI<2SZNWQ;pJweynqmdLxu2fDR!4m5GhY0Yq@+KFyLT|n10_~Ix4l{4b=UUB2#Lj zIX9fTIEf)-Z8SoePG2$f1LI^tbY4}I8wkcE%QbTrU2vNM zNSqk7=MDV;qIsEgr4ePdVr_ja|zyB)55K-c{_i}8T6gWX2f|dw#DgH z=0AQHLC4r6M?Xmn_)HDF>XPNdObEhr+8p1p0fIAwQXgDOCq1m{-T!!#AtLFLci*x_ zDR383?f2I9(01Q;4f`>-gtpyi_z=cJHxnTF@!WR~k2VkTuVxJ0a4M9>jkBc)Ot5+o zn9$#OdkK}WC|syPfWxHI0b{-xO%j^TuG_Ve6UrgYt2pbac4KcHdL3h)v?N`H)lznh z&L3Zg0cvkhc6n}I!{V+N*V*s`0g}Xi@;d^SXHJH`yc%FpvIC<3X2C9(XbOL3Q@E5~r90=#s4jdNv-i>U+?t)TkPKc4zYLl0Q2AhQJ zpDUbH8hldC0yGb1$dUR7^S!d!+2foH`ZrMT1JM1hQP!oUJI^6#=t$^6&v~yV>u@|Q zl&lGQdM?!-oM-UBC$ov7?*bklxj7;ngaLLr8c7DUTe1Cj!2WIeovFvez>g-T#o`kw z;EeWuuJ}uG(Yl^szX1`9u`+hNw>};6nO$Z#{NSD#6V2yTN32oT+`xTs-*Q$dt1~O> zjkygEj?)UML{mq=6JJ+@cO@u9Ad)4J_A-IB+Kv8`NXz*-2Ywo1Dac<&y#p4 zVU0Dth?MGw3ze%e=!R~iuibLTOL)LHcndJOD*;UaJ3#rBmB-|eVTP<~ zDVT*Y3lVdr6U;sN6((b?VRG+Ma8V2?GP8S^GoiDLd@&Jf7)n>GU@le@d(n-%b-*Z16BEs`Vjv^uXKiF`*=N4V5Igp=TNlvC8@f7yF`uo?9l(@WDxrm Date: Mon, 6 Mar 2023 03:08:05 +0000 Subject: [PATCH 03/36] chore(deps): bump google.golang.org/grpc/cmd/protoc-gen-go-grpc (#1374) Bumps [google.golang.org/grpc/cmd/protoc-gen-go-grpc](https://github.com/grpc/grpc-go) from 1.2.0 to 1.3.0. - [Release notes](https://github.com/grpc/grpc-go/releases) - [Commits](https://github.com/grpc/grpc-go/compare/v1.2.0...v1.3.0) --- updated-dependencies: - dependency-name: google.golang.org/grpc/cmd/protoc-gen-go-grpc dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- _tools/go.mod | 2 +- _tools/go.sum | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/_tools/go.mod b/_tools/go.mod index a94c2e7ff2..3632c00c17 100644 --- a/_tools/go.mod +++ b/_tools/go.mod @@ -8,7 +8,7 @@ require ( github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.1 golang.org/x/tools v0.6.0 golang.org/x/tools/cmd/cover v0.1.0-deprecated - google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.2.0 + google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 google.golang.org/protobuf v1.28.2-0.20220831092852-f930b1dc76e8 ) diff --git a/_tools/go.sum b/_tools/go.sum index dcdb4da653..dfa1a15fdb 100644 --- a/_tools/go.sum +++ b/_tools/go.sum @@ -1022,8 +1022,8 @@ google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA5 google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.53.0 h1:LAv2ds7cmFV/XTS3XG1NneeENYrXGmorPxsBbptIjNc= google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw= -google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.2.0 h1:TLkBREm4nIsEcexnCjgQd5GQWaHcqMzwQV0TX9pq8S0= -google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.2.0/go.mod h1:DNq5QpG7LJqD2AamLZ7zvKE0DEpVl2BSEVjFycAAjRY= +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 h1:rNBFJjBCOgVr9pWD7rs/knKL4FRTKgpZmsRfV214zcA= +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0/go.mod h1:Dk1tviKTvMCz5tvh7t+fh94dhmQVHuCt2OzJB3CTW9Y= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -1036,7 +1036,6 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.2-0.20220831092852-f930b1dc76e8 h1:KR8+MyP7/qOlV+8Af01LtjL04bu7on42eVsxT4EyBQk= google.golang.org/protobuf v1.28.2-0.20220831092852-f930b1dc76e8/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= From bb03d68303a2494a4d93bb93501fb525c80a1cb3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 Mar 2023 03:14:20 +0000 Subject: [PATCH 04/36] chore(deps): bump github.com/grpc-ecosystem/grpc-gateway/v2 in /_tools (#1375) Bumps [github.com/grpc-ecosystem/grpc-gateway/v2](https://github.com/grpc-ecosystem/grpc-gateway) from 2.15.1 to 2.15.2. - [Release notes](https://github.com/grpc-ecosystem/grpc-gateway/releases) - [Changelog](https://github.com/grpc-ecosystem/grpc-gateway/blob/main/.goreleaser.yml) - [Commits](https://github.com/grpc-ecosystem/grpc-gateway/compare/v2.15.1...v2.15.2) --- updated-dependencies: - dependency-name: github.com/grpc-ecosystem/grpc-gateway/v2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- _tools/go.mod | 4 ++-- _tools/go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/_tools/go.mod b/_tools/go.mod index 3632c00c17..30aa12f84f 100644 --- a/_tools/go.mod +++ b/_tools/go.mod @@ -5,7 +5,7 @@ go 1.18 require ( github.com/bufbuild/buf v1.9.0 github.com/golangci/golangci-lint v1.49.0 - github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.1 + github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.2 golang.org/x/tools v0.6.0 golang.org/x/tools/cmd/cover v0.1.0-deprecated google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 @@ -208,7 +208,7 @@ require ( golang.org/x/sys v0.5.0 // indirect golang.org/x/term v0.5.0 // indirect golang.org/x/text v0.7.0 // indirect - google.golang.org/genproto v0.0.0-20230221151758-ace64dc21148 // indirect + google.golang.org/genproto v0.0.0-20230223222841-637eb2293923 // indirect google.golang.org/grpc v1.53.0 // indirect gopkg.in/ini.v1 v1.66.6 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/_tools/go.sum b/_tools/go.sum index dfa1a15fdb..d5b3c37b7f 100644 --- a/_tools/go.sum +++ b/_tools/go.sum @@ -318,8 +318,8 @@ github.com/gostaticanalysis/testutil v0.3.1-0.20210208050101-bfb5c8eec0e4/go.mod github.com/gostaticanalysis/testutil v0.4.0 h1:nhdCmubdmDF6VEatUNjgUZBJKWRqugoISdUv3PPQgHY= github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw= github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.1 h1:I6ITHEanAwjB0FvaxmGm8pKqmCLR7QIe05ZmO4QAXMw= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.1/go.mod h1:gYC+WX4YJFarA2ie73G2epzt7TBWpo9pzcBnK1g0MSw= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.2 h1:gDLXvp5S9izjldquuoAhDzccbskOL6tDC5jMSyx3zxE= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.2/go.mod h1:7pdNwVWBBHGiCxa9lAszqCJMbfTISJ7oMftp8+UGV08= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= @@ -1002,8 +1002,8 @@ google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20230221151758-ace64dc21148 h1:muK+gVBJBfFb4SejshDBlN2/UgxCCOKH9Y34ljqEGOc= -google.golang.org/genproto v0.0.0-20230221151758-ace64dc21148/go.mod h1:3Dl5ZL0q0isWJt+FVcfpQyirqemEuLAK/iFvg1UP1Hw= +google.golang.org/genproto v0.0.0-20230223222841-637eb2293923 h1:znp6mq/drrY+6khTAlJUDNFFcDGV2ENLYKpMq8SyCds= +google.golang.org/genproto v0.0.0-20230223222841-637eb2293923/go.mod h1:3Dl5ZL0q0isWJt+FVcfpQyirqemEuLAK/iFvg1UP1Hw= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= From 468ab032fc28b087ac69e2f16097ea07c281190d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 Mar 2023 03:18:52 +0000 Subject: [PATCH 05/36] chore(deps): bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc (#1376) Bumps [go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc](https://github.com/open-telemetry/opentelemetry-go) from 1.13.0 to 1.14.0. - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.13.0...v1.14.0) --- updated-dependencies: - dependency-name: go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 12 ++++++------ go.sum | 26 +++++++++++++------------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/go.mod b/go.mod index dae3c54c9d..4b9ba1320d 100644 --- a/go.mod +++ b/go.mod @@ -38,16 +38,16 @@ require ( github.com/uber/jaeger-client-go v2.30.0+incompatible github.com/xo/dburl v0.13.0 go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.39.0 - go.opentelemetry.io/otel v1.13.0 + go.opentelemetry.io/otel v1.14.0 go.opentelemetry.io/otel/exporters/jaeger v1.13.0 - go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.13.0 - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.13.0 + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.14.0 + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.14.0 go.opentelemetry.io/otel/exporters/prometheus v0.36.0 go.opentelemetry.io/otel/exporters/zipkin v1.13.0 go.opentelemetry.io/otel/metric v0.36.0 - go.opentelemetry.io/otel/sdk v1.13.0 + go.opentelemetry.io/otel/sdk v1.14.0 go.opentelemetry.io/otel/sdk/metric v0.36.0 - go.opentelemetry.io/otel/trace v1.13.0 + go.opentelemetry.io/otel/trace v1.14.0 go.uber.org/zap v1.24.0 golang.org/x/exp v0.0.0-20221012211006-4de253d81b95 golang.org/x/net v0.7.0 @@ -126,7 +126,7 @@ require ( github.com/vmihailenco/msgpack/v5 v5.3.4 // indirect github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect github.com/xtgo/uuid v0.0.0-20140804021211-a0b114877d4c // indirect - go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.13.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.14.0 // indirect go.opentelemetry.io/proto/otlp v0.19.0 // indirect go.uber.org/atomic v1.9.0 // indirect go.uber.org/multierr v1.8.0 // indirect diff --git a/go.sum b/go.sum index a39ffa2af0..586486f52d 100644 --- a/go.sum +++ b/go.sum @@ -1309,20 +1309,20 @@ go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.3 go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.20.0/go.mod h1:2AboqHi0CiIZU0qwhtUfCYD1GeUzvvIXWNkhDt7ZMG4= go.opentelemetry.io/otel v0.20.0/go.mod h1:Y3ugLH2oa81t5QO+Lty+zXf8zC9L26ax4Nzoxm/dooo= go.opentelemetry.io/otel v1.3.0/go.mod h1:PWIKzi6JCp7sM0k9yZ43VX+T345uNbAkDKwHVjb2PTs= -go.opentelemetry.io/otel v1.13.0 h1:1ZAKnNQKwBBxFtww/GwxNUyTf0AxkZzrukO8MeXqe4Y= -go.opentelemetry.io/otel v1.13.0/go.mod h1:FH3RtdZCzRkJYFTCsAKDy9l/XYjMdNv6QrkFFB8DvVg= +go.opentelemetry.io/otel v1.14.0 h1:/79Huy8wbf5DnIPhemGB+zEPVwnN6fuQybr/SRXa6hM= +go.opentelemetry.io/otel v1.14.0/go.mod h1:o4buv+dJzx8rohcUeRmWUZhqupFvzWis188WlggnNeU= go.opentelemetry.io/otel/exporters/jaeger v1.13.0 h1:VAMoGujbVV8Q0JNM/cEbhzUIWWBxnEqH45HP9iBKN04= go.opentelemetry.io/otel/exporters/jaeger v1.13.0/go.mod h1:fHwbmle6mBFJA1p2ZIhilvffCdq/dM5UTIiCOmEjS+w= go.opentelemetry.io/otel/exporters/otlp v0.20.0/go.mod h1:YIieizyaN77rtLJra0buKiNBOm9XQfkPEKBeuhoMwAM= go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.3.0/go.mod h1:VpP4/RMn8bv8gNo9uK7/IMY4mtWLELsS+JIP0inH0h4= -go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.13.0 h1:pa05sNT/P8OsIQ8mPZKTIyiBuzS/xDGLVx+DCt0y6Vs= -go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.13.0/go.mod h1:rqbht/LlhVBgn5+k3M5QK96K5Xb0DvXpMJ5SFQpY6uw= +go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.14.0 h1:/fXHZHGvro6MVqV34fJzDhi7sHGpX3Ej/Qjmfn003ho= +go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.14.0/go.mod h1:UFG7EBMRdXyFstOwH028U0sVf+AvukSGhF0g8+dmNG8= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.3.0/go.mod h1:hO1KLR7jcKaDDKDkvI9dP/FIhpmna5lkqPUQdEjFAM8= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.13.0 h1:Any/nVxaoMq1T2w0W85d6w5COlLuCCgOYKQhJJWEMwQ= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.13.0/go.mod h1:46vAP6RWfNn7EKov73l5KBFlNxz8kYlxR1woU+bJ4ZY= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.14.0 h1:TKf2uAs2ueguzLaxOCBXNpHxfO/aC7PAdDsSH0IbeRQ= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.14.0/go.mod h1:HrbCVv40OOLTABmOn1ZWty6CHXkU8DK/Urc43tHug70= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.3.0/go.mod h1:keUU7UfnwWTWpJ+FWnyqmogPa82nuU5VUANFq49hlMY= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.13.0 h1:Wz7UQn7/eIqZVDJbuNEM6PmqeA71cWXrWcXekP5HZgU= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.13.0/go.mod h1:OhH1xvgA5jZW2M/S4PcvtDlFE1VULRRBsibBrKuJQGI= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.14.0 h1:ap+y8RXX3Mu9apKVtOkM6WSFESLM8K3wNQyOU8sWHcc= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.14.0/go.mod h1:5w41DY6S9gZrbjuq6Y+753e96WfPha5IcsOSZTtullM= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.3.0/go.mod h1:QNX1aly8ehqqX1LEa6YniTU7VY9I6R3X/oPxhGdTceE= go.opentelemetry.io/otel/exporters/prometheus v0.36.0 h1:EbfJRxojnpb+ux8IO79oKHXu9jsbWjd00cT0XmbP5gU= go.opentelemetry.io/otel/exporters/prometheus v0.36.0/go.mod h1:gYHAjuEuMrtPXccEHyvYcQVC//c4QwgQcUq1/3mx7Ys= @@ -1334,16 +1334,16 @@ go.opentelemetry.io/otel/metric v0.36.0/go.mod h1:wKVw57sd2HdSZAzyfOM9gTqqE8v7Cb go.opentelemetry.io/otel/oteltest v0.20.0/go.mod h1:L7bgKf9ZB7qCwT9Up7i9/pn0PWIa9FqQ2IQ8LoxiGnw= go.opentelemetry.io/otel/sdk v0.20.0/go.mod h1:g/IcepuwNsoiX5Byy2nNV0ySUF1em498m7hBWC279Yc= go.opentelemetry.io/otel/sdk v1.3.0/go.mod h1:rIo4suHNhQwBIPg9axF8V9CA72Wz2mKF1teNrup8yzs= -go.opentelemetry.io/otel/sdk v1.13.0 h1:BHib5g8MvdqS65yo2vV1s6Le42Hm6rrw08qU6yz5JaM= -go.opentelemetry.io/otel/sdk v1.13.0/go.mod h1:YLKPx5+6Vx/o1TCUYYs+bpymtkmazOMT6zoRrC7AQ7I= +go.opentelemetry.io/otel/sdk v1.14.0 h1:PDCppFRDq8A1jL9v6KMI6dYesaq+DFcDZvjsoGvxGzY= +go.opentelemetry.io/otel/sdk v1.14.0/go.mod h1:bwIC5TjrNG6QDCHNWvW4HLHtUQ4I+VQDsnjhvyZCALM= go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi+bJK+Dr8NQCh0qGhm1KDnNlE= go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE= go.opentelemetry.io/otel/sdk/metric v0.36.0 h1:dEXpkkOAEcHiRiaZdvd63MouV+3bCtAB/bF3jlNKnr8= go.opentelemetry.io/otel/sdk/metric v0.36.0/go.mod h1:Lv4HQQPSCSkhyBKzLNtE8YhTSdK4HCwNh3lh7CiR20s= go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw= go.opentelemetry.io/otel/trace v1.3.0/go.mod h1:c/VDhno8888bvQYmbYLqe41/Ldmr/KKunbvWM4/fEjk= -go.opentelemetry.io/otel/trace v1.13.0 h1:CBgRZ6ntv+Amuj1jDsMhZtlAPT6gbyIRdaIzFhfBSdY= -go.opentelemetry.io/otel/trace v1.13.0/go.mod h1:muCvmmO9KKpvuXSf3KKAXXB2ygNYHQ+ZfI5X08d3tds= +go.opentelemetry.io/otel/trace v1.14.0 h1:wp2Mmvj41tDsyAJXiWDWpfNsOiIyd38fy85pyKcFq/M= +go.opentelemetry.io/otel/trace v1.14.0/go.mod h1:8avnQLK+CG77yNLUae4ea2JDQ6iT+gozhnZjy/rw9G8= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.opentelemetry.io/proto/otlp v0.11.0/go.mod h1:QpEjXPrNQzrFDZgoTo49dgHR9RYRSrg3NAKnUGl9YpQ= go.opentelemetry.io/proto/otlp v0.19.0 h1:IVN6GR+mhC4s5yfcTbmzHYODqvWAp3ZedA2SJPI1Nnw= @@ -1356,7 +1356,7 @@ go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE= go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= go.uber.org/goleak v1.1.12/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= -go.uber.org/goleak v1.2.0 h1:xqgm/S+aQvhWFTtR0XK3Jvg7z8kGV8P4X14IzwN3Eqk= +go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= From 84df6e50ec2253fc03277a433199724056078653 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 Mar 2023 20:49:31 +0000 Subject: [PATCH 06/36] chore(deps): bump github.com/grpc-ecosystem/grpc-gateway/v2 (#1379) Bumps [github.com/grpc-ecosystem/grpc-gateway/v2](https://github.com/grpc-ecosystem/grpc-gateway) from 2.15.1 to 2.15.2. - [Release notes](https://github.com/grpc-ecosystem/grpc-gateway/releases) - [Changelog](https://github.com/grpc-ecosystem/grpc-gateway/blob/main/.goreleaser.yml) - [Commits](https://github.com/grpc-ecosystem/grpc-gateway/compare/v2.15.1...v2.15.2) --- updated-dependencies: - dependency-name: github.com/grpc-ecosystem/grpc-gateway/v2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 5 ++--- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/go.mod b/go.mod index 4b9ba1320d..e06751909c 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 github.com/grpc-ecosystem/grpc-gateway v1.16.0 - github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.1 + github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.2 github.com/hashicorp/cap v0.2.0 github.com/lib/pq v1.10.7 github.com/magefile/mage v1.14.0 @@ -52,7 +52,7 @@ require ( golang.org/x/exp v0.0.0-20221012211006-4de253d81b95 golang.org/x/net v0.7.0 golang.org/x/sync v0.1.0 - google.golang.org/genproto v0.0.0-20230221151758-ace64dc21148 + google.golang.org/genproto v0.0.0-20230223222841-637eb2293923 google.golang.org/grpc v1.53.0 google.golang.org/protobuf v1.28.1 gopkg.in/segmentio/analytics-go.v3 v3.1.0 @@ -79,7 +79,6 @@ require ( github.com/go-logr/logr v1.2.3 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang/glog v1.0.0 // indirect github.com/golang/protobuf v1.5.2 // indirect github.com/google/go-querystring v1.1.0 // indirect github.com/google/uuid v1.3.0 // indirect diff --git a/go.sum b/go.sum index 586486f52d..c2f6fb2570 100644 --- a/go.sum +++ b/go.sum @@ -686,8 +686,8 @@ github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0/go.mod h1:hgWBS7lorOAVIJEQMi4ZsPv9hVvWI6+ch50m39Pf2Ks= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.1 h1:I6ITHEanAwjB0FvaxmGm8pKqmCLR7QIe05ZmO4QAXMw= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.1/go.mod h1:gYC+WX4YJFarA2ie73G2epzt7TBWpo9pzcBnK1g0MSw= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.2 h1:gDLXvp5S9izjldquuoAhDzccbskOL6tDC5jMSyx3zxE= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.2/go.mod h1:7pdNwVWBBHGiCxa9lAszqCJMbfTISJ7oMftp8+UGV08= github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed/go.mod h1:tMWxXQ9wFIaZeTI9F+hmhFiGpFmhOHzyShyFUhRm0H4= github.com/hashicorp/cap v0.2.0 h1:Cgr1iDczX17y0PNF5VG+bWTtDiimYL8F18izMPbWNy4= github.com/hashicorp/cap v0.2.0/go.mod h1:zb3VvIFA0lM2lbmO69NjowV9dJzJnZS89TaM9blXPJA= @@ -1944,8 +1944,8 @@ google.golang.org/genproto v0.0.0-20211206160659-862468c7d6e0/go.mod h1:5CzLGKJ6 google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20220111164026-67b88f271998/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20220314164441-57ef72a4c106/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= -google.golang.org/genproto v0.0.0-20230221151758-ace64dc21148 h1:muK+gVBJBfFb4SejshDBlN2/UgxCCOKH9Y34ljqEGOc= -google.golang.org/genproto v0.0.0-20230221151758-ace64dc21148/go.mod h1:3Dl5ZL0q0isWJt+FVcfpQyirqemEuLAK/iFvg1UP1Hw= +google.golang.org/genproto v0.0.0-20230223222841-637eb2293923 h1:znp6mq/drrY+6khTAlJUDNFFcDGV2ENLYKpMq8SyCds= +google.golang.org/genproto v0.0.0-20230223222841-637eb2293923/go.mod h1:3Dl5ZL0q0isWJt+FVcfpQyirqemEuLAK/iFvg1UP1Hw= google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= From 8993c5829d9658fb091d24d3ed7dacd8165b032e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 7 Mar 2023 20:16:07 +0000 Subject: [PATCH 07/36] chore(deps): bump github.com/moby/buildkit in /_tools (#1384) Bumps [github.com/moby/buildkit](https://github.com/moby/buildkit) from 0.10.4 to 0.11.4. - [Release notes](https://github.com/moby/buildkit/releases) - [Commits](https://github.com/moby/buildkit/compare/v0.10.4...v0.11.4) --- updated-dependencies: - dependency-name: github.com/moby/buildkit dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- _tools/go.mod | 15 ++++++++------- _tools/go.sum | 34 +++++++++++++++++++++++----------- 2 files changed, 31 insertions(+), 18 deletions(-) diff --git a/_tools/go.mod b/_tools/go.mod index 30aa12f84f..9ed01b3091 100644 --- a/_tools/go.mod +++ b/_tools/go.mod @@ -47,7 +47,7 @@ require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/denis-tingaikin/go-header v0.4.3 // indirect github.com/docker/distribution v2.8.1+incompatible // indirect - github.com/docker/docker v20.10.19+incompatible // indirect + github.com/docker/docker v23.0.0-rc.1+incompatible // indirect github.com/docker/go-connections v0.4.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/esimonov/ifshort v1.0.4 // indirect @@ -72,6 +72,7 @@ require ( github.com/gobwas/glob v0.2.3 // indirect github.com/gofrs/flock v0.8.1 // indirect github.com/gofrs/uuid v4.3.0+incompatible // indirect + github.com/gogo/googleapis v1.4.1 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/glog v1.0.0 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect @@ -105,7 +106,7 @@ require ( github.com/julz/importas v0.1.0 // indirect github.com/kisielk/errcheck v1.6.2 // indirect github.com/kisielk/gotool v1.0.0 // indirect - github.com/klauspost/compress v1.15.11 // indirect + github.com/klauspost/compress v1.15.12 // indirect github.com/klauspost/pgzip v1.2.5 // indirect github.com/kulti/thelper v0.6.3 // indirect github.com/kunwardeep/paralleltest v1.0.6 // indirect @@ -125,7 +126,7 @@ require ( github.com/mgechev/revive v1.2.3 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect - github.com/moby/buildkit v0.10.4 // indirect + github.com/moby/buildkit v0.11.4 // indirect github.com/moby/term v0.0.0-20220808134915-39b0c02b01ae // indirect github.com/moricho/tparallel v0.2.1 // indirect github.com/morikuni/aec v1.0.0 // indirect @@ -144,10 +145,10 @@ require ( github.com/pkg/profile v1.6.0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/polyfloyd/go-errorlint v1.0.2 // indirect - github.com/prometheus/client_golang v1.12.1 // indirect - github.com/prometheus/client_model v0.2.0 // indirect - github.com/prometheus/common v0.32.1 // indirect - github.com/prometheus/procfs v0.7.3 // indirect + github.com/prometheus/client_golang v1.14.0 // indirect + github.com/prometheus/client_model v0.3.0 // indirect + github.com/prometheus/common v0.37.0 // indirect + github.com/prometheus/procfs v0.8.0 // indirect github.com/quasilyte/go-ruleguard v0.3.17 // indirect github.com/quasilyte/gogrep v0.0.0-20220120141003-628d8b3623b5 // indirect github.com/quasilyte/regex/syntax v0.0.0-20200407221936-30656e2c4a95 // indirect diff --git a/_tools/go.sum b/_tools/go.sum index d5b3c37b7f..1f8bd55ac4 100644 --- a/_tools/go.sum +++ b/_tools/go.sum @@ -134,8 +134,8 @@ github.com/denis-tingaikin/go-header v0.4.3 h1:tEaZKAlqql6SKCY++utLmkPLd6K8IBM20 github.com/denis-tingaikin/go-header v0.4.3/go.mod h1:0wOCWuN71D5qIgE2nz9KrKmuYBAC2Mra5RassOIQ2/c= github.com/docker/distribution v2.8.1+incompatible h1:Q50tZOPR6T/hjNsyc9g8/syEs6bk8XXApsHjKukMl68= github.com/docker/distribution v2.8.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/docker v20.10.19+incompatible h1:lzEmjivyNHFHMNAFLXORMBXyGIhw/UP4DvJwvyKYq64= -github.com/docker/docker v20.10.19+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v23.0.0-rc.1+incompatible h1:Dmn88McWuHc7BSNN1s6RtfhMmt6ZPQAYUEf7FhqpiQI= +github.com/docker/docker v23.0.0-rc.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= @@ -171,9 +171,11 @@ github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2 github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= +github.com/go-kit/log v0.2.0/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= +github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= @@ -208,6 +210,8 @@ github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw= github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= github.com/gofrs/uuid v4.3.0+incompatible h1:CaSVZxm5B+7o45rtab4jC2G37WGYX1zQfuU2i6DSvnc= github.com/gofrs/uuid v4.3.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= +github.com/gogo/googleapis v1.4.1 h1:1Yx4Myt7BxzvUr5ldGSbwYiZG6t9wGBZ+8/fX3Wvtq0= +github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= @@ -364,8 +368,8 @@ github.com/kisielk/errcheck v1.6.2 h1:uGQ9xI8/pgc9iOoCe7kWQgRE6SBTrCGmTSf0LrEtY7 github.com/kisielk/errcheck v1.6.2/go.mod h1:nXw/i/MfnvRHqXa7XXmQMUB0oNFGuBrNI8d8NLy0LPw= github.com/kisielk/gotool v1.0.0 h1:AV2c/EiW3KqPNT9ZKl07ehoAGi4C5/01Cfbblndcapg= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/compress v1.15.11 h1:Lcadnb3RKGin4FYM/orgq0qde+nc15E5Cbqg4B9Sx9c= -github.com/klauspost/compress v1.15.11/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= +github.com/klauspost/compress v1.15.12 h1:YClS/PImqYbn+UILDnqxQCZ3RehC9N318SU3kElDUEM= +github.com/klauspost/compress v1.15.12/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= github.com/klauspost/pgzip v1.2.5 h1:qnWYvvKqedOF2ulHpMG72XQol4ILEJ8k2wwRl/Km8oE= github.com/klauspost/pgzip v1.2.5/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= @@ -422,8 +426,8 @@ github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/moby/buildkit v0.10.4 h1:FvC+buO8isGpUFZ1abdSLdGHZVqg9sqI4BbFL8tlzP4= -github.com/moby/buildkit v0.10.4/go.mod h1:Yajz9vt1Zw5q9Pp4pdb3TCSUXJBIroIQGQ3TTs/sLug= +github.com/moby/buildkit v0.11.4 h1:mleVHr+n7HUD65QNUkgkT3d8muTzhYUoHE9FM3Ej05s= +github.com/moby/buildkit v0.11.4/go.mod h1:P5Qi041LvCfhkfYBHry+Rwoo3Wi6H971J2ggE+PcIoo= github.com/moby/term v0.0.0-20220808134915-39b0c02b01ae h1:O4SWKdcHVCvYqyDV+9CJA1fcDN2L11Bule0iFy3YlAI= github.com/moby/term v0.0.0-20220808134915-39b0c02b01ae/go.mod h1:E2VnQOmVuvZB6UYnnDB0qG5Nq/1tD9acaOpo6xmt0Kw= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -485,24 +489,28 @@ github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXP github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= -github.com/prometheus/client_golang v1.12.1 h1:ZiaPsmm9uiBeaSMRznKsCDNtPCS0T3JVDGF+06gjBzk= github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= +github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw= +github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= +github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= -github.com/prometheus/common v0.32.1 h1:hWIdL3N2HoUx3B8j3YN9mWor0qhY/NlEKZEaXxuIRh4= github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= +github.com/prometheus/common v0.37.0 h1:ccBbHCgIiT9uSoFY0vX8H3zsNR5eLt17/RQLUvn8pXE= +github.com/prometheus/common v0.37.0/go.mod h1:phzohg0JFMnBEFGxTDbfu3QyL5GI8gTQJFhYO5B3mfA= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU= github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= +github.com/prometheus/procfs v0.8.0 h1:ODq8ZFEaYeCaZOJlZZdJA2AbQR98dSHSM1KW/You5mo= +github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= github.com/quasilyte/go-ruleguard v0.3.1-0.20210203134552-1b5a410e1cc8/go.mod h1:KsAh3x0e7Fkpgs+Q9pNLS5XpFSvYCEVl5gP9Pp1xp30= github.com/quasilyte/go-ruleguard v0.3.17 h1:cDdoaSbQg11LXPDQqiCK54QmQXsEQQCTIgdcpeULGSI= github.com/quasilyte/go-ruleguard v0.3.17/go.mod h1:sST5PvaR7yb/Az5ksX8oc88usJ4EGjmJv7cK7y3jyig= @@ -742,6 +750,8 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= @@ -755,6 +765,7 @@ golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= golang.org/x/oauth2 v0.5.0 h1:HuArIo48skDwlrvM3sEdHXElYslAMsf3KwRkkW4MC4s= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -821,6 +832,7 @@ golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211105183446-c75c47738b0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -847,7 +859,7 @@ golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac h1:7zkz7BUtwNFFqcowJ+RIgu2MaV/MapERkDIy+mwPyjs= +golang.org/x/time v0.1.0 h1:xYY+Bajn2a7VBmTM5GikTmnK8ZuX8YgnQCqZpbBNtmA= golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= From 7ed015f598aa793bf3bd00e0eee9647cc8ddc252 Mon Sep 17 00:00:00 2001 From: George MacRorie Date: Wed, 8 Mar 2023 10:54:29 +0000 Subject: [PATCH 08/36] refactor(mod): create separate errors and rpc/flipt packages --- errors/go.mod | 3 + errors/go.sum | 0 go.mod | 9 +- go.work | 7 + go.work.sum | 582 +++++++++++++++++++++++++++++++++++++++++++++++ rpc/flipt/go.mod | 28 +++ rpc/flipt/go.sum | 121 ++++++++++ 7 files changed, 749 insertions(+), 1 deletion(-) create mode 100644 errors/go.mod create mode 100644 errors/go.sum create mode 100644 go.work create mode 100644 go.work.sum create mode 100644 rpc/flipt/go.mod create mode 100644 rpc/flipt/go.sum diff --git a/errors/go.mod b/errors/go.mod new file mode 100644 index 0000000000..3b1284b1d8 --- /dev/null +++ b/errors/go.mod @@ -0,0 +1,3 @@ +module go.flipt.io/flipt/errors + +go 1.18 diff --git a/errors/go.sum b/errors/go.sum new file mode 100644 index 0000000000..e69de29bb2 diff --git a/go.mod b/go.mod index e06751909c..5c5da29390 100644 --- a/go.mod +++ b/go.mod @@ -20,7 +20,6 @@ require ( github.com/gorilla/csrf v1.7.1 github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 - github.com/grpc-ecosystem/grpc-gateway v1.16.0 github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.2 github.com/hashicorp/cap v0.2.0 github.com/lib/pq v1.10.7 @@ -37,6 +36,8 @@ require ( github.com/testcontainers/testcontainers-go v0.18.0 github.com/uber/jaeger-client-go v2.30.0+incompatible github.com/xo/dburl v0.13.0 + go.flipt.io/flipt/errors v0.0.0-00010101000000-000000000000 + go.flipt.io/flipt/rpc/flipt v0.0.0-00010101000000-000000000000 go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.39.0 go.opentelemetry.io/otel v1.14.0 go.opentelemetry.io/otel/exporters/jaeger v1.13.0 @@ -83,6 +84,7 @@ require ( github.com/google/go-querystring v1.1.0 // indirect github.com/google/uuid v1.3.0 // indirect github.com/gorilla/securecookie v1.1.1 // indirect + github.com/grpc-ecosystem/grpc-gateway v1.16.0 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect github.com/hashicorp/go-hclog v1.2.0 // indirect @@ -143,3 +145,8 @@ replace ( github.com/codahale/hdrhistogram => github.com/HdrHistogram/hdrhistogram-go v0.9.0 github.com/dgrijalva/jwt-go v3.2.0+incompatible => github.com/golang-jwt/jwt/v4 v4.2.0 ) + +replace ( + go.flipt.io/flipt/errors => ./errors/ + go.flipt.io/flipt/rpc/flipt => ./rpc/flipt/ +) diff --git a/go.work b/go.work new file mode 100644 index 0000000000..32a722dc3d --- /dev/null +++ b/go.work @@ -0,0 +1,7 @@ +go 1.18 + +use ( + . + ./errors + ./rpc/flipt/ +) diff --git a/go.work.sum b/go.work.sum new file mode 100644 index 0000000000..bfbfe0ec02 --- /dev/null +++ b/go.work.sum @@ -0,0 +1,582 @@ +bazil.org/fuse v0.0.0-20200407214033-5883e5a4b512 h1:SRsZGA7aFnCZETmov57jwPrWuTmaZK6+4R4v5FUe1/c= +cloud.google.com/go/accessapproval v1.5.0 h1:/nTivgnV/n1CaAeo+ekGexTYUsKEU9jUVkoY5359+3Q= +cloud.google.com/go/accesscontextmanager v1.4.0 h1:CFhNhU7pcD11cuDkQdrE6PQJgv0EXNKNv06jIzbLlCU= +cloud.google.com/go/aiplatform v1.27.0 h1:DBi3Jk9XjCJ4pkkLM4NqKgj3ozUL1wq4l+d3/jTGXAI= +cloud.google.com/go/analytics v0.12.0 h1:NKw6PpQi6V1O+KsjuTd+bhip9d0REYu4NevC45vtGp8= +cloud.google.com/go/apigateway v1.4.0 h1:IIoXKR7FKrEAQhMTz5hK2wiDz2WNFHS7eVr/L1lE/rM= +cloud.google.com/go/apigeeconnect v1.4.0 h1:AONoTYJviyv1vS4IkvWzq69gEVdvHx35wKXc+e6wjZQ= +cloud.google.com/go/apigeeregistry v0.4.0 h1:Av+wedLP6pM8NsLruknv/RFCE/5VVavOhZ8j722vBxg= +cloud.google.com/go/apikeys v0.4.0 h1:d+t1B9U1Ze3LmiRYdSVhNrcRlU6coLvPzNDkqYVuHoc= +cloud.google.com/go/appengine v1.5.0 h1:lmG+O5oaR9xNwaRBwE2XoMhwQHsHql5IoiGr1ptdDwU= +cloud.google.com/go/area120 v0.6.0 h1:TCMhwWEWhCn8d44/Zs7UCICTWje9j3HuV6nVGMjdpYw= +cloud.google.com/go/artifactregistry v1.9.0 h1:3d0LRAU1K6vfqCahhl9fx2oGHcq+s5gftdix4v8Ibrc= +cloud.google.com/go/asset v1.10.0 h1:aCrlaLGJWTODJX4G56ZYzJefITKEWNfbjjtHSzWpxW0= +cloud.google.com/go/assuredworkloads v1.9.0 h1:hhIdCOowsT1GG5eMCIA0OwK6USRuYTou/1ZeNxCSRtA= +cloud.google.com/go/automl v1.8.0 h1:BMioyXSbg7d7xLibn47cs0elW6RT780IUWr42W8rp2Q= +cloud.google.com/go/baremetalsolution v0.4.0 h1:g9KO6SkakcYPcc/XjAzeuUrEOXlYPnMpuiaywYaGrmQ= +cloud.google.com/go/batch v0.4.0 h1:1jvEBY55OH4Sd2FxEXQfxGExFWov1A/IaRe+Z5Z71Fw= +cloud.google.com/go/beyondcorp v0.3.0 h1:w+4kThysgl0JiKshi2MKDCg2NZgOyqOI0wq2eBZyrzA= +cloud.google.com/go/bigquery v1.44.0 h1:Wi4dITi+cf9VYp4VH2T9O41w0kCW0uQTELq2Z6tukN0= +cloud.google.com/go/billing v1.7.0 h1:Xkii76HWELHwBtkQVZvqmSo9GTr0O+tIbRNnMcGdlg4= +cloud.google.com/go/binaryauthorization v1.4.0 h1:pL70vXWn9TitQYXBWTK2abHl2JHLwkFRjYw6VflRqEA= +cloud.google.com/go/certificatemanager v1.4.0 h1:tzbR4UHBbgsewMWUD93JHi8EBi/gHBoSAcY1/sThFGk= +cloud.google.com/go/channel v1.9.0 h1:pNuUlZx0Jb0Ts9P312bmNMuH5IiFWIR4RUtLb70Ke5s= +cloud.google.com/go/cloudbuild v1.4.0 h1:TAAmCmAlOJ4uNBu6zwAjwhyl/7fLHHxIEazVhr3QBbQ= +cloud.google.com/go/clouddms v1.4.0 h1:UhzHIlgFfMr6luVYVNydw/pl9/U5kgtjCMJHnSvoVws= +cloud.google.com/go/cloudtasks v1.8.0 h1:faUiUgXjW8yVZ7XMnKHKm1WE4OldPBUWWfIRN/3z1dc= +cloud.google.com/go/contactcenterinsights v1.4.0 h1:tTQLI/ZvguUf9Hv+36BkG2+/PeC8Ol1q4pBW+tgCx0A= +cloud.google.com/go/container v1.7.0 h1:nbEK/59GyDRKKlo1SqpohY1TK8LmJ2XNcvS9Gyom2A0= +cloud.google.com/go/containeranalysis v0.6.0 h1:2824iym832ljKdVpCBnpqm5K94YT/uHTVhNF+dRTXPI= +cloud.google.com/go/datacatalog v1.8.0 h1:6kZ4RIOW/uT7QWC5SfPfq/G8sYzr/v+UOmOAxy4Z1TE= +cloud.google.com/go/dataflow v0.7.0 h1:CW3541Fm7KPTyZjJdnX6NtaGXYFn5XbFC5UcjgALKvU= +cloud.google.com/go/dataform v0.5.0 h1:vLwowLF2ZB5J5gqiZCzv076lDI/Rd7zYQQFu5XO1PSg= +cloud.google.com/go/datafusion v1.5.0 h1:j5m2hjWovTZDTQak4MJeXAR9yN7O+zMfULnjGw/OOLg= +cloud.google.com/go/datalabeling v0.6.0 h1:dp8jOF21n/7jwgo/uuA0RN8hvLcKO4q6s/yvwevs2ZM= +cloud.google.com/go/dataplex v1.4.0 h1:cNxeA2DiWliQGi21kPRqnVeQ5xFhNoEjPRt1400Pm8Y= +cloud.google.com/go/dataproc v1.8.0 h1:gVOqNmElfa6n/ccG/QDlfurMWwrK3ezvy2b2eDoCmS0= +cloud.google.com/go/dataqna v0.6.0 h1:gx9jr41ytcA3dXkbbd409euEaWtofCVXYBvJz3iYm18= +cloud.google.com/go/datastore v1.10.0 h1:4siQRf4zTiAVt/oeH4GureGkApgb2vtPQAtOmhpqQwE= +cloud.google.com/go/datastream v1.5.0 h1:PgIgbhedBtYBU6POGXFMn2uSl9vpqubc3ewTNdcU8Mk= +cloud.google.com/go/deploy v1.5.0 h1:kI6dxt8Ml0is/x7YZjLveTvR7YPzXAUD/8wQZ2nH5zA= +cloud.google.com/go/dialogflow v1.29.0 h1:Opy6fM2IV9ecQOXkce0JByjBVg8+4X+1AbTAQLbgrCg= +cloud.google.com/go/dlp v1.7.0 h1:9I4BYeJSVKoSKgjr70fLdRDumqcUeVmHV4fd5f9LR6Y= +cloud.google.com/go/documentai v1.10.0 h1:jfq09Fdjtnpnmt/MLyf6A3DM3ynb8B2na0K+vSXvpFM= +cloud.google.com/go/domains v0.7.0 h1:pu3JIgC1rswIqi5romW0JgNO6CTUydLYX8zyjiAvO1c= +cloud.google.com/go/edgecontainer v0.2.0 h1:hd6J2n5dBBRuAqnNUEsKWrp6XNPKsaxwwIyzOPZTokk= +cloud.google.com/go/errorreporting v0.3.0 h1:kj1XEWMu8P0qlLhm3FwcaFsUvXChV/OraZwA70trRR0= +cloud.google.com/go/essentialcontacts v1.4.0 h1:b6csrQXCHKQmfo9h3dG/pHyoEh+fQG1Yg78a53LAviY= +cloud.google.com/go/eventarc v1.8.0 h1:AgCqrmMMIcel5WWKkzz5EkCUKC3Rl5LNMMYsS+LvsI0= +cloud.google.com/go/filestore v1.4.0 h1:yjKOpzvqtDmL5AXbKttLc8j0hL20kuC1qPdy5HPcxp0= +cloud.google.com/go/firestore v1.9.0 h1:IBlRyxgGySXu5VuW0RgGFlTtLukSnNkpDiEOMkQkmpA= +cloud.google.com/go/functions v1.9.0 h1:35tgv1fQOtvKqH/uxJMzX3w6usneJ0zXpsFr9KAVhNE= +cloud.google.com/go/gaming v1.8.0 h1:97OAEQtDazAJD7yh/kvQdSCQuTKdR0O+qWAJBZJ4xiA= +cloud.google.com/go/gkebackup v0.3.0 h1:4K+jiv4ocqt1niN8q5Imd8imRoXBHTrdnJVt/uFFxF4= +cloud.google.com/go/gkeconnect v0.6.0 h1:zAcvDa04tTnGdu6TEZewaLN2tdMtUOJJ7fEceULjguA= +cloud.google.com/go/gkehub v0.10.0 h1:JTcTaYQRGsVm+qkah7WzHb6e9sf1C0laYdRPn9aN+vg= +cloud.google.com/go/gkemulticloud v0.4.0 h1:8F1NhJj8ucNj7lK51UZMtAjSWTgP1zO18XF6vkfiPPU= +cloud.google.com/go/gsuiteaddons v1.4.0 h1:TGT2oGmO5q3VH6SjcrlgPUWI0njhYv4kywLm6jag0to= +cloud.google.com/go/iam v0.11.0 h1:kwCWfKwB6ePZoZnGLwrd3B6Ru/agoHANTUBWpVNIdnM= +cloud.google.com/go/iap v1.5.0 h1:BGEXovwejOCt1zDk8hXq0bOhhRu9haXKWXXXp2B4wBM= +cloud.google.com/go/ids v1.2.0 h1:LncHK4HHucb5Du310X8XH9/ICtMwZ2PCfK0ScjWiJoY= +cloud.google.com/go/iot v1.4.0 h1:Y9+oZT9jD4GUZzORXTU45XsnQrhxmDT+TFbPil6pRVQ= +cloud.google.com/go/kms v1.6.0 h1:OWRZzrPmOZUzurjI2FBGtgY2mB1WaJkqhw6oIwSj0Yg= +cloud.google.com/go/language v1.8.0 h1:3Wa+IUMamL4JH3Zd3cDZUHpwyqplTACt6UZKRD2eCL4= +cloud.google.com/go/lifesciences v0.6.0 h1:tIqhivE2LMVYkX0BLgG7xL64oNpDaFFI7teunglt1tI= +cloud.google.com/go/logging v1.6.1 h1:ZBsZK+JG+oCDT+vaxwqF2egKNRjz8soXiS6Xv79benI= +cloud.google.com/go/longrunning v0.3.0 h1:NjljC+FYPV3uh5/OwWT6pVU+doBqMg2x/rZlE+CamDs= +cloud.google.com/go/managedidentities v1.4.0 h1:3Kdajn6X25yWQFhFCErmKSYTSvkEd3chJROny//F1A0= +cloud.google.com/go/maps v0.1.0 h1:kLReRbclTgJefw2fcCbdLPLhPj0U6UUWN10ldG8sdOU= +cloud.google.com/go/mediatranslation v0.6.0 h1:qAJzpxmEX+SeND10Y/4868L5wfZpo4Y3BIEnIieP4dk= +cloud.google.com/go/memcache v1.7.0 h1:yLxUzJkZVSH2kPaHut7k+7sbIBFpvSh1LW9qjM2JDjA= +cloud.google.com/go/metastore v1.8.0 h1:3KcShzqWdqxrDEXIBWpYJpOOrgpDj+HlBi07Grot49Y= +cloud.google.com/go/monitoring v1.8.0 h1:c9riaGSPQ4dUKWB+M1Fl0N+iLxstMbCktdEwYSPGDvA= +cloud.google.com/go/networkconnectivity v1.7.0 h1:BVdIKaI68bihnXGdCVL89Jsg9kq2kg+II30fjVqo62E= +cloud.google.com/go/networkmanagement v1.5.0 h1:mDHA3CDW00imTvC5RW6aMGsD1bH+FtKwZm/52BxaiMg= +cloud.google.com/go/networksecurity v0.6.0 h1:qDEX/3sipg9dS5JYsAY+YvgTjPR63cozzAWop8oZS94= +cloud.google.com/go/notebooks v1.5.0 h1:AC8RPjNvel3ExgXjO1YOAz+teg9+j+89TNxa7pIZfww= +cloud.google.com/go/optimization v1.2.0 h1:7PxOq9VTT7TMib/6dMoWpMvWS2E4dJEvtYzjvBreaec= +cloud.google.com/go/orchestration v1.4.0 h1:39d6tqvNjd/wsSub1Bn4cEmrYcet5Ur6xpaN+SxOxtY= +cloud.google.com/go/orgpolicy v1.5.0 h1:erF5PHqDZb6FeFrUHiYj2JK2BMhsk8CyAg4V4amJ3rE= +cloud.google.com/go/osconfig v1.10.0 h1:NO0RouqCOM7M2S85Eal6urMSSipWwHU8evzwS+siqUI= +cloud.google.com/go/oslogin v1.7.0 h1:pKGDPfeZHDybtw48WsnVLjoIPMi9Kw62kUE5TXCLCN4= +cloud.google.com/go/phishingprotection v0.6.0 h1:OrwHLSRSZyaiOt3tnY33dsKSedxbMzsXvqB21okItNQ= +cloud.google.com/go/policytroubleshooter v1.4.0 h1:NQklJuOUoz1BPP+Epjw81COx7IISWslkZubz/1i0UN8= +cloud.google.com/go/privatecatalog v0.6.0 h1:Vz86uiHCtNGm1DeC32HeG2VXmOq5JRYA3VRPf8ZEcSg= +cloud.google.com/go/pubsub v1.27.1 h1:q+J/Nfr6Qx4RQeu3rJcnN48SNC0qzlYzSeqkPq93VHs= +cloud.google.com/go/pubsublite v1.5.0 h1:iqrD8vp3giTb7hI1q4TQQGj77cj8zzgmMPsTZtLnprM= +cloud.google.com/go/recaptchaenterprise/v2 v2.5.0 h1:UqzFfb/WvhwXGDF1eQtdHLrmni+iByZXY4h3w9Kdyv8= +cloud.google.com/go/recommendationengine v0.6.0 h1:6w+WxPf2LmUEqX0YyvfCoYb8aBYOcbIV25Vg6R0FLGw= +cloud.google.com/go/recommender v1.8.0 h1:9kMZQGeYfcOD/RtZfcNKGKtoex3DdoB4zRgYU/WaIwE= +cloud.google.com/go/redis v1.10.0 h1:/zTwwBKIAD2DEWTrXZp8WD9yD/gntReF/HkPssVYd0U= +cloud.google.com/go/resourcemanager v1.4.0 h1:NDao6CHMwEZIaNsdWy+tuvHaavNeGP06o1tgrR0kLvU= +cloud.google.com/go/resourcesettings v1.4.0 h1:eTzOwB13WrfF0kuzG2ZXCfB3TLunSHBur4s+HFU6uSM= +cloud.google.com/go/retail v1.11.0 h1:N9fa//ecFUOEPsW/6mJHfcapPV0wBSwIUwpVZB7MQ3o= +cloud.google.com/go/run v0.3.0 h1:AWPuzU7Xtaj3Jf+QarDWIs6AJ5hM1VFQ+F6Q+VZ6OT4= +cloud.google.com/go/scheduler v1.7.0 h1:K/mxOewgHGeKuATUJNGylT75Mhtjmx1TOkKukATqMT8= +cloud.google.com/go/secretmanager v1.9.0 h1:xE6uXljAC1kCR8iadt9+/blg1fvSbmenlsDN4fT9gqw= +cloud.google.com/go/security v1.10.0 h1:KSKzzJMyUoMRQzcz7azIgqAUqxo7rmQ5rYvimMhikqg= +cloud.google.com/go/securitycenter v1.16.0 h1:QTVtk/Reqnx2bVIZtJKm1+mpfmwRwymmNvlaFez7fQY= +cloud.google.com/go/servicecontrol v1.5.0 h1:ImIzbOu6y4jL6ob65I++QzvqgFaoAKgHOG+RU9/c4y8= +cloud.google.com/go/servicedirectory v1.7.0 h1:f7M8IMcVzO3T425AqlZbP3yLzeipsBHtRza8vVFYMhQ= +cloud.google.com/go/servicemanagement v1.5.0 h1:TpkCO5M7dhKSy1bKUD9o/sSEW/U1Gtx7opA1fsiMx0c= +cloud.google.com/go/serviceusage v1.4.0 h1:b0EwJxPJLpavSljMQh0RcdHsUrr5DQ+Nelt/3BAs5ro= +cloud.google.com/go/shell v1.4.0 h1:b1LFhFBgKsG252inyhtmsUUZwchqSz3WTvAIf3JFo4g= +cloud.google.com/go/spanner v1.41.0 h1:NvdTpRwf7DTegbfFdPjAWyD7bOVu0VeMqcvR9aCQCAc= +cloud.google.com/go/speech v1.9.0 h1:yK0ocnFH4Wsf0cMdUyndJQ/hPv02oTJOxzi6AgpBy4s= +cloud.google.com/go/storage v1.14.0 h1:6RRlFMv1omScs6iq2hfE3IvgE+l6RfJPampq8UZc5TU= +cloud.google.com/go/storagetransfer v1.6.0 h1:fUe3OydbbvHcAYp07xY+2UpH4AermGbmnm7qdEj3tGE= +cloud.google.com/go/talent v1.4.0 h1:MrekAGxLqAeAol4Sc0allOVqUGO8j+Iim8NMvpiD7tM= +cloud.google.com/go/texttospeech v1.5.0 h1:ccPiHgTewxgyAeCWgQWvZvrLmbfQSFABTMAfrSPLPyY= +cloud.google.com/go/tpu v1.4.0 h1:ztIdKoma1Xob2qm6QwNh4Xi9/e7N3IfvtwG5AcNsj1g= +cloud.google.com/go/trace v1.4.0 h1:qO9eLn2esajC9sxpqp1YKX37nXC3L4BfGnPS0Cx9dYo= +cloud.google.com/go/translate v1.4.0 h1:AOYOH3MspzJ/bH1YXzB+xTE8fMpn3mwhLjugwGXvMPI= +cloud.google.com/go/video v1.9.0 h1:ttlvO4J5c1VGq6FkHqWPD/aH6PfdxujHt+muTJlW1Zk= +cloud.google.com/go/videointelligence v1.9.0 h1:RPFgVVXbI2b5vnrciZjtsUgpNKVtHO/WIyXUhEfuMhA= +cloud.google.com/go/vision/v2 v2.5.0 h1:TQHxRqvLMi19azwm3qYuDbEzZWmiKJNTpGbkNsfRCik= +cloud.google.com/go/vmmigration v1.3.0 h1:A2Tl2ZmwMRpvEmhV2ibISY85fmQR+Y5w9a0PlRz5P3s= +cloud.google.com/go/vmwareengine v0.1.0 h1:JMPZaOT/gIUxVlTqSl/QQ32Y2k+r0stNeM1NSqhVP9o= +cloud.google.com/go/vpcaccess v1.5.0 h1:woHXXtnW8b9gLFdWO9HLPalAddBQ9V4LT+1vjKwR3W8= +cloud.google.com/go/webrisk v1.7.0 h1:ypSnpGlJnZSXbN9a13PDmAYvVekBLnGKxQ3Q9SMwnYY= +cloud.google.com/go/websecurityscanner v1.4.0 h1:y7yIFg/h/mO+5Y5aCOtVAnpGUOgqCH5rXQ2Oc8Oq2+g= +cloud.google.com/go/workflows v1.9.0 h1:7Chpin9p50NTU8Tb7qk+I11U/IwVXmDhEoSsdccvInE= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9 h1:VpgP7xuJadIUuKccphEpTJnWhS2jkQyMt6Y7pJCD7fY= +gioui.org v0.0.0-20210308172011-57750fc8a0a6 h1:K72hopUosKG3ntOPNG4OzzbuhxGuVf06fa2la1/H/Ho= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20210715213245-6c3934b029d8 h1:V8krnnfGj4pV65YLUm3C0/8bl7V5Nry2Pwvy3ru/wLc= +github.com/Azure/azure-pipeline-go v0.2.3 h1:7U9HBg1JFK3jHl5qmo4CTZKFTVgMwdFHMVtCdfBE21U= +github.com/Azure/azure-sdk-for-go v16.2.1+incompatible h1:KnPIugL51v3N3WwvaSmZbxukD1WuWXOiE9fRdu32f2I= +github.com/Azure/azure-storage-blob-go v0.14.0 h1:1BCg74AmVdYwO3dlKwtFU1V0wU2PZdREkXvAmZJRUlM= +github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs= +github.com/Azure/go-autorest/autorest v0.11.18 h1:90Y4srNYrwOtAgVo3ndrQkTYn6kf1Eg/AjTFJ8Is2aM= +github.com/Azure/go-autorest/autorest/adal v0.9.16 h1:P8An8Z9rH1ldbOLdFpxYorgOt2sywL9V24dAwWHPuGc= +github.com/Azure/go-autorest/autorest/date v0.3.0 h1:7gUk1U5M/CQbp9WoqinNzJar+8KY+LPI6wiWrP/myHw= +github.com/Azure/go-autorest/autorest/mocks v0.4.1 h1:K0laFcLE6VLTOwNgSxaGbUcLPuGXlNkbVvq4cW4nIHk= +github.com/Azure/go-autorest/logger v0.2.1 h1:IG7i4p/mDa2Ce4TRyAO8IHnVhAVF3RFU+ZtXWSmf4Tg= +github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo= +github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= +github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802 h1:1BDTz0u9nC3//pOCMdNH+CiXJVYJh5UQNCOBG7jbELc= +github.com/ClickHouse/clickhouse-go v1.4.3 h1:iAFMa2UrQdR5bHJ2/yaSLffZkxpcOYQMCUuKeNXGdqc= +github.com/Microsoft/hcsshim/test v0.0.0-20210227013316-43a75bb4edd3 h1:4FA+QBaydEHlwxg0lMN3rhwoDaQy6LKhVWR4qvq4BuA= +github.com/NYTimes/gziphandler v1.1.1 h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I= +github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE= +github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= +github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= +github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d h1:UrqY+r/OJnIp5u0s1SbQ8dVfLCZJsnvazdBP5hS4iRs= +github.com/Shopify/sarama v1.37.2 h1:LoBbU0yJPte0cE5TZCGdlzZRmMgMtZU/XgnUKZg9Cv4= +github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af h1:wVe6/Ea46ZMeNkQjjBW6xcqyQA/j5e0D6GytH95g0gQ= +github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 h1:JYp7IbQjafoB+tBA3gMyHYHrpOtNuDiK/uB5uXxq5wM= +github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d h1:UQZhZ2O0vMHr2cI+DC1Mbh0TJxzA3RcLoMsFw+aXw7E= +github.com/alexflint/go-filemutex v1.1.0 h1:IAWuUuRYL2hETx5b8vCgwnD+xSdlsTQY6s2JjBsqLdg= +github.com/antihax/optional v1.0.0 h1:xK2lYat7ZLaVVcIuj82J8kIro4V6kDe0AUDFboUCwcg= +github.com/apache/arrow/go/arrow v0.0.0-20211013220434-5962184e7a30 h1:HGREIyk0QRPt70R69Gm1JFHDgoiyYpCyuGE8E9k/nf0= +github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e h1:QEF07wC0T1rKkctt1RINW/+RMTVmiwxETico2l3gxJA= +github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6 h1:G1bPvciwNyF7IUmKXNt9Ak3m6u9DE1rF+RmtIkBpVdA= +github.com/armon/go-metrics v0.4.0 h1:yCQqn7dwca4ITXb+CbubHmedzaQYHhNhrEXLYUeEe8Q= +github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310 h1:BUAU3CGlLvorLI26FmByPp2eC2qla6E1Tw+scpcg/to= +github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA= +github.com/aws/aws-sdk-go v1.17.7 h1:/4+rDPe0W95KBmNGYCG+NUvdL8ssPYBMxL+aSCg6nIA= +github.com/aws/aws-sdk-go-v2 v1.9.2 h1:dUFQcMNZMLON4BOe273pl0filK9RqyQMhCK/6xssL6s= +github.com/aws/aws-sdk-go-v2/config v1.8.3 h1:o5583X4qUfuRrOGOgmOcDgvr5gJVSu57NK08cWAhIDk= +github.com/aws/aws-sdk-go-v2/credentials v1.4.3 h1:LTdD5QhK073MpElh9umLLP97wxphkgVC/OjQaEbBwZA= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.6.0 h1:9tfxW/icbSu98C2pcNynm5jmDwU3/741F11688B6QnU= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.5.4 h1:TnU1cY51027j/MQeFy7DIgk1UuzJY+wLFYqXceY/fiE= +github.com/aws/aws-sdk-go-v2/internal/ini v1.2.4 h1:leSJ6vCqtPpTmBIgE7044B1wql1E4n//McF+mEgNrYg= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.3.0 h1:gceOysEWNNwLd6cki65IMBZ4WAM0MwgBQq2n7kejoT8= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.3.2 h1:r7jel2aa4d9Duys7wEmWqDd5ebpC9w6Kxu6wIjjp18E= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.7.2 h1:RnZjLgtCGLsF2xYYksy0yrx6xPvKG9BYv29VfK4p/J8= +github.com/aws/aws-sdk-go-v2/service/s3 v1.16.1 h1:z+P3r4LrwdudLKBoEVWxIORrk4sVg4/iqpG3+CS53AY= +github.com/aws/aws-sdk-go-v2/service/sso v1.4.2 h1:pZwkxZbspdqRGzddDB92bkZBoB7lg85sMRE7OqdB3V0= +github.com/aws/aws-sdk-go-v2/service/sts v1.7.2 h1:ol2Y5DWqnJeKqNd8th7JWzBtqu63xpOfs1Is+n1t8/4= +github.com/aws/smithy-go v1.8.0 h1:AEwwwXQZtUwP5Mz506FeXXrKBe0jA8gVM+1gEcSRooc= +github.com/bgentry/speakeasy v0.1.0 h1:ByYyxL9InA1OWqxJqqp2A5pYHUrCiAL6K3J+LKSsQkY= +github.com/bitly/go-hostpool v0.0.0-20171023180738-a3a6125de932 h1:mXoPYz/Ul5HYEDvkta6I8/rnYM5gSdSV2tJ6XbZuEtY= +github.com/bitly/go-simplejson v0.5.0 h1:6IH+V8/tVMab511d5bn4M7EwGXZf9Hj6i2xSwkNEM+Y= +github.com/bits-and-blooms/bitset v1.2.0 h1:Kn4yilvwNtMACtf1eYDlG8H77R07mZSPbMjLyS07ChA= +github.com/bkaradzic/go-lz4 v1.0.0 h1:RXc4wYsyz985CkXXeX04y4VnZFGG8Rd43pRaHsOXAKk= +github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c h1:+0HFd5KSZ/mm3JmhmrDukiId5iR6w4+BdFtfSy4yWIc= +github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= +github.com/boombuler/barcode v1.0.0 h1:s1TvRnXwL2xJRaccrdcBQMZxq6X7DvsMogtmJeHDdrc= +github.com/bshuster-repo/logrus-logstash-hook v0.4.1 h1:pgAtgj+A31JBVtEHu2uHuEx0n+2ukqUJnS2vVe5pQNA= +github.com/buger/jsonparser v1.1.1 h1:2PnMjfWD7wBILjqQbt530v576A/cAbQvEW9gGIpYMUs= +github.com/bugsnag/bugsnag-go v0.0.0-20141110184014-b1d153021fcd h1:rFt+Y/IK1aEZkEHchZRSq9OQbsSzIT/OrI8YFFmRIng= +github.com/bugsnag/osext v0.0.0-20130617224835-0dd3f918b21b h1:otBG+dV+YK+Soembjv71DPz3uX/V/6MMlSyD9JBQ6kQ= +github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0 h1:nvj0OLI3YqYXer/kZD8Ri1aaunCxIEsOst1BVJswV0o= +github.com/census-instrumentation/opencensus-proto v0.4.1 h1:iKLQ0xPNFxR/2hzXZMrBo8f1j86j5WHzznCCQxV/b8g= +github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054 h1:uH66TXeswKn5PW5zdZ39xEwfS9an067BirqA+P4QaLI= +github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= +github.com/checkpoint-restore/go-criu/v4 v4.1.0 h1:WW2B2uxx9KWF6bGlHqhm8Okiafwwx7Y2kcpn8lCpjgo= +github.com/checkpoint-restore/go-criu/v5 v5.3.0 h1:wpFFOoomK3389ue2lAb0Boag6XPht5QYpipxmSNL4d8= +github.com/chzyer/logex v1.1.10 h1:Swpa1K6QvQznwJRcfTfQJmTE72DqScAa40E+fbHEXEE= +github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e h1:fY5BOSpyZCqRo5OhCuC+XN+r/bBCmeuuJtjz+bCNIf8= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1 h1:q763qf9huN11kDQavWsoZXJNW3xEE4JJyHa5Q25/sd8= +github.com/cilium/ebpf v0.7.0 h1:1k/q3ATgxSXRdrmPfH8d7YK0GfqVsEKZAX9dQZvs56k= +github.com/client9/misspell v0.3.4 h1:ta993UF76GwbvJcIo3Y68y/M3WxlpEHPWIGDkJYwzJI= +github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58 h1:F1EaeKL/ta07PY/k9Os/UFtwERei2/XzGemhpGnBKNg= +github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe h1:QQ3GSy+MqSHxm/d8nCtnAiZdYFd45cYZPs8vOOIYKfk= +github.com/cncf/xds/go v0.0.0-20230105202645-06c439db220b h1:ACGZRIr7HsgBKHsueQ1yM4WaVaXh21ynwqsF8M8tXhA= +github.com/cockroachdb/apd v1.1.0 h1:3LFP3629v+1aKXU5Q37mxmRxX/pIu1nijXydLShEq5I= +github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5 h1:xD/lrqdvwsc+O2bjSSi3YqY73Ke3LAiSCx49aCesA0E= +github.com/cockroachdb/errors v1.2.4 h1:Lap807SXTH5tri2TivECb/4abUkMZC9zRoLarvcKDqs= +github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f h1:o/kfcElHqOiXqcou5a3rIlMc7oJbMQkeLk0VQJ7zgqY= +github.com/containerd/aufs v1.0.0 h1:2oeJiwX5HstO7shSrPZjrohJZLzK36wvpdmzDRkL/LY= +github.com/containerd/btrfs v1.0.0 h1:osn1exbzdub9L5SouXO5swW4ea/xVdJZ3wokxN5GrnA= +github.com/containerd/cgroups v1.0.4 h1:jN/mbWBEaz+T1pi5OFtnkQ+8qnmEbAr1Oo1FRm5B0dA= +github.com/containerd/console v1.0.3 h1:lIr7SlA5PxZyMV30bDW0MGbiOPXwc63yRuCP0ARubLw= +github.com/containerd/fifo v1.0.0 h1:6PirWBr9/L7GDamKr+XM0IeUFXu5mf3M/BPpH9gaLBU= +github.com/containerd/go-cni v1.1.6 h1:el5WPymG5nRRLQF1EfB97FWob4Tdc8INg8RZMaXWZlo= +github.com/containerd/go-runc v1.0.0 h1:oU+lLv1ULm5taqgV/CJivypVODI4SUz1znWjv3nNYS0= +github.com/containerd/imgcrypt v1.1.4 h1:iKTstFebwy3Ak5UF0RHSeuCTahC5OIrPJa6vjMAM81s= +github.com/containerd/nri v0.1.0 h1:6QioHRlThlKh2RkRTR4kIT3PKAcrLo3gIWnjkM4dQmQ= +github.com/containerd/stargz-snapshotter/estargz v0.4.1 h1:5e7heayhB7CcgdTkqfZqrNaNv15gABwr3Q2jBTbLlt4= +github.com/containerd/ttrpc v1.1.0 h1:GbtyLRxb0gOLR0TYQWt3O6B0NvT8tMdorEHqIQo/lWI= +github.com/containerd/typeurl v1.0.2 h1:Chlt8zIieDbzQFzXzAeBEF92KhExuE4p9p92/QmY7aY= +github.com/containerd/zfs v1.0.0 h1:cXLJbx+4Jj7rNsTiqVfm6i+RNLx6FFA2fMmDlEf+Wm8= +github.com/containernetworking/cni v1.1.1 h1:ky20T7c0MvKvbMOwS/FrlbNwjEoqJEUUYfsL4b0mc4k= +github.com/containernetworking/plugins v1.1.1 h1:+AGfFigZ5TiQH00vhR8qPeSatj53eNGz0C1d3wVYlHE= +github.com/containers/ocicrypt v1.1.3 h1:uMxn2wTb4nDR7GqG3rnZSfpJXqWURfzZ7nKydzIeKpA= +github.com/coreos/bbolt v1.3.2 h1:wZwiHHUieZCquLkDL0B8UhzreNWsPHooDAG3q34zk0s= +github.com/coreos/etcd v3.3.13+incompatible h1:8F3hqu9fGYLBifCmRCJsicFqDx/D68Rt3q1JMazcgBQ= +github.com/coreos/go-iptables v0.6.0 h1:is9qnZMPYjLd8LYqmm/qlE+wwEgJIkTYdhV3rfZo4jk= +github.com/coreos/go-oidc v2.1.0+incompatible h1:sdJrfw8akMnCuUlaZU3tE/uYXFgfqom8DBE9so9EBsM= +github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM= +github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f h1:JOrtw2xFKzlg+cbHpyrpLDmnN1HqhBfnX7WDiW7eG2c= +github.com/coreos/go-systemd/v22 v22.3.2 h1:D9/bQk5vlXQFZ6Kwuu6zaiXJ9oTPe68++AzAJc1DzSI= +github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f h1:lBNOc5arjvs8E5mO2tbpBpLoyyu8B6e44T7hJy6potg= +github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w= +github.com/cyphar/filepath-securejoin v0.2.3 h1:YX6ebbZCZP7VkM3scTTokDgBL2TY741X51MTk3ycuNI= +github.com/cznic/mathutil v0.0.0-20180504122225-ca4c9f2c1369 h1:XNT/Zf5l++1Pyg08/HV04ppB0gKxAqtZQBRYiYrUuYk= +github.com/d2g/dhcp4 v0.0.0-20170904100407-a1d1b6c41b1c h1:Xo2rK1pzOm0jO6abTPIQwbAmqBIOj132otexc1mmzFc= +github.com/d2g/dhcp4client v1.0.0 h1:suYBsYZIkSlUMEz4TAYCczKf62IA2UWC+O8+KtdOhCo= +github.com/d2g/dhcp4server v0.0.0-20181031114812-7d4a0a7f59a5 h1:+CpLbZIeUn94m02LdEKPcgErLJ347NUwxPKs5u8ieiY= +github.com/d2g/hardwareaddr v0.0.0-20190221164911-e7d9fbe030e4 h1:itqmmf1PFpC4n5JW+j4BU7X4MTfVurhYRTjODoPb2Y8= +github.com/denisenkom/go-mssqldb v0.10.0 h1:QykgLZBorFE95+gO3u9esLd0BmbvpWp0/waNNZfHBM8= +github.com/denverdino/aliyungo v0.0.0-20190125010748-a747050bb1ba h1:p6poVbjHDkKa+wtC8frBMwQtT3BmqGYBjzMwJ63tuR4= +github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954 h1:RMLoZVzv4GliuWafOuPuQDKSm1SJph7uCRnnS61JAn4= +github.com/dnaeon/go-vcr v1.0.1 h1:r8L/HqC0Hje5AXMu1ooW8oyQyOFv4GxqpL0nRP7SLLY= +github.com/dnephin/pflag v1.0.7 h1:oxONGlWxhmUct0YzKTgrpQv9AUA1wtPBn7zuSjJqptk= +github.com/docker/cli v0.0.0-20191017083524-a8ff7f821017 h1:2HQmlpI3yI9deH18Q6xiSOIjXD4sLI55Y/gfpa8/558= +github.com/docker/docker-credential-helpers v0.6.3 h1:zI2p9+1NQYdnG6sMU26EX4aVGlqbInSQxQXLvzJ4RPQ= +github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c h1:+pKlWGMw7gf6bQ+oDZB4KHQFypsfjYlq/C4rfL7D3g8= +github.com/docker/go-metrics v0.0.1 h1:AgB/0SvBxihN0X8OR4SjsblXkbMvalQ8cjmtKQ2rQV8= +github.com/docker/libtrust v0.0.0-20150114040149-fa567046d9b1 h1:ZClxb8laGDf5arXfYcAtECDFgAgHklGI8CxgjHnXKJ4= +github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96 h1:cenwrSVm+Z7QLSV/BsnenAOcDXdX4cMv4wP0B/5QbPg= +github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815 h1:bWDMxwH3px2JBh6AyO7hdCn/PkvCZXii8TGj7sbtEbQ= +github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= +github.com/eapache/go-resiliency v1.3.0 h1:RRL0nge+cWGlxXbUzJ7yMcq6w2XBEr19dCN6HECGaT0= +github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 h1:YEetp8/yCZMuEPMUDHG0CW/brkkEp8mzqk2+ODEitlw= +github.com/eapache/queue v1.1.0 h1:YOEu7KNc61ntiQlcEeUIoDTJ2o8mQznoNvUhiigpIqc= +github.com/edsrzf/mmap-go v0.0.0-20170320065105-0bce6a688712 h1:aaQcKT9WumO6JEJcRyTqFVq4XUZiUcKR2/GI31TOcz8= +github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153 h1:yUdfgN0XgIJw7foRItutHYUIhlcKzcSf5vDpdhQAKTc= +github.com/emicklei/go-restful v2.9.5+incompatible h1:spTtZBk5DYEvbxMVutUuTyh1Ao2r4iyvLdACqsl/Ljk= +github.com/envoyproxy/go-control-plane v0.10.3 h1:xdCVXxEe0Y3FQith+0cj2irwZudqGYvecuLB1HtdexY= +github.com/envoyproxy/protoc-gen-validate v0.9.1 h1:PS7VIOgmSVhWUEeZwTe7z7zouA22Cr590PzXKbZHOVY= +github.com/evanphx/json-patch v4.11.0+incompatible h1:glyUF9yIYtMHzn8xaKw5rMhdWcwsYV8dZHIq5567/xs= +github.com/felixge/httpsnoop v1.0.1 h1:lvB5Jl89CsZtGIWuTcDM1E/vkVs49/Ml7JJe07l8SPQ= +github.com/fogleman/gg v1.3.0 h1:/7zJX8F6AaYQc57WQCyN9cAIz+4bCJGO9B+dyW29am8= +github.com/form3tech-oss/jwt-go v3.2.5+incompatible h1:/l4kBbb4/vGSsdtB5nUe8L7B9mImVMaBPw9L/0TBHU8= +github.com/fsouza/fake-gcs-server v1.17.0 h1:OeH75kBZcZa3ZE+zz/mFdJ2btt9FgqfjI7gIh9+5fvk= +github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa h1:RDBNVkRviHZtvDvId8XSGPu3rmpmSe+wKRcEWNgsfWU= +github.com/gabriel-vasile/mimetype v1.4.0 h1:Cn9dkdYsMIu56tGho+fqzh7XmvY2YyGU0FnbhiOsEro= +github.com/garyburd/redigo v0.0.0-20150301180006-535138d7bcd7 h1:LofdAjjjqCSXMwLGgOgnE+rdPuvX9DxCqaHwKy7i/ko= +github.com/getsentry/raven-go v0.2.0 h1:no+xWJRb5ZI7eE8TWgIq1jLulQiIoLG0IfYxv5JYMGs= +github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= +github.com/go-fonts/dejavu v0.1.0 h1:JSajPXURYqpr+Cu8U9bt8K+XcACIHWqWrvWCKyeFmVQ= +github.com/go-fonts/latin-modern v0.2.0 h1:5/Tv1Ek/QCr20C6ZOz15vw3g7GELYL98KWr8Hgo+3vk= +github.com/go-fonts/liberation v0.1.1 h1:wBrPaMkrXFBW3qXpXAjiKljdVUMxn9bX2ia3XjPHoik= +github.com/go-fonts/stix v0.1.0 h1:UlZlgrvvmT/58o573ot7NFw0vZasZ5I6bcIft/oMdgg= +github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1 h1:QbL/5oDUmRBzO9/Z7Seo6zf912W/a6Sr4Eu0G/3Jho0= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4 h1:WtGNWLvXpe6ZudgnXrq0barxBImvnnJoMEhXAzcbM0I= +github.com/go-ini/ini v1.25.4 h1:Mujh4R/dH6YL8bxuISne3xX2+qcQ9p0IxKAP6ExWoUo= +github.com/go-kit/kit v0.9.0 h1:wDJmvq38kDhkVxi50ni9ykkdUr1PKgqKOoi01fa0Mdk= +github.com/go-kit/log v0.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU= +github.com/go-latex/latex v0.0.0-20210118124228-b3d85cf34e07 h1:OTlfMvwR1rLyf9goVmXfuS5AJn80+Vmj4rTf4n46SOs= +github.com/go-logfmt/logfmt v0.5.1 h1:otpy5pqBCBZ1ng9RQ0dPu4PN7ba75Y/aA+UpowDyNVA= +github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY= +github.com/go-openapi/jsonreference v0.19.5 h1:1WJP/wi4OjB4iV8KVbH73rQaoialJrqv8gitZLxGLtM= +github.com/go-openapi/spec v0.19.3 h1:0XRyw8kguri6Yw4SxhsQA/atC88yqrk0+G4YhI2wabc= +github.com/go-openapi/swag v0.19.14 h1:gm3vOOXfiuw5i9p5N9xJvfjvuofpyvLA9Wr6QfK5Fng= +github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= +github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 h1:p104kn46Q8WdvHunIJ9dAyjPVtrBPhSr3KT2yUst43I= +github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd h1:hSkbZ9XSyjyBirMeqSqUrK+9HboWrweVlzRNqoBi2d4= +github.com/gobuffalo/depgen v0.1.0 h1:31atYa/UW9V5q8vMJ+W6wd64OaaTHUrCUXER358zLM4= +github.com/gobuffalo/envy v1.7.0 h1:GlXgaiBkmrYMHco6t4j7SacKO4XUjvh5pwXh0f4uxXU= +github.com/gobuffalo/flect v0.1.3 h1:3GQ53z7E3o00C/yy7Ko8VXqQXoJGLkrTQCLTF1EjoXU= +github.com/gobuffalo/genny v0.1.1 h1:iQ0D6SpNXIxu52WESsD+KoQ7af2e3nCfnSBoSF/hKe0= +github.com/gobuffalo/gitgen v0.0.0-20190315122116-cc086187d211 h1:mSVZ4vj4khv+oThUfS+SQU3UuFIZ5Zo6UNcvK8E8Mz8= +github.com/gobuffalo/gogen v0.1.1 h1:dLg+zb+uOyd/mKeQUYIbwbNmfRsr9hd/WtYWepmayhI= +github.com/gobuffalo/here v0.6.0 h1:hYrd0a6gDmWxBM4TnrGw8mQg24iSVoIkHEk7FodQcBI= +github.com/gobuffalo/logger v0.0.0-20190315122211-86e12af44bc2 h1:8thhT+kUJMTMy3HlX4+y9Da+BNJck+p109tqqKp7WDs= +github.com/gobuffalo/mapi v1.0.2 h1:fq9WcL1BYrm36SzK6+aAnZ8hcp+SrmnDyAxhNx8dvJk= +github.com/gobuffalo/packd v0.1.0 h1:4sGKOD8yaYJ+dek1FDkwcxCHA40M4kfKgFHx8N2kwbU= +github.com/gobuffalo/packr/v2 v2.2.0 h1:Ir9W9XIm9j7bhhkKE9cokvtTl1vBm62A/fene/ZCj6A= +github.com/gobuffalo/syncx v0.0.0-20190224160051-33c29581e754 h1:tpom+2CJmpzAWj5/VEHync2rJGi+epHNIeRSWjzGA+4= +github.com/gocql/gocql v0.0.0-20210515062232-b7ef815b4556 h1:N/MD/sr6o61X+iZBAT2qEUF023s4KbA8RWfKzl0L6MQ= +github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e h1:BWhy2j3IXJhjCbC68FptL43tDKIq8FladmaTs3Xs7Z8= +github.com/godbus/dbus/v5 v5.0.6 h1:mkgN1ofwASrYnJ5W6U/BxG15eXXXjirgZc7CLqkcaro= +github.com/gogo/googleapis v1.4.0 h1:zgVt4UpGxcqVOw97aRGxT4svlcmdK35fynLNctY32zI= +github.com/golang-jwt/jwt/v4 v4.1.0 h1:XUgk2Ex5veyVFVeLm0xhusUTQybEbexJXrvPNOKkSY0= +github.com/golang-jwt/jwt/v4 v4.2.0 h1:besgBTC8w8HjP6NzQdxwKH9Z5oQMZ24ThTrHp3cZ8eU= +github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe h1:lXe2qZdvpiX5WZkZR4hgp4KJVfY3nMkvmwbVkpv1rVY= +github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= +github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= +github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= +github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4= +github.com/google/flatbuffers v2.0.0+incompatible h1:dicJ2oXwypfwUGnB2/TYWYEKiuk9eYQlQO/AnOHl5mI= +github.com/google/go-containerregistry v0.5.1 h1:/+mFTs4AlwsJ/mJe8NDtKb7BxLtbZFpcn8vDsneEkwQ= +github.com/google/go-github/v39 v39.2.0 h1:rNNM311XtPOz5rDdsJXAp2o8F67X9FnROXTvto3aSnQ= +github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= +github.com/google/martian v2.1.0+incompatible h1:/CP5g8u/VJHijgedC/Legn3BAbAaWPgecwXBIDzw5no= +github.com/google/martian/v3 v3.2.1 h1:d8MncMlErDFTwQGBK1xhv026j9kqhvw1Qv9IbWT1VLQ= +github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 h1:K6RDEckDVWvDI9JAJYCmNdQXq6neHJOYx3V6jnqNEec= +github.com/google/renameio v0.1.0 h1:GOZbcHa3HfsPKPlmyPyN2KEohoMXOhdMbHrvbpl2QaA= +github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= +github.com/googleapis/enterprise-certificate-proxy v0.2.1 h1:RY7tHKZcRlk788d5WSo/e83gOyyy742E8GSs771ySpg= +github.com/googleapis/gax-go/v2 v2.7.0 h1:IcsPKeInNvYi7eqSaDjiZqDDKu5rsmunY0Y1YupQSSQ= +github.com/googleapis/gnostic v0.5.5 h1:9fHAtK0uDfpveeqqo1hkEZJcFvYXAiCN3UutL8F9xHw= +github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8 h1:tlyzajkF3030q6M8SvmJSemC9DTHL/xaMa18b65+JM4= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= +github.com/gorilla/handlers v1.4.2 h1:0QniY0USkHQ1RGCLfKxeNHK9bkDHGRYGNDFBCS+YARg= +github.com/gorilla/mux v1.7.4 h1:VuZ8uybHlWmqV03+zRzdwKL4tUnIp1MAQtp1mIFE1bc= +github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= +github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 h1:pdN6V1QBWetyv/0+wjACpqVH+eVULgEjkurDLq3goeM= +github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed h1:5upAirOpQc1Q53c0bnx2ufif5kANL7bfZWcc6VJWJd8= +github.com/hashicorp/consul/api v1.18.0 h1:R7PPNzTCeN6VuQNDwwhZWJvzCtGSrNpJqfb22h3yH9g= +github.com/hashicorp/consul/sdk v0.1.1 h1:LnuDWGNsoajlhGyHJvuWW6FVqRl8JOTPqS6CPTsYjhY= +github.com/hashicorp/go-immutable-radix v1.3.1 h1:DKHmCUm2hRBK510BaiZlwvpD40f8bJFeZnpfm2KLowc= +github.com/hashicorp/go-msgpack v0.5.3 h1:zKjpN5BK/P5lMYrLmBHdBULWbJ0XpYR+7NGzqkZzoD4= +github.com/hashicorp/go-rootcerts v1.0.2 h1:jzhAVGtqPKbwpyCPELlgNWhE1znq+qwJtW5Oi2viEzc= +github.com/hashicorp/go-sockaddr v1.0.0 h1:GeH6tui99pF4NJgfnhp+L6+FfobzVW3Ah46sLo0ICXs= +github.com/hashicorp/go-syslog v1.0.0 h1:KaodqZuhUoZereWVIYmpUgZysurB1kBLX2j0MwMrUAE= +github.com/hashicorp/go.net v0.0.1 h1:sNCoNyDEvN1xa+X0baata4RdcpKwcMS6DH+xwfqPgjw= +github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc= +github.com/hashicorp/logutils v1.0.0 h1:dLEQVugN8vlakKOUE3ihGLTZJRB4j+M2cdTm/ORI65Y= +github.com/hashicorp/mdns v1.0.0 h1:WhIgCr5a7AaVH6jPUwjtRuuE7/RDufnUvzIr48smyxs= +github.com/hashicorp/memberlist v0.1.3 h1:EmmoJme1matNzb+hMpDuR/0sbJSUisxyqBGG676r31M= +github.com/hashicorp/serf v0.10.1 h1:Z1H2J60yRKvfDYAOZLd2MU0ND4AH/WDz7xYHDWQsIPY= +github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= +github.com/iancoleman/strcase v0.2.0 h1:05I4QRnGpI0m37iZQRuskXh+w77mr6Z41lwQzuHLwW0= +github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639 h1:mV02weKRL81bEnm8A0HT1/CAelMQDBuQIfLw8n+d6xI= +github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU= +github.com/intel/goresctrl v0.2.0 h1:JyZjdMQu9Kl/wLXe9xA6s1X+tF6BWsQPFGJMEeCfWzE= +github.com/j-keck/arping v1.0.2 h1:hlLhuXgQkzIJTZuhMigvG/CuSkaspeaD9hRDk2zuiMI= +github.com/jackc/chunkreader v1.0.0 h1:4s39bBR8ByfqH+DKm8rQA3E1LHZWB9XWcrz8fqaZbe0= +github.com/jackc/chunkreader/v2 v2.0.1 h1:i+RDz65UE+mmpjTfyz0MoVTnzeYxroil2G82ki7MGG8= +github.com/jackc/pgconn v1.8.0 h1:FmjZ0rOyXTr1wfWs45i4a9vjnjWUAGpMuQLD9OSs+lw= +github.com/jackc/pgerrcode v0.0.0-20201024163028-a0d42d470451 h1:WAvSpGf7MsFuzAtK4Vk7R4EVe+liW4x83r4oWu0WHKw= +github.com/jackc/pgio v1.0.0 h1:g12B9UwVnzGhueNavwioyEEpAmqMe1E/BN9ES+8ovkE= +github.com/jackc/pgmock v0.0.0-20190831213851-13a1b77aafa2 h1:JVX6jT/XfzNqIjye4717ITLaNwV9mWbJx0dLCpcRzdA= +github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM= +github.com/jackc/pgproto3 v1.1.0 h1:FYYE4yRw+AgI8wXIinMlNjBbp/UitDJwfj5LqqewP1A= +github.com/jackc/pgproto3/v2 v2.0.7 h1:6Pwi1b3QdY65cuv6SyVO0FgPd5J3Bl7wf/nQQjinHMA= +github.com/jackc/pgservicefile v0.0.0-20200714003250-2b9c44734f2b h1:C8S2+VttkHFdOOCXJe+YGfa4vHYwlt4Zx+IVXQ97jYg= +github.com/jackc/pgtype v1.6.2 h1:b3pDeuhbbzBYcg5kwNmNDun4pFUD/0AAr1kLXZLeNt8= +github.com/jackc/pgx/v4 v4.10.1 h1:/6Q3ye4myIj6AaplUm+eRcz4OhK9HAvFf4ePsG40LJY= +github.com/jackc/puddle v1.1.3 h1:JnPg/5Q9xVJGfjsO5CPUOjnJps1JaRUm8I9FXVCFK94= +github.com/jcmturner/aescts/v2 v2.0.0 h1:9YKLH6ey7H4eDBXW8khjYslgyqG2xZikXP0EQFKrle8= +github.com/jcmturner/dnsutils/v2 v2.0.0 h1:lltnkeZGL0wILNvrNiVCR6Ro5PGU/SeBvVO/8c/iPbo= +github.com/jcmturner/gofork v1.7.6 h1:QH0l3hzAU1tfT3rZCnW5zXl+orbkNMMRGJfdJjHVETg= +github.com/jcmturner/gokrb5/v8 v8.4.3 h1:iTonLeSJOn7MVUtyMT+arAn5AKAPrkilzhGw8wE/Tq8= +github.com/jcmturner/rpc/v2 v2.0.3 h1:7FXXj8Ti1IaVFpSAziCZWNzbNuZmnvw/i6CqLNdWfZY= +github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= +github.com/jinzhu/now v1.1.1 h1:g39TucaRWyV3dwDO++eEc6qf8TVIQ/Da48WmqjZ3i7E= +github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= +github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= +github.com/jmoiron/sqlx v1.3.1 h1:aLN7YINNZ7cYOPK3QC83dbM6KT0NMqVMw961TqrejlE= +github.com/joefitzgerald/rainbow-reporter v0.1.0 h1:AuMG652zjdzI0YCCnXAqATtRBpGXMcAnrajcaTrSeuo= +github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc= +github.com/jonboulle/clockwork v0.2.2 h1:UOGuzwb1PwsrDAObMuhUnj0p5ULPj8V/xJ7Kx9qUBdQ= +github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= +github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= +github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= +github.com/jstemmer/go-junit-report v0.9.1 h1:6QPYqodiu3GuPL+7mfx+NwDdp2eTkp9IfEUpgAwUN0o= +github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= +github.com/julienschmidt/httprouter v1.3.0 h1:U0609e9tgbseu3rBINet9P48AI/D3oJs4dN7jwJOQ1U= +github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5 h1:PJr+ZMXIecYc1Ey2zucXdR73SMBtgjPgwa31099IMv0= +github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88 h1:uC1QfSlInpQF+M0ao65imhwqKnz3Q2z/d8PWZRMQvDM= +github.com/k0kubun/pp v2.3.0+incompatible h1:EKhKbi34VQDWJtq+zpsKSEhkHHs9w2P8Izbq8IhLVSo= +github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 h1:iQTw/8FWTuc7uiaSepXwyf3o52HaUYcV+Tu66S3F5GA= +github.com/karrick/godirwalk v1.10.3 h1:lOpSw2vJP0y5eLBW906QwKsUK/fe/QDyoqM5rnnuPDY= +github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs= +github.com/kisielk/errcheck v1.5.0 h1:e8esj/e4R+SAOwFwN+n3zr0nYeCyeweozKfO23MvHzY= +github.com/kisielk/gotool v1.0.0 h1:AV2c/EiW3KqPNT9ZKl07ehoAGi4C5/01Cfbblndcapg= +github.com/konsorten/go-windows-terminal-sequences v1.0.3 h1:CE8S1cTafDpPvMhIxNJKvHsGVBgn1xWYf1NbHQhywc8= +github.com/kr/fs v0.1.0 h1:Jskdu9ieNAYnjxsi0LbQp1ulIKZV1LAFgK1tWhpZgl8= +github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515 h1:T+h1c/A9Gawja4Y9mFVWj2vyii2bbUNDw3kt9VxK2EY= +github.com/kr/pty v1.1.8 h1:AkaSdXYQOWeaO3neb8EM634ahkXXe3jYbVh/F9lq+GI= +github.com/ktrysmt/go-bitbucket v0.6.4 h1:C8dUGp0qkwncKtAnozHCbbqhptefzEd1I0sfnuy9rYQ= +github.com/linuxkit/virtsock v0.0.0-20201010232012-f8cee7dfc7a3 h1:jUp75lepDg0phMUJBCmvaeFDldD2N3S1lBuPwUTszio= +github.com/lyft/protoc-gen-star v0.5.3 h1:zSGLzsUew8RT+ZKPHc3jnf8XLaVyHzTcAFBzHtCNR20= +github.com/mailru/easyjson v0.7.6 h1:8yTIVnZgCoiM1TgqoeTl+LfU5Jg6/xL3QhGQnimLYnA= +github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2 h1:JgVTCPf0uBVcUSWpyXmGpgOc62nK5HWUBKAGc3Qqa5k= +github.com/markbates/pkger v0.15.1 h1:3MPelV53RnGSW07izx5xGxl4e/sdRD6zqseIk0rMASY= +github.com/markbates/safe v1.0.1 h1:yjZkbvRM6IzKj9tlu/zMJLS0n/V351OZWRnF3QfaUxI= +github.com/marstr/guid v1.1.0 h1:/M4H/1G4avsieL6BbUwCOBzulmoeKVP5ux/3mQNnbyI= +github.com/mattn/go-ieproxy v0.0.1 h1:qiyop7gCflfhwCzGyeT0gro3sF9AIg9HU98JORTkqfI= +github.com/mattn/go-runewidth v0.0.2 h1:UnlwIPBGaTZfPQ6T1IGzPI0EkYAQmT9fAEJ/poFC63o= +github.com/mattn/go-shellwords v1.0.12 h1:M2zGm7EW6UQJvDeQxo4T51eKPurbeFbe8WtebGE2xrk= +github.com/maxbrunsfeld/counterfeiter/v6 v6.2.2 h1:g+4J5sZg6osfvEfkRZxJ1em0VT95/UOZgi/l7zi1/oE= +github.com/miekg/dns v1.0.14 h1:9jZdLNd/P4+SfEJ0TNyxYpsK8N4GtfylBLqtbYN1sbA= +github.com/miekg/pkcs11 v1.1.1 h1:Ugu9pdy6vAYku5DEpVWVFPYnzV+bxB+iRdbuFSu7TvU= +github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible h1:aKW/4cBs+yK6gpqU3K/oIwk9Q/XICqd3zOX/UFuvqmk= +github.com/mitchellh/cli v1.0.0 h1:iGBIsUe3+HZ/AD/Vd7DErOt5sU9fa8Uj7A2s1aggv1Y= +github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= +github.com/mitchellh/go-testing-interface v1.0.0 h1:fzU/JVNcaqHQEcVFAKeR41fkiLdIPrefOvVG1VZ96U0= +github.com/mitchellh/gox v0.4.0 h1:lfGJxY7ToLJQjHHwi0EX6uYBdK78egf954SQl13PQJc= +github.com/mitchellh/iochan v1.0.0 h1:C+X3KsSTLFVBr/tK1eYN/vs4rJcvsiLU338UhYPJWeY= +github.com/mitchellh/osext v0.0.0-20151018003038-5e2d6d41470f h1:2+myh5ml7lgEU/51gbeLHfKGNfgEQQIWrlbdaOsidbQ= +github.com/moby/locker v1.0.1 h1:fOXqR41zeveg4fFODix+1Ch4mj/gT0NE1XJbp/epuBg= +github.com/moby/spdystream v0.2.0 h1:cjW1zVyyoiM0T7b6UoySUFqzXMoqRckQtXwGPiBhOM8= +github.com/moby/sys/mountinfo v0.5.0 h1:2Ks8/r6lopsxWi9m58nlwjaeSzUX9iiL1vj5qB/9ObI= +github.com/moby/sys/signal v0.6.0 h1:aDpY94H8VlhTGa9sNYUFCFsMZIUh5wm0B6XkIoJj/iY= +github.com/moby/sys/symlink v0.2.0 h1:tk1rOM+Ljp0nFmfOIBtlV3rTDlWOwFRhjEeAhZB0nZc= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= +github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= +github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe h1:iruDEfMl2E6fbMZ9s0scYfZQ84/6SPL6zC8ACM2oIL0= +github.com/mrunalp/fileutils v0.5.0 h1:NKzVxiH7eSk+OQ4M+ZYW1K6h27RUV3MI6NUTsHhU6Z4= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/mutecomm/go-sqlcipher/v4 v4.4.0 h1:sV1tWCWGAVlPhNGT95Q+z/txFxuhAYWwHD1afF5bMZg= +github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= +github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J1GEMiLbxo1LJaP8RfCpH6pymGZus= +github.com/nakagami/firebirdsql v0.0.0-20190310045651-3c02a58cfed8 h1:P48LjvUQpTReR3TQRbxSeSBsMXzfK0uol7eRcr7VBYQ= +github.com/ncw/swift v1.0.47 h1:4DQRPj35Y41WogBxyhOXlrI37nzGlyEcsforeudyYPQ= +github.com/neo4j/neo4j-go-driver v1.8.1-0.20200803113522-b626aa943eba h1:fhFP5RliM2HW/8XdcO5QngSfFli9GcRIpMXvypTQt6E= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= +github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= +github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5 h1:58+kh9C6jJVXYjt8IE48G2eWl6BjwU5Gj0gqY84fy78= +github.com/onsi/ginkgo/v2 v2.7.0 h1:/XxtEV3I3Eif/HobnVx9YmJgk8ENdRsuUmM+fLCFNow= +github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417 h1:3snG66yBm59tKhhSPQrQ/0bCrv1LQbKt40LnUPiUxdc= +github.com/opencontainers/runtime-tools v0.0.0-20181011054405-1d69bd0f9c39 h1:H7DMc6FAjgwZZi8BRqjrAAHWoqEr5e5L6pS4V0ezet4= +github.com/opencontainers/selinux v1.10.1 h1:09LIPVRP3uuZGQvgR+SgMSNBd1Eb3vlRbGqQpoHsF8w= +github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c h1:Lgl0gzECD8GnQ5QCWA8o6BtfL6mDH5rQgM4/fX3avOs= +github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= +github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI= +github.com/phpdave11/gofpdf v1.4.2 h1:KPKiIbfwbvC/wOncwhrpRdXVj2CZTCFlw4wnoyjtHfQ= +github.com/phpdave11/gofpdi v1.0.12 h1:RZb9NG62cw/RW0rHAduVRo+98R8o/G1krcg2ns7DakQ= +github.com/pierrec/lz4 v2.0.5+incompatible h1:2xWsjqPFWcplujydGg4WmhC/6fZqK42wMM8aXeqhl0I= +github.com/pierrec/lz4/v4 v4.1.17 h1:kV4Ip+/hUBC+8T6+2EgburRtkE9ef4nbY3f4dFhGjMc= +github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 h1:KoWmjvw+nsYOo29YJK9vDA65RGE3NrOnUtO7a+RF9HU= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e h1:aoZm08cpOy4WuID//EZDgcC4zIxODThtZNPirFr42+A= +github.com/pkg/sftp v1.13.1 h1:I2qBYMChEhIjOgazfJmV3/mZM256btk6wkCDRmW7JYs= +github.com/posener/complete v1.1.1 h1:ccV59UEOTzVDnDUEFdT95ZzHVZ+5+158q8+SJb2QV5w= +github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021 h1:0XM1XL/OFFJjXsYXlG30spTkV/E9+gmd5GD1w2HE8xM= +github.com/prometheus/tsdb v0.7.1 h1:YZcsG11NqnK4czYLrWd9mpEuAJIHVQLwdrleYfszMAA= +github.com/rabbitmq/amqp091-go v1.5.0 h1:VouyHPBu1CrKyJVfteGknGOGCzmOz0zcv/tONLkb7rg= +github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= +github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0 h1:OdAsTTz6OkFY5QxjkYwrChwuRruF69c169dPK26NUlk= +github.com/rogpeppe/fastuuid v1.2.0 h1:Ppwyp6VYCF1nvBTXL3trRso7mXMlRrw9ooo375wvi2s= +github.com/rs/xid v1.2.1 h1:mhH9Nq+C1fY2l1XIpgxIiUOfNpRBYH1kKcr+qfKgjRc= +github.com/rs/zerolog v1.15.0 h1:uPRuwkWF4J6fGsJ2R0Gn2jB1EQiav9k3S6CSdygQJXY= +github.com/russross/blackfriday v1.6.0 h1:KqfZb0pUVN2lYqZUYRddxF4OR8ZMURnJIG5Y3VRLtww= +github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= +github.com/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58 h1:nlG4Wa5+minh3S9LVFtNoY+GVRiudA2e3EVfcCi3RCA= +github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f h1:UFr9zpz4xgTnIE5yIMtWAMngCdZ9p/+q6lTbgelo80M= +github.com/safchain/ethtool v0.0.0-20210803160452-9aa261dae9b1 h1:ZFfeKAhIQiiOrQaI3/znw0gOmYpO28Tcu1YaqMa/jtQ= +github.com/sagikazarmark/crypt v0.9.0 h1:fipzMFW34hFUEc4D7fsLQFtE7yElkpgyS2zruedRdZk= +github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww= +github.com/sclevine/agouti v3.0.0+incompatible h1:8IBJS6PWz3uTlMP3YBIR5f+KAldcGuOeFkFbUWfBgK4= +github.com/sclevine/spec v1.2.0 h1:1Jwdf9jSfDl9NVmt8ndHqbTZ7XCCPbh1jI3hkDBHVYA= +github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I= +github.com/seccomp/libseccomp-golang v0.9.2-0.20220502022130-f33da4d89646 h1:RpforrEYXWkmGwJHIGnLZ3tTWStkjVVstwzNGqxX2Ds= +github.com/shopspring/decimal v1.2.0 h1:abSATXmQEYyShuxI4/vyW3tV1MrKAJzCZ/0zLUXYbsQ= +github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= +github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s= +github.com/snowflakedb/gosnowflake v1.6.3 h1:EJDdDi74YbYt1ty164ge3fMZ0eVZ6KA7b1zmAa/wnRo= +github.com/soheilhy/cmux v0.1.5 h1:jjzc5WVemNEDTLwv9tlmemhC73tI08BNOIGwBOo10Js= +github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72 h1:qLC7fQah7D6K1B0ujays3HV9gkFtllcxhzImRR7ArPQ= +github.com/stefanberger/go-pkcs11uri v0.0.0-20201008174630-78d3cae3a980 h1:lIOOHPEbXzO3vnmx2gok1Tfs31Q8GQqKLc8vVqyQq/I= +github.com/stoewer/go-strcase v1.2.0 h1:Z2iHWqGXH00XYgqDmNgQbIBxf3wrNq0F3feEy0ainaU= +github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 h1:kdXcSzyDtseVEc4yCz2qF8ZrQvIDBJLl4S1c3GCXmoI= +github.com/tchap/go-patricia v2.2.6+incompatible h1:JvoDL7JSoIP2HDE8AbDH3zC8QBPxmzYe32HHy5yQ+Ck= +github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4= +github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802 h1:uruHq4dN7GR16kFc5fp3d1RIYzJW5onx8Ybykw2YQFA= +github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c h1:u6SKchux2yDvFQnDHS3lPnIRmfVJ5Sxy3ao2SIdysLQ= +github.com/ugorji/go v1.1.4 h1:j4s+tAvLfL3bZyefP2SEWmhBzmuIlH/eqNuPdFPgngw= +github.com/urfave/cli v1.22.2 h1:gsqYFH8bb9ekPA12kRo0hfjngWQjkJPlN9R0N78BoUo= +github.com/vishvananda/netlink v1.1.1-0.20210330154013-f5de75959ad5 h1:+UB2BJA852UkGH42H+Oee69djmxS3ANzl2b/JtT1YiA= +github.com/vishvananda/netns v0.0.0-20210104183010-2eb08e3e575f h1:p4VB7kIXpOQvVn1ZaTIVp+3vuYAXFe3OJEvjbUYJLaA= +github.com/willf/bitset v1.1.11 h1:N7Z7E9UvjW+sGsEl7k/SJrvY2reP1A07MrGuCjIOjRE= +github.com/xanzy/go-gitlab v0.15.0 h1:rWtwKTgEnXyNUGrOArN7yyc3THRkpYcKXIXia9abywQ= +github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c= +github.com/xdg-go/scram v1.0.2 h1:akYIkZ28e6A96dkWNJQu3nmCzH3YfwMPQExUYDaRv7w= +github.com/xdg-go/stringprep v1.0.2 h1:6iq84/ryjjeRmMJwxutI51F2GIPlP5BfTvXHeYjyhBc= +github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f h1:J9EGpcZtP0E/raorCMxlFGSTBrsSlaDGf3jU/qvAE2c= +github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0= +github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= +github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5Qo6v2eYzo7kUS51QINcR5jNpbZS8= +github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77 h1:ESFSdwYZvkeru3RtdrYueztKhOBCSAAzS4Gf+k0tEow= +github.com/yhat/scrape v0.0.0-20161128144610-24b7890b0945 h1:6Ju8pZBYFTN9FaV/JvNBiIHcsgEmP4z4laciqjfjY8E= +github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d h1:splanxYIlg+5LfHAM6xpdFEAYOk8iySO56hMFq6uLyA= +github.com/yuin/goldmark v1.4.13 h1:fVcFKWvrslecOb/tg+Cc05dkeYx540o0FuFt3nUVDoE= +github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43 h1:+lm10QQTNSBd8DVTNGHx7o/IKu9HYDvLMffDhbyLccI= +github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50 h1:hlE8//ciYMztlGpl/VA+Zm1AcTPHYkHJPbHqE6WJUXE= +github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f h1:ERexzlUfuTvpE74urLSbIQW0Z/6hF9t8U4NsJLaioAY= +github.com/zenazn/goji v0.9.0 h1:RSQQAbXGArQ0dIDEq+PI6WqN6if+5KHu6x2Cx/GXLTQ= +gitlab.com/nyarla/go-crypt v0.0.0-20160106005555-d9a5dc2b789b h1:7gd+rd8P3bqcn/96gOZa3F5dpJr/vEiDQYlNb/y2uNs= +go.etcd.io/bbolt v1.3.6 h1:/ecaJf0sk1l4l6V4awd65v2C3ILy7MSj+s/x1ADCIMU= +go.etcd.io/etcd v0.5.0-alpha.5.0.20200910180754-dd1b699fc489 h1:1JFLBqwIgdyHN1ZtgjTBwO+blA6gVOmZurpiMEsETKo= +go.etcd.io/etcd/api/v3 v3.5.6 h1:Cy2qx3npLcYqTKqGJzMypnMv2tiRyifZJ17BlWIWA7A= +go.etcd.io/etcd/client/pkg/v3 v3.5.6 h1:TXQWYceBKqLp4sa87rcPs11SXxUA/mHwH975v+BDvLU= +go.etcd.io/etcd/client/v2 v2.305.6 h1:fIDR0p4KMjw01MJMfUIDWdQbjo06PD6CeYM5z4EHLi0= +go.etcd.io/etcd/client/v3 v3.5.6 h1:coLs69PWCXE9G4FKquzNaSHrRyMCAXwF+IX1tAPVO8E= +go.etcd.io/etcd/pkg/v3 v3.5.0 h1:ntrg6vvKRW26JRmHTE0iNlDgYK6JX3hg/4cD62X0ixk= +go.etcd.io/etcd/raft/v3 v3.5.0 h1:kw2TmO3yFTgE+F0mdKkG7xMxkit2duBDa2Hu6D/HMlw= +go.etcd.io/etcd/server/v3 v3.5.0 h1:jk8D/lwGEDlQU9kZXUFMSANkE22Sg5+mW27ip8xcF9E= +go.mongodb.org/mongo-driver v1.7.0 h1:hHrvOBWlWB2c7+8Gh/Xi5jj82AgidK/t7KVXBZ+IyUA= +go.mozilla.org/pkcs7 v0.0.0-20200128120323-432b2356ecb1 h1:A/5uWzF44DlIgdm/PQFwfMkW0JX+cIcQi/SwLAmZP5M= +go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= +go.opentelemetry.io/contrib v0.20.0 h1:ubFQUn0VCZ0gPwIoJfBJVpeBlyRMxu8Mm/huKWYd9p0= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.20.0 h1:Q3C9yzW6I9jqEc8sawxzxZmY48fs9u220KXq6d5s3XU= +go.opentelemetry.io/otel/exporters/otlp v0.20.0 h1:PTNgq9MRmQqqJY0REVbZFvwkYOA85vbdQU/nVfxDyqg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.3.0 h1:Ydage/P0fRrSPpZeCVxzjqGcI6iVmG2xb43+IR8cjqM= +go.opentelemetry.io/otel/oteltest v0.20.0 h1:HiITxCawalo5vQzdHfKeZurV8x7ljcqAgiWzF6Vaeaw= +go.opentelemetry.io/otel/sdk/export/metric v0.20.0 h1:c5VRjxCXdQlx1HjzwGdQHzZaVI82b5EbBgOu2ljD92g= +go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee h1:0mgffUl7nfd+FpvXMVz4IDEaUSmT1ysygQC7qYo7sG4= +golang.org/x/image v0.0.0-20210216034530-4410531fe030 h1:lP9pYkih3DUSC641giIXa2XqfTIbbbRr0w2EOTA7wHA= +golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 h1:VLliZ0d+/avPrXXH+OakdXhpJuEoBZuwh1m2j7U6Iug= +golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028 h1:4+4C/Iv2U4fMZBiMCc98MG1In4gJY5YRhtpDNeDeHWs= +golang.org/x/mod v0.7.0 h1:LapD9S96VoQRhi/GrNTqeBJFrUjs5UHCAtTlgwA5oZA= +golang.org/x/term v0.5.0 h1:n2a8QNdAb0sZNpU9R1ALUXBbY+w51fCQDN+7EdxNBsY= +golang.org/x/tools v0.4.0 h1:7mTAgkunk3fr4GAloyyCasadO6h9zSsQZbwvcaIciV4= +golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= +gonum.org/v1/gonum v0.9.3 h1:DnoIG+QAMaF5NvxnGe/oKsgKcAc6PcUyl8q0VetfQ8s= +gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0 h1:OE9mWmgKkjJyEmDAAtGMPjXu+YNeGvK9VTSHY6+Qihc= +gonum.org/v1/plot v0.9.0 h1:3sEo36Uopv1/SA/dMFFaxXoL5XyikJ9Sf2Vll/k6+2E= +google.golang.org/api v0.107.0 h1:I2SlFjD8ZWabaIFOfeEDg3pf0BHJDh6iYQ1ic3Yu/UU= +google.golang.org/cloud v0.0.0-20151119220103-975617b05ea8 h1:Cpp2P6TPjujNoC5M2KHY6g7wfyLYfIWRZaSdIKfDasA= +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0 h1:M1YKkFIboKNieVO5DLUEVzQfGwJD30Nv2jfUgzb5UcE= +gopkg.in/airbrake/gobrake.v2 v2.0.9 h1:7z2uVWwn7oVeeugY1DtlPAy5H+KYgB1KeKTnqjNatLo= +gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc= +gopkg.in/cheggaaa/pb.v1 v1.0.25 h1:Ev7yu1/f6+d+b3pi5vPdRPc6nNtP1umSfcWiEfRqv6I= +gopkg.in/errgo.v2 v2.1.0 h1:0vLT13EuvQ0hNvakwLuFZ/jYrLp5F3kcWHXdRggjCE8= +gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= +gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2 h1:OAj3g0cR6Dx/R07QgQe8wkA9RNjB2u4i700xBkIT4e0= +gopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec h1:RlWgLqCMMIYYEVcAR5MDsuHlVkaIPDAF+5Dehzg8L5A= +gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= +gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8= +gopkg.in/resty.v1 v1.12.0 h1:CuXP0Pjfw9rOuY6EP+UvtNvt5DSqHpIxILZKT/quCZI= +gorm.io/driver/postgres v1.0.8 h1:PAgM+PaHOSAeroTjHkCHCBIHHoBIf9RgPWGo8dF2DA8= +gorm.io/gorm v1.21.4 h1:J0xfPJMRfHgpVcYLrEAIqY/apdvTIkrltPQNHQLq9Qc= +gotest.tools/gotestsum v1.9.0 h1:Jbo/0k/sIOXIJu51IZxEAt27n77xspFEfL6SqKUR72A= +honnef.co/go/tools v0.0.1-2020.1.4 h1:UoveltGrhghAA7ePc+e+QYDHXrBps2PqFZiHkGR/xK8= +k8s.io/api v0.22.5 h1:xk7C+rMjF/EGELiD560jdmwzrB788mfcHiNbMQLIVI8= +k8s.io/apimachinery v0.22.5 h1:cIPwldOYm1Slq9VLBRPtEYpyhjIm1C6aAMAoENuvN9s= +k8s.io/apiserver v0.22.5 h1:71krQxCUz218ecb+nPhfDsNB6QgP1/4EMvi1a2uYBlg= +k8s.io/client-go v0.22.5 h1:I8Zn/UqIdi2r02aZmhaJ1hqMxcpfJ3t5VqvHtctHYFo= +k8s.io/code-generator v0.19.7 h1:kM/68Y26Z/u//TFc1ggVVcg62te8A2yQh57jBfD0FWQ= +k8s.io/component-base v0.22.5 h1:U0eHqZm7mAFE42hFwYhY6ze/MmVaW00JpMrzVsQmzYE= +k8s.io/cri-api v0.25.0 h1:INwdXsCDSA/0hGNdPxdE2dQD6ft/5K1EaKXZixvSQxg= +k8s.io/gengo v0.0.0-20201113003025-83324d819ded h1:JApXBKYyB7l9xx+DK7/+mFjC7A9Bt5A93FPvFD0HIFE= +k8s.io/klog/v2 v2.30.0 h1:bUO6drIvCIsvZ/XFgfxoGFQU/a4Qkh0iAlvUR7vlHJw= +k8s.io/kube-openapi v0.0.0-20211109043538-20434351676c h1:jvamsI1tn9V0S8jicyX82qaFC0H/NKxv2e5mbqsgR80= +k8s.io/kubernetes v1.13.0 h1:qTfB+u5M92k2fCCCVP2iuhgwwSOv1EkAkvQY1tQODD8= +k8s.io/utils v0.0.0-20210930125809-cb0fa318a74b h1:wxEMGetGMur3J1xuGLQY7GEQYg9bZxKn3tKo5k/eYcs= +modernc.org/b v1.0.0 h1:vpvqeyp17ddcQWF29Czawql4lDdABCDRbXRAS4+aF2o= +modernc.org/cc/v3 v3.32.4 h1:1ScT6MCQRWwvwVdERhGPsPq0f55J1/pFEOCiqM7zc78= +modernc.org/ccgo/v3 v3.9.2 h1:mOLFgduk60HFuPmxSix3AluTEh7zhozkby+e1VDo/ro= +modernc.org/db v1.0.0 h1:2c6NdCfaLnshSvY7OU09cyAY0gYXUZj4lmg5ItHyucg= +modernc.org/file v1.0.0 h1:9/PdvjVxd5+LcWUQIfapAWRGOkDLK90rloa8s/au06A= +modernc.org/fileutil v1.0.0 h1:Z1AFLZwl6BO8A5NldQg/xTSjGLetp+1Ubvl4alfGx8w= +modernc.org/golex v1.0.0 h1:wWpDlbK8ejRfSyi0frMyhilD3JBvtcx2AdGDnU+JtsE= +modernc.org/httpfs v1.0.6 h1:AAgIpFZRXuYnkjftxTAZwMIiwEqAfk8aVB2/oA6nAeM= +modernc.org/internal v1.0.0 h1:XMDsFDcBDsibbBnHB2xzljZ+B1yrOVLEFkKL2u15Glw= +modernc.org/libc v1.9.5 h1:zv111ldxmP7DJ5mOIqzRbza7ZDl3kh4ncKfASB2jIYY= +modernc.org/lldb v1.0.0 h1:6vjDJxQEfhlOLwl4bhpwIz00uyFK4EmSYcbwqwbynsc= +modernc.org/mathutil v1.2.2 h1:+yFk8hBprV+4c0U9GjFtL+dV3N8hOJ8JCituQcMShFY= +modernc.org/memory v1.0.4 h1:utMBrFcpnQDdNsmM6asmyH/FM9TqLPS7XF7otpJmrwM= +modernc.org/opt v0.1.1 h1:/0RX92k9vwVeDXj+Xn23DKp2VJubL7k8qNffND6qn3A= +modernc.org/ql v1.0.0 h1:bIQ/trWNVjQPlinI6jdOQsi195SIturGo3mp5hsDqVU= +modernc.org/sortutil v1.1.0 h1:oP3U4uM+NT/qBQcbg/K2iqAX0Nx7B1b6YZtq3Gk/PjM= +modernc.org/sqlite v1.10.6 h1:iNDTQbULcm0IJAqrzCm2JcCqxaKRS94rJ5/clBMRmc8= +modernc.org/strutil v1.1.0 h1:+1/yCzZxY2pZwwrsbH+4T7BQMoLQ9QiBshRC9eicYsc= +modernc.org/tcl v1.5.2 h1:sYNjGr4zK6cDH74USl8wVJRrvDX6UOLpG0j4lFvR0W0= +modernc.org/token v1.0.0 h1:a0jaWiNMDhDUtqOj09wvjWWAqd3q7WpBulmL9H2egsk= +modernc.org/z v1.0.1 h1:WyIDpEpAIx4Hel6q/Pcgj/VhaQV5XPJ2I6ryIYbjnpc= +modernc.org/zappy v1.0.0 h1:dPVaP+3ueIUv4guk8PuZ2wiUGcJ1WUVvIheeSSTD0yk= +rsc.io/binaryregexp v0.2.0 h1:HfqmD5MEmC0zvwBuF187nq9mdnXjXsSivRiXN7SmRkE= +rsc.io/pdf v0.1.1 h1:k1MczvYDUvJBe93bYd7wrZLLUEcLZAuF824/I4e5Xr4= +rsc.io/quote/v3 v3.1.0 h1:9JKUTTIUgS6kzR9mK1YuGKv6Nl+DijDNIc0ghT58FaY= +rsc.io/sampler v1.3.0 h1:7uVkIFmeBqHfdjD+gZwtXXI+RODJ2Wc4O7MPEh/QiW4= +sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.22 h1:fmRfl9WJ4ApJn7LxNuED4m0t18qivVQOxP6aAYG9J6c= +sigs.k8s.io/structured-merge-diff/v4 v4.1.2 h1:Hr/htKFmJEbtMgS/UD0N+gtgctAqz81t3nu+sPzynno= +sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= diff --git a/rpc/flipt/go.mod b/rpc/flipt/go.mod new file mode 100644 index 0000000000..eaa65166c1 --- /dev/null +++ b/rpc/flipt/go.mod @@ -0,0 +1,28 @@ +module go.flipt.io/flipt/rpc/flipt + +go 1.18 + +require ( + github.com/grpc-ecosystem/grpc-gateway v1.16.0 + github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.2 + github.com/stretchr/testify v1.8.2 + go.flipt.io/flipt/errors v0.0.0-00010101000000-000000000000 + google.golang.org/genproto v0.0.0-20230223222841-637eb2293923 + google.golang.org/grpc v1.53.0 + google.golang.org/protobuf v1.28.1 +) + +require ( + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/golang/protobuf v1.5.2 // indirect + github.com/kr/pretty v0.3.0 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/rogpeppe/go-internal v1.9.0 // indirect + golang.org/x/net v0.7.0 // indirect + golang.org/x/sys v0.5.0 // indirect + golang.org/x/text v0.7.0 // indirect + gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect +) + +replace go.flipt.io/flipt/errors => ../../errors/ diff --git a/rpc/flipt/go.sum b/rpc/flipt/go.sum new file mode 100644 index 0000000000..124872cca4 --- /dev/null +++ b/rpc/flipt/go.sum @@ -0,0 +1,121 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/glog v1.0.0 h1:nfP3RFugxnNRyKgeWd4oI1nYvXpxrx8ck8ZrcizshdQ= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= +github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.2 h1:gDLXvp5S9izjldquuoAhDzccbskOL6tDC5jMSyx3zxE= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.2/go.mod h1:7pdNwVWBBHGiCxa9lAszqCJMbfTISJ7oMftp8+UGV08= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= +github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= +github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= +github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= +golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20230223222841-637eb2293923 h1:znp6mq/drrY+6khTAlJUDNFFcDGV2ENLYKpMq8SyCds= +google.golang.org/genproto v0.0.0-20230223222841-637eb2293923/go.mod h1:3Dl5ZL0q0isWJt+FVcfpQyirqemEuLAK/iFvg1UP1Hw= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= +google.golang.org/grpc v1.53.0 h1:LAv2ds7cmFV/XTS3XG1NneeENYrXGmorPxsBbptIjNc= +google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= +google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= From d081aa3e0c0269e38a8ccc16ee31cae6e2cbdbc1 Mon Sep 17 00:00:00 2001 From: George MacRorie Date: Wed, 8 Mar 2023 11:01:46 +0000 Subject: [PATCH 09/36] fix(gitleaks): add go.work and go.work.sum to allowlist --- .gitleaks.toml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitleaks.toml b/.gitleaks.toml index 084500c5be..1143f1c446 100644 --- a/.gitleaks.toml +++ b/.gitleaks.toml @@ -16,6 +16,7 @@ paths = [ '''gitleaks.toml''', '''(.*?)(jpg|gif|doc|docx|zip|xls|pdf|bin|svg|socket)$''', '''(go.mod|go.sum)$''', + '''(go.work|go.work.sum)$''', '''node_modules''', '''vendor''', '''script/''', @@ -2623,4 +2624,4 @@ stopwords= [ "branch", "combination", "combo", -] \ No newline at end of file +] From 69c692a1d6e01cd468179ae41be719ee54a2f964 Mon Sep 17 00:00:00 2001 From: George MacRorie Date: Wed, 8 Mar 2023 15:42:47 +0000 Subject: [PATCH 10/36] refactor(rpc): remove trailing flipt from go pkg name --- rpc/flipt/flipt.pb.go | 58 +++++++++++++++++++++---------------------- rpc/flipt/flipt.proto | 2 +- rpc/flipt/go.mod | 2 +- rpc/flipt/go.sum | 3 +-- 4 files changed, 32 insertions(+), 33 deletions(-) diff --git a/rpc/flipt/flipt.pb.go b/rpc/flipt/flipt.pb.go index 6623574bcf..b19993a352 100644 --- a/rpc/flipt/flipt.pb.go +++ b/rpc/flipt/flipt.pb.go @@ -3520,36 +3520,36 @@ var file_flipt_proto_rawDesc = []byte{ 0x6d, 0x70, 0x74, 0x79, 0x22, 0x35, 0x92, 0x41, 0x32, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x1a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x2a, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x42, 0xc5, 0x03, 0x5a, 0x21, + 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x42, 0xbf, 0x03, 0x5a, 0x1b, 0x67, 0x6f, 0x2e, 0x66, 0x6c, 0x69, 0x70, 0x74, 0x2e, 0x69, 0x6f, 0x2f, 0x66, 0x6c, 0x69, 0x70, - 0x74, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x66, 0x6c, 0x69, 0x70, 0x74, 0x2f, 0x66, 0x6c, 0x69, 0x70, - 0x74, 0x92, 0x41, 0x9e, 0x03, 0x12, 0xa0, 0x01, 0x0a, 0x09, 0x46, 0x6c, 0x69, 0x70, 0x74, 0x20, - 0x41, 0x50, 0x49, 0x22, 0x3d, 0x0a, 0x0a, 0x46, 0x6c, 0x69, 0x70, 0x74, 0x20, 0x54, 0x65, 0x61, - 0x6d, 0x12, 0x21, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x66, 0x6c, 0x69, 0x70, 0x74, 0x2d, 0x69, 0x6f, 0x2f, 0x66, - 0x6c, 0x69, 0x70, 0x74, 0x1a, 0x0c, 0x64, 0x65, 0x76, 0x40, 0x66, 0x6c, 0x69, 0x70, 0x74, 0x2e, - 0x69, 0x6f, 0x2a, 0x4c, 0x0a, 0x0b, 0x4d, 0x49, 0x54, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, - 0x65, 0x12, 0x3d, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x66, 0x6c, 0x69, 0x70, 0x74, 0x2d, 0x69, 0x6f, 0x2f, 0x66, - 0x6c, 0x69, 0x70, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x72, - 0x70, 0x63, 0x2f, 0x66, 0x6c, 0x69, 0x70, 0x74, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, - 0x32, 0x06, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x2a, 0x02, 0x01, 0x02, 0x32, 0x10, 0x61, 0x70, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x10, - 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, - 0x52, 0x63, 0x0a, 0x03, 0x34, 0x30, 0x31, 0x12, 0x5c, 0x0a, 0x3d, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x20, 0x63, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65, 0x20, - 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x61, - 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, - 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x29, 0x2e, 0x12, 0x1b, 0x0a, 0x19, 0x1a, 0x17, 0x23, 0x2f, - 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x72, 0x70, 0x63, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x5a, 0x2a, 0x0a, 0x28, 0x0a, 0x11, 0x43, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x65, 0x61, 0x72, 0x65, 0x72, 0x12, 0x13, 0x08, 0x02, - 0x1a, 0x0d, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x02, 0x62, 0x17, 0x0a, 0x15, 0x0a, 0x11, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x42, 0x65, 0x61, 0x72, 0x65, 0x72, 0x12, 0x00, 0x72, 0x27, 0x0a, 0x0a, 0x46, 0x6c, - 0x69, 0x70, 0x74, 0x20, 0x44, 0x6f, 0x63, 0x73, 0x12, 0x19, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, - 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x66, 0x6c, 0x69, 0x70, 0x74, 0x2e, 0x69, 0x6f, 0x2f, 0x64, - 0x6f, 0x63, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x74, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x66, 0x6c, 0x69, 0x70, 0x74, 0x92, 0x41, 0x9e, 0x03, 0x12, + 0xa0, 0x01, 0x0a, 0x09, 0x46, 0x6c, 0x69, 0x70, 0x74, 0x20, 0x41, 0x50, 0x49, 0x22, 0x3d, 0x0a, + 0x0a, 0x46, 0x6c, 0x69, 0x70, 0x74, 0x20, 0x54, 0x65, 0x61, 0x6d, 0x12, 0x21, 0x68, 0x74, 0x74, + 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x66, 0x6c, 0x69, 0x70, 0x74, 0x2d, 0x69, 0x6f, 0x2f, 0x66, 0x6c, 0x69, 0x70, 0x74, 0x1a, 0x0c, + 0x64, 0x65, 0x76, 0x40, 0x66, 0x6c, 0x69, 0x70, 0x74, 0x2e, 0x69, 0x6f, 0x2a, 0x4c, 0x0a, 0x0b, + 0x4d, 0x49, 0x54, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x68, 0x74, 0x74, + 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x66, 0x6c, 0x69, 0x70, 0x74, 0x2d, 0x69, 0x6f, 0x2f, 0x66, 0x6c, 0x69, 0x70, 0x74, 0x2f, 0x62, + 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x66, 0x6c, 0x69, + 0x70, 0x74, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x32, 0x06, 0x6c, 0x61, 0x74, 0x65, + 0x73, 0x74, 0x2a, 0x02, 0x01, 0x02, 0x32, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x52, 0x63, 0x0a, 0x03, 0x34, 0x30, + 0x31, 0x12, 0x5c, 0x0a, 0x3d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x63, 0x6f, 0x75, + 0x6c, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65, 0x20, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, + 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, + 0x29, 0x2e, 0x12, 0x1b, 0x0a, 0x19, 0x1a, 0x17, 0x23, 0x2f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x72, 0x70, 0x63, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5a, + 0x2a, 0x0a, 0x28, 0x0a, 0x11, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x42, 0x65, 0x61, 0x72, 0x65, 0x72, 0x12, 0x13, 0x08, 0x02, 0x1a, 0x0d, 0x41, 0x75, 0x74, 0x68, + 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x02, 0x62, 0x17, 0x0a, 0x15, 0x0a, + 0x11, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x65, 0x61, 0x72, + 0x65, 0x72, 0x12, 0x00, 0x72, 0x27, 0x0a, 0x0a, 0x46, 0x6c, 0x69, 0x70, 0x74, 0x20, 0x44, 0x6f, + 0x63, 0x73, 0x12, 0x19, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, + 0x66, 0x6c, 0x69, 0x70, 0x74, 0x2e, 0x69, 0x6f, 0x2f, 0x64, 0x6f, 0x63, 0x73, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/rpc/flipt/flipt.proto b/rpc/flipt/flipt.proto index 4656632cb6..dd006df0c1 100644 --- a/rpc/flipt/flipt.proto +++ b/rpc/flipt/flipt.proto @@ -6,7 +6,7 @@ import "google/protobuf/empty.proto"; import "google/protobuf/timestamp.proto"; import "protoc-gen-openapiv2/options/annotations.proto"; -option go_package = "go.flipt.io/flipt/rpc/flipt/flipt"; +option go_package = "go.flipt.io/flipt/rpc/flipt"; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { info: { title: "Flipt API"; diff --git a/rpc/flipt/go.mod b/rpc/flipt/go.mod index eaa65166c1..259a0d4a92 100644 --- a/rpc/flipt/go.mod +++ b/rpc/flipt/go.mod @@ -7,7 +7,7 @@ require ( github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.2 github.com/stretchr/testify v1.8.2 go.flipt.io/flipt/errors v0.0.0-00010101000000-000000000000 - google.golang.org/genproto v0.0.0-20230223222841-637eb2293923 + google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 google.golang.org/grpc v1.53.0 google.golang.org/protobuf v1.28.1 ) diff --git a/rpc/flipt/go.sum b/rpc/flipt/go.sum index 124872cca4..c6b83078a7 100644 --- a/rpc/flipt/go.sum +++ b/rpc/flipt/go.sum @@ -95,8 +95,7 @@ google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7 google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20230223222841-637eb2293923 h1:znp6mq/drrY+6khTAlJUDNFFcDGV2ENLYKpMq8SyCds= -google.golang.org/genproto v0.0.0-20230223222841-637eb2293923/go.mod h1:3Dl5ZL0q0isWJt+FVcfpQyirqemEuLAK/iFvg1UP1Hw= +google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 h1:DdoeryqhaXp1LtT/emMP1BRJPHHKFi5akj/nbx/zNTA= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= From 77daa1d11c3497ed5245067bbf8bd501bca58d85 Mon Sep 17 00:00:00 2001 From: George MacRorie Date: Wed, 8 Mar 2023 15:43:44 +0000 Subject: [PATCH 11/36] feat(sdk/go): add initial SDK protoc generator --- buf.gen.yaml | 5 + go.mod | 2 +- go.sum | 4 +- go.work | 4 +- go.work.sum | 238 +++++++++++++++++++ internal/cmd/protoc-gen-go-flipt-sdk/go.mod | 7 + internal/cmd/protoc-gen-go-flipt-sdk/go.sum | 2 + internal/cmd/protoc-gen-go-flipt-sdk/main.go | 178 ++++++++++++++ sdk/go/auth.pb.sdk.go | 69 ++++++ sdk/go/flipt.pb.sdk.go | 158 ++++++++++++ sdk/go/go.mod | 25 ++ sdk/go/go.sum | 94 ++++++++ sdk/go/meta.pb.sdk.go | 26 ++ sdk/go/sdk.gen.go | 59 +++++ 14 files changed, 866 insertions(+), 5 deletions(-) create mode 100644 internal/cmd/protoc-gen-go-flipt-sdk/go.mod create mode 100644 internal/cmd/protoc-gen-go-flipt-sdk/go.sum create mode 100644 internal/cmd/protoc-gen-go-flipt-sdk/main.go create mode 100644 sdk/go/auth.pb.sdk.go create mode 100644 sdk/go/flipt.pb.sdk.go create mode 100644 sdk/go/go.mod create mode 100644 sdk/go/go.sum create mode 100644 sdk/go/meta.pb.sdk.go create mode 100644 sdk/go/sdk.gen.go diff --git a/buf.gen.yaml b/buf.gen.yaml index e59921f62f..dbf5bde114 100644 --- a/buf.gen.yaml +++ b/buf.gen.yaml @@ -17,3 +17,8 @@ plugins: - paths=source_relative - grpc_api_configuration=rpc/flipt/flipt.yaml strategy: all + - name: go-flipt-sdk + out: sdk/go + opt: + - paths=source_relative + strategy: all diff --git a/go.mod b/go.mod index 5c5da29390..55f3d12bb3 100644 --- a/go.mod +++ b/go.mod @@ -53,7 +53,7 @@ require ( golang.org/x/exp v0.0.0-20221012211006-4de253d81b95 golang.org/x/net v0.7.0 golang.org/x/sync v0.1.0 - google.golang.org/genproto v0.0.0-20230223222841-637eb2293923 + google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 google.golang.org/grpc v1.53.0 google.golang.org/protobuf v1.28.1 gopkg.in/segmentio/analytics-go.v3 v3.1.0 diff --git a/go.sum b/go.sum index c2f6fb2570..d2e5137129 100644 --- a/go.sum +++ b/go.sum @@ -31,7 +31,6 @@ cloud.google.com/go v0.94.1/go.mod h1:qAlAugsXlC+JWO+Bke5vCtc9ONxjQT3drlTTnAplMW cloud.google.com/go v0.97.0/go.mod h1:GF7l59pYBVlXQIBLx3a761cZ41F9bBH3JUlihCt2Udc= cloud.google.com/go v0.98.0/go.mod h1:ua6Ush4NALrHk5QXDWnjvZHN93OuF0HfuEPq9I1X0cM= cloud.google.com/go v0.99.0/go.mod h1:w0Xx2nLzqWJPuozYQX+hFfCSI8WioryfRDzkoI/Y2ZA= -cloud.google.com/go v0.107.0 h1:qkj22L7bgkl6vIeZDlOY2po43Mx/TIa2Wsa7VR+PEww= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= @@ -1944,8 +1943,7 @@ google.golang.org/genproto v0.0.0-20211206160659-862468c7d6e0/go.mod h1:5CzLGKJ6 google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20220111164026-67b88f271998/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20220314164441-57ef72a4c106/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= -google.golang.org/genproto v0.0.0-20230223222841-637eb2293923 h1:znp6mq/drrY+6khTAlJUDNFFcDGV2ENLYKpMq8SyCds= -google.golang.org/genproto v0.0.0-20230223222841-637eb2293923/go.mod h1:3Dl5ZL0q0isWJt+FVcfpQyirqemEuLAK/iFvg1UP1Hw= +google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 h1:DdoeryqhaXp1LtT/emMP1BRJPHHKFi5akj/nbx/zNTA= google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= diff --git a/go.work b/go.work index 32a722dc3d..586299b561 100644 --- a/go.work +++ b/go.work @@ -3,5 +3,7 @@ go 1.18 use ( . ./errors - ./rpc/flipt/ + ./internal/cmd/protoc-gen-go-flipt-sdk + ./rpc/flipt + ./sdk/go ) diff --git a/go.work.sum b/go.work.sum index bfbfe0ec02..df48da6651 100644 --- a/go.work.sum +++ b/go.work.sum @@ -1,124 +1,362 @@ bazil.org/fuse v0.0.0-20200407214033-5883e5a4b512 h1:SRsZGA7aFnCZETmov57jwPrWuTmaZK6+4R4v5FUe1/c= +cloud.google.com/go v0.110.0 h1:Zc8gqp3+a9/Eyph2KDmcGaPtbKRIoqq4YTlL4NMD0Ys= +cloud.google.com/go v0.110.0/go.mod h1:SJnCLqQ0FCFGSZMUNUf84MV3Aia54kn7pi8st7tMzaY= cloud.google.com/go/accessapproval v1.5.0 h1:/nTivgnV/n1CaAeo+ekGexTYUsKEU9jUVkoY5359+3Q= +cloud.google.com/go/accessapproval v1.6.0 h1:x0cEHro/JFPd7eS4BlEWNTMecIj2HdXjOVB5BtvwER0= +cloud.google.com/go/accessapproval v1.6.0/go.mod h1:R0EiYnwV5fsRFiKZkPHr6mwyk2wxUJ30nL4j2pcFY2E= cloud.google.com/go/accesscontextmanager v1.4.0 h1:CFhNhU7pcD11cuDkQdrE6PQJgv0EXNKNv06jIzbLlCU= +cloud.google.com/go/accesscontextmanager v1.6.0 h1:r7DpDlWkCMtH/w+gu6Yq//EeYgNWSUbR1+n8ZYr4YWk= +cloud.google.com/go/accesscontextmanager v1.6.0/go.mod h1:8XCvZWfYw3K/ji0iVnp+6pu7huxoQTLmxAbVjbloTtM= cloud.google.com/go/aiplatform v1.27.0 h1:DBi3Jk9XjCJ4pkkLM4NqKgj3ozUL1wq4l+d3/jTGXAI= +cloud.google.com/go/aiplatform v1.35.0 h1:8frB0cIswlhVnYnGrMr+JjZaNC7DHZahvoGHpU9n+RY= +cloud.google.com/go/aiplatform v1.35.0/go.mod h1:7MFT/vCaOyZT/4IIFfxH4ErVg/4ku6lKv3w0+tFTgXQ= cloud.google.com/go/analytics v0.12.0 h1:NKw6PpQi6V1O+KsjuTd+bhip9d0REYu4NevC45vtGp8= +cloud.google.com/go/analytics v0.18.0 h1:uN80RHQeT2jGA3uAFDZSBnKdful4bFw0IHJV6t3EkqU= +cloud.google.com/go/analytics v0.18.0/go.mod h1:ZkeHGQlcIPkw0R/GW+boWHhCOR43xz9RN/jn7WcqfIE= cloud.google.com/go/apigateway v1.4.0 h1:IIoXKR7FKrEAQhMTz5hK2wiDz2WNFHS7eVr/L1lE/rM= +cloud.google.com/go/apigateway v1.5.0 h1:ZI9mVO7x3E9RK/BURm2p1aw9YTBSCQe3klmyP1WxWEg= +cloud.google.com/go/apigateway v1.5.0/go.mod h1:GpnZR3Q4rR7LVu5951qfXPJCHquZt02jf7xQx7kpqN8= cloud.google.com/go/apigeeconnect v1.4.0 h1:AONoTYJviyv1vS4IkvWzq69gEVdvHx35wKXc+e6wjZQ= +cloud.google.com/go/apigeeconnect v1.5.0 h1:sWOmgDyAsi1AZ48XRHcATC0tsi9SkPT7DA/+VCfkaeA= +cloud.google.com/go/apigeeconnect v1.5.0/go.mod h1:KFaCqvBRU6idyhSNyn3vlHXc8VMDJdRmwDF6JyFRqZ8= cloud.google.com/go/apigeeregistry v0.4.0 h1:Av+wedLP6pM8NsLruknv/RFCE/5VVavOhZ8j722vBxg= +cloud.google.com/go/apigeeregistry v0.5.0 h1:BwTPDPTBlYIoQGiwtRUsNFRDZ24cT/02Xb3yFH614YQ= +cloud.google.com/go/apigeeregistry v0.5.0/go.mod h1:YR5+s0BVNZfVOUkMa5pAR2xGd0A473vA5M7j247o1wM= cloud.google.com/go/apikeys v0.4.0 h1:d+t1B9U1Ze3LmiRYdSVhNrcRlU6coLvPzNDkqYVuHoc= +cloud.google.com/go/apikeys v0.5.0 h1:+77+/BhFuU476/s78kYiWHObxaYBHsC6Us+Gd7W9pJ4= +cloud.google.com/go/apikeys v0.5.0/go.mod h1:5aQfwY4D+ewMMWScd3hm2en3hCj+BROlyrt3ytS7KLI= cloud.google.com/go/appengine v1.5.0 h1:lmG+O5oaR9xNwaRBwE2XoMhwQHsHql5IoiGr1ptdDwU= +cloud.google.com/go/appengine v1.6.0 h1:uTDtjzuHpig1lrf8lycxNSKrthiTDgXnadu+WxYEKxQ= +cloud.google.com/go/appengine v1.6.0/go.mod h1:hg6i0J/BD2cKmDJbaFSYHFyZkgBEfQrDg/X0V5fJn84= cloud.google.com/go/area120 v0.6.0 h1:TCMhwWEWhCn8d44/Zs7UCICTWje9j3HuV6nVGMjdpYw= +cloud.google.com/go/area120 v0.7.1 h1:ugckkFh4XkHJMPhTIx0CyvdoBxmOpMe8rNs4Ok8GAag= +cloud.google.com/go/area120 v0.7.1/go.mod h1:j84i4E1RboTWjKtZVWXPqvK5VHQFJRF2c1Nm69pWm9k= cloud.google.com/go/artifactregistry v1.9.0 h1:3d0LRAU1K6vfqCahhl9fx2oGHcq+s5gftdix4v8Ibrc= +cloud.google.com/go/artifactregistry v1.11.2 h1:G9kjfHsDto5AdKK93hkHWHsY9Oe+6Nv66i7o/KgUO8E= +cloud.google.com/go/artifactregistry v1.11.2/go.mod h1:nLZns771ZGAwVLzTX/7Al6R9ehma4WUEhZGWV6CeQNQ= cloud.google.com/go/asset v1.10.0 h1:aCrlaLGJWTODJX4G56ZYzJefITKEWNfbjjtHSzWpxW0= +cloud.google.com/go/asset v1.11.1 h1:yObuRcVfexhYQuIWbjNt+9PVPikXIRhERXZxga7qAAY= +cloud.google.com/go/asset v1.11.1/go.mod h1:fSwLhbRvC9p9CXQHJ3BgFeQNM4c9x10lqlrdEUYXlJo= cloud.google.com/go/assuredworkloads v1.9.0 h1:hhIdCOowsT1GG5eMCIA0OwK6USRuYTou/1ZeNxCSRtA= +cloud.google.com/go/assuredworkloads v1.10.0 h1:VLGnVFta+N4WM+ASHbhc14ZOItOabDLH1MSoDv+Xuag= +cloud.google.com/go/assuredworkloads v1.10.0/go.mod h1:kwdUQuXcedVdsIaKgKTp9t0UJkE5+PAVNhdQm4ZVq2E= cloud.google.com/go/automl v1.8.0 h1:BMioyXSbg7d7xLibn47cs0elW6RT780IUWr42W8rp2Q= +cloud.google.com/go/automl v1.12.0 h1:50VugllC+U4IGl3tDNcZaWvApHBTrn/TvyHDJ0wM+Uw= +cloud.google.com/go/automl v1.12.0/go.mod h1:tWDcHDp86aMIuHmyvjuKeeHEGq76lD7ZqfGLN6B0NuU= cloud.google.com/go/baremetalsolution v0.4.0 h1:g9KO6SkakcYPcc/XjAzeuUrEOXlYPnMpuiaywYaGrmQ= +cloud.google.com/go/baremetalsolution v0.5.0 h1:2AipdYXL0VxMboelTTw8c1UJ7gYu35LZYUbuRv9Q28s= +cloud.google.com/go/baremetalsolution v0.5.0/go.mod h1:dXGxEkmR9BMwxhzBhV0AioD0ULBmuLZI8CdwalUxuss= cloud.google.com/go/batch v0.4.0 h1:1jvEBY55OH4Sd2FxEXQfxGExFWov1A/IaRe+Z5Z71Fw= +cloud.google.com/go/batch v0.7.0 h1:YbMt0E6BtqeD5FvSv1d56jbVsWEzlGm55lYte+M6Mzs= +cloud.google.com/go/batch v0.7.0/go.mod h1:vLZN95s6teRUqRQ4s3RLDsH8PvboqBK+rn1oevL159g= cloud.google.com/go/beyondcorp v0.3.0 h1:w+4kThysgl0JiKshi2MKDCg2NZgOyqOI0wq2eBZyrzA= +cloud.google.com/go/beyondcorp v0.4.0 h1:qwXDVYf4fQ9DrKci8/40X1zaKYxzYK07vSdPeI9mEQw= +cloud.google.com/go/beyondcorp v0.4.0/go.mod h1:3ApA0mbhHx6YImmuubf5pyW8srKnCEPON32/5hj+RmM= cloud.google.com/go/bigquery v1.44.0 h1:Wi4dITi+cf9VYp4VH2T9O41w0kCW0uQTELq2Z6tukN0= +cloud.google.com/go/bigquery v1.48.0 h1:u+fhS1jJOkPO9vdM84M8HO5VznTfVUicBeoXNKD26ho= +cloud.google.com/go/bigquery v1.48.0/go.mod h1:QAwSz+ipNgfL5jxiaK7weyOhzdoAy1zFm0Nf1fysJac= cloud.google.com/go/billing v1.7.0 h1:Xkii76HWELHwBtkQVZvqmSo9GTr0O+tIbRNnMcGdlg4= +cloud.google.com/go/billing v1.12.0 h1:k8pngyiI8uAFhVAhH5+iXSa3Me406XW17LYWZ/3Fr84= +cloud.google.com/go/billing v1.12.0/go.mod h1:yKrZio/eu+okO/2McZEbch17O5CB5NpZhhXG6Z766ss= cloud.google.com/go/binaryauthorization v1.4.0 h1:pL70vXWn9TitQYXBWTK2abHl2JHLwkFRjYw6VflRqEA= +cloud.google.com/go/binaryauthorization v1.5.0 h1:d3pMDBCCNivxt5a4eaV7FwL7cSH0H7RrEnFrTb1QKWs= +cloud.google.com/go/binaryauthorization v1.5.0/go.mod h1:OSe4OU1nN/VswXKRBmciKpo9LulY41gch5c68htf3/Q= cloud.google.com/go/certificatemanager v1.4.0 h1:tzbR4UHBbgsewMWUD93JHi8EBi/gHBoSAcY1/sThFGk= +cloud.google.com/go/certificatemanager v1.6.0 h1:5C5UWeSt8Jkgp7OWn2rCkLmYurar/vIWIoSQ2+LaTOc= +cloud.google.com/go/certificatemanager v1.6.0/go.mod h1:3Hh64rCKjRAX8dXgRAyOcY5vQ/fE1sh8o+Mdd6KPgY8= cloud.google.com/go/channel v1.9.0 h1:pNuUlZx0Jb0Ts9P312bmNMuH5IiFWIR4RUtLb70Ke5s= +cloud.google.com/go/channel v1.11.0 h1:/ToBJYu+7wATtd3h8T7hpc4+5NfzlJMDRZjPLIm4EZk= +cloud.google.com/go/channel v1.11.0/go.mod h1:IdtI0uWGqhEeatSB62VOoJ8FSUhJ9/+iGkJVqp74CGE= cloud.google.com/go/cloudbuild v1.4.0 h1:TAAmCmAlOJ4uNBu6zwAjwhyl/7fLHHxIEazVhr3QBbQ= +cloud.google.com/go/cloudbuild v1.7.0 h1:osBOHQJqLPqNfHfkRQXz6sCKAIEKRrupA9NaAGiLN4s= +cloud.google.com/go/cloudbuild v1.7.0/go.mod h1:zb5tWh2XI6lR9zQmsm1VRA+7OCuve5d8S+zJUul8KTg= cloud.google.com/go/clouddms v1.4.0 h1:UhzHIlgFfMr6luVYVNydw/pl9/U5kgtjCMJHnSvoVws= +cloud.google.com/go/clouddms v1.5.0 h1:E7v4TpDGUyEm1C/4KIrpVSOCTm0P6vWdHT0I4mostRA= +cloud.google.com/go/clouddms v1.5.0/go.mod h1:QSxQnhikCLUw13iAbffF2CZxAER3xDGNHjsTAkQJcQA= cloud.google.com/go/cloudtasks v1.8.0 h1:faUiUgXjW8yVZ7XMnKHKm1WE4OldPBUWWfIRN/3z1dc= +cloud.google.com/go/cloudtasks v1.9.0 h1:Cc2/20hMhGLV2pBGk/i6zNY+eTT9IsV3mrK6TKBu3gs= +cloud.google.com/go/cloudtasks v1.9.0/go.mod h1:w+EyLsVkLWHcOaqNEyvcKAsWp9p29dL6uL9Nst1cI7Y= +cloud.google.com/go/compute v1.18.0/go.mod h1:1X7yHxec2Ga+Ss6jPyjxRxpu2uu7PLgsOVXvgU0yacs= cloud.google.com/go/contactcenterinsights v1.4.0 h1:tTQLI/ZvguUf9Hv+36BkG2+/PeC8Ol1q4pBW+tgCx0A= +cloud.google.com/go/contactcenterinsights v1.6.0 h1:jXIpfcH/VYSE1SYcPzO0n1VVb+sAamiLOgCw45JbOQk= +cloud.google.com/go/contactcenterinsights v1.6.0/go.mod h1:IIDlT6CLcDoyv79kDv8iWxMSTZhLxSCofVV5W6YFM/w= cloud.google.com/go/container v1.7.0 h1:nbEK/59GyDRKKlo1SqpohY1TK8LmJ2XNcvS9Gyom2A0= +cloud.google.com/go/container v1.13.1 h1:q8lTpyAsjcJZQCjGI8JJfcOG4ixl998vwe6TAgQROcM= +cloud.google.com/go/container v1.13.1/go.mod h1:6wgbMPeQRw9rSnKBCAJXnds3Pzj03C4JHamr8asWKy4= cloud.google.com/go/containeranalysis v0.6.0 h1:2824iym832ljKdVpCBnpqm5K94YT/uHTVhNF+dRTXPI= +cloud.google.com/go/containeranalysis v0.7.0 h1:kw0dDRJPIN8L50Nwm8qa5VuGKPrbVup5lM3ULrvuWrg= +cloud.google.com/go/containeranalysis v0.7.0/go.mod h1:9aUL+/vZ55P2CXfuZjS4UjQ9AgXoSw8Ts6lemfmxBxI= cloud.google.com/go/datacatalog v1.8.0 h1:6kZ4RIOW/uT7QWC5SfPfq/G8sYzr/v+UOmOAxy4Z1TE= +cloud.google.com/go/datacatalog v1.12.0 h1:3uaYULZRLByPdbuUvacGeqneudztEM4xqKQsBcxbDnY= +cloud.google.com/go/datacatalog v1.12.0/go.mod h1:CWae8rFkfp6LzLumKOnmVh4+Zle4A3NXLzVJ1d1mRm0= cloud.google.com/go/dataflow v0.7.0 h1:CW3541Fm7KPTyZjJdnX6NtaGXYFn5XbFC5UcjgALKvU= +cloud.google.com/go/dataflow v0.8.0 h1:eYyD9o/8Nm6EttsKZaEGD84xC17bNgSKCu0ZxwqUbpg= +cloud.google.com/go/dataflow v0.8.0/go.mod h1:Rcf5YgTKPtQyYz8bLYhFoIV/vP39eL7fWNcSOyFfLJE= cloud.google.com/go/dataform v0.5.0 h1:vLwowLF2ZB5J5gqiZCzv076lDI/Rd7zYQQFu5XO1PSg= +cloud.google.com/go/dataform v0.6.0 h1:HBegGOzStIXPWo49FaVTzJOD4EPo8BndPFBUfsuoYe0= +cloud.google.com/go/dataform v0.6.0/go.mod h1:QPflImQy33e29VuapFdf19oPbE4aYTJxr31OAPV+ulA= cloud.google.com/go/datafusion v1.5.0 h1:j5m2hjWovTZDTQak4MJeXAR9yN7O+zMfULnjGw/OOLg= +cloud.google.com/go/datafusion v1.6.0 h1:sZjRnS3TWkGsu1LjYPFD/fHeMLZNXDK6PDHi2s2s/bk= +cloud.google.com/go/datafusion v1.6.0/go.mod h1:WBsMF8F1RhSXvVM8rCV3AeyWVxcC2xY6vith3iw3S+8= cloud.google.com/go/datalabeling v0.6.0 h1:dp8jOF21n/7jwgo/uuA0RN8hvLcKO4q6s/yvwevs2ZM= +cloud.google.com/go/datalabeling v0.7.0 h1:ch4qA2yvddGRUrlfwrNJCr79qLqhS9QBwofPHfFlDIk= +cloud.google.com/go/datalabeling v0.7.0/go.mod h1:WPQb1y08RJbmpM3ww0CSUAGweL0SxByuW2E+FU+wXcM= cloud.google.com/go/dataplex v1.4.0 h1:cNxeA2DiWliQGi21kPRqnVeQ5xFhNoEjPRt1400Pm8Y= +cloud.google.com/go/dataplex v1.5.2 h1:uSkmPwbgOWp3IFtCVEM0Xew80dczVyhNXkvAtTapRn8= +cloud.google.com/go/dataplex v1.5.2/go.mod h1:cVMgQHsmfRoI5KFYq4JtIBEUbYwc3c7tXmIDhRmNNVQ= cloud.google.com/go/dataproc v1.8.0 h1:gVOqNmElfa6n/ccG/QDlfurMWwrK3ezvy2b2eDoCmS0= +cloud.google.com/go/dataproc v1.12.0 h1:W47qHL3W4BPkAIbk4SWmIERwsWBaNnWm0P2sdx3YgGU= +cloud.google.com/go/dataproc v1.12.0/go.mod h1:zrF3aX0uV3ikkMz6z4uBbIKyhRITnxvr4i3IjKsKrw4= cloud.google.com/go/dataqna v0.6.0 h1:gx9jr41ytcA3dXkbbd409euEaWtofCVXYBvJz3iYm18= +cloud.google.com/go/dataqna v0.7.0 h1:yFzi/YU4YAdjyo7pXkBE2FeHbgz5OQQBVDdbErEHmVQ= +cloud.google.com/go/dataqna v0.7.0/go.mod h1:Lx9OcIIeqCrw1a6KdO3/5KMP1wAmTc0slZWwP12Qq3c= cloud.google.com/go/datastore v1.10.0 h1:4siQRf4zTiAVt/oeH4GureGkApgb2vtPQAtOmhpqQwE= +cloud.google.com/go/datastore v1.10.0/go.mod h1:PC5UzAmDEkAmkfaknstTYbNpgE49HAgW2J1gcgUfmdM= cloud.google.com/go/datastream v1.5.0 h1:PgIgbhedBtYBU6POGXFMn2uSl9vpqubc3ewTNdcU8Mk= +cloud.google.com/go/datastream v1.6.0 h1:v6j8C4p0TfXA9Wcea3iH7ZUm05Cx4BiPsH4vEkH7A9g= +cloud.google.com/go/datastream v1.6.0/go.mod h1:6LQSuswqLa7S4rPAOZFVjHIG3wJIjZcZrw8JDEDJuIs= cloud.google.com/go/deploy v1.5.0 h1:kI6dxt8Ml0is/x7YZjLveTvR7YPzXAUD/8wQZ2nH5zA= +cloud.google.com/go/deploy v1.6.0 h1:hdXxUdVw+NOrCQeqg9eQPB3hF1mFEchoS3h+K4IAU9s= +cloud.google.com/go/deploy v1.6.0/go.mod h1:f9PTHehG/DjCom3QH0cntOVRm93uGBDt2vKzAPwpXQI= cloud.google.com/go/dialogflow v1.29.0 h1:Opy6fM2IV9ecQOXkce0JByjBVg8+4X+1AbTAQLbgrCg= +cloud.google.com/go/dialogflow v1.31.0 h1:TwmxDsdFcQdExfShoLRlTtdPTor8qSxNu9KZ13o+TUQ= +cloud.google.com/go/dialogflow v1.31.0/go.mod h1:cuoUccuL1Z+HADhyIA7dci3N5zUssgpBJmCzI6fNRB4= cloud.google.com/go/dlp v1.7.0 h1:9I4BYeJSVKoSKgjr70fLdRDumqcUeVmHV4fd5f9LR6Y= +cloud.google.com/go/dlp v1.9.0 h1:1JoJqezlgu6NWCroBxr4rOZnwNFILXr4cB9dMaSKO4A= +cloud.google.com/go/dlp v1.9.0/go.mod h1:qdgmqgTyReTz5/YNSSuueR8pl7hO0o9bQ39ZhtgkWp4= cloud.google.com/go/documentai v1.10.0 h1:jfq09Fdjtnpnmt/MLyf6A3DM3ynb8B2na0K+vSXvpFM= +cloud.google.com/go/documentai v1.16.0 h1:tHZA9dB2xo3VaCP4JPxs5jHRntJnmg38kZ0UxlT/u90= +cloud.google.com/go/documentai v1.16.0/go.mod h1:o0o0DLTEZ+YnJZ+J4wNfTxmDVyrkzFvttBXXtYRMHkM= cloud.google.com/go/domains v0.7.0 h1:pu3JIgC1rswIqi5romW0JgNO6CTUydLYX8zyjiAvO1c= +cloud.google.com/go/domains v0.8.0 h1:2ti/o9tlWL4N+wIuWUNH+LbfgpwxPr8J1sv9RHA4bYQ= +cloud.google.com/go/domains v0.8.0/go.mod h1:M9i3MMDzGFXsydri9/vW+EWz9sWb4I6WyHqdlAk0idE= cloud.google.com/go/edgecontainer v0.2.0 h1:hd6J2n5dBBRuAqnNUEsKWrp6XNPKsaxwwIyzOPZTokk= +cloud.google.com/go/edgecontainer v0.3.0 h1:i57Q4zg9j8h4UQoKTD7buXbLCvofmmV8+8owwSmM3ew= +cloud.google.com/go/edgecontainer v0.3.0/go.mod h1:FLDpP4nykgwwIfcLt6zInhprzw0lEi2P1fjO6Ie0qbc= cloud.google.com/go/errorreporting v0.3.0 h1:kj1XEWMu8P0qlLhm3FwcaFsUvXChV/OraZwA70trRR0= +cloud.google.com/go/errorreporting v0.3.0/go.mod h1:xsP2yaAp+OAW4OIm60An2bbLpqIhKXdWR/tawvl7QzU= cloud.google.com/go/essentialcontacts v1.4.0 h1:b6csrQXCHKQmfo9h3dG/pHyoEh+fQG1Yg78a53LAviY= +cloud.google.com/go/essentialcontacts v1.5.0 h1:gIzEhCoOT7bi+6QZqZIzX1Erj4SswMPIteNvYVlu+pM= +cloud.google.com/go/essentialcontacts v1.5.0/go.mod h1:ay29Z4zODTuwliK7SnX8E86aUF2CTzdNtvv42niCX0M= cloud.google.com/go/eventarc v1.8.0 h1:AgCqrmMMIcel5WWKkzz5EkCUKC3Rl5LNMMYsS+LvsI0= +cloud.google.com/go/eventarc v1.10.0 h1:4cELkxrOYntz1VRNi2deLRkOr+R6u175kF4hUyd/4Ms= +cloud.google.com/go/eventarc v1.10.0/go.mod h1:u3R35tmZ9HvswGRBnF48IlYgYeBcPUCjkr4BTdem2Kw= cloud.google.com/go/filestore v1.4.0 h1:yjKOpzvqtDmL5AXbKttLc8j0hL20kuC1qPdy5HPcxp0= +cloud.google.com/go/filestore v1.5.0 h1:M/iQpbNJw+ELfEvFAW2mAhcHOn1HQQzIkzqmA4njTwg= +cloud.google.com/go/filestore v1.5.0/go.mod h1:FqBXDWBp4YLHqRnVGveOkHDf8svj9r5+mUDLupOWEDs= cloud.google.com/go/firestore v1.9.0 h1:IBlRyxgGySXu5VuW0RgGFlTtLukSnNkpDiEOMkQkmpA= +cloud.google.com/go/firestore v1.9.0/go.mod h1:HMkjKHNTtRyZNiMzu7YAsLr9K3X2udY2AMwDaMEQiiE= cloud.google.com/go/functions v1.9.0 h1:35tgv1fQOtvKqH/uxJMzX3w6usneJ0zXpsFr9KAVhNE= +cloud.google.com/go/functions v1.10.0 h1:WC0JiI5ZBTPSgjzFccqZ8TMkhoPRpDClN99KXhHJp6I= +cloud.google.com/go/functions v1.10.0/go.mod h1:0D3hEOe3DbEvCXtYOZHQZmD+SzYsi1YbI7dGvHfldXw= cloud.google.com/go/gaming v1.8.0 h1:97OAEQtDazAJD7yh/kvQdSCQuTKdR0O+qWAJBZJ4xiA= +cloud.google.com/go/gaming v1.9.0 h1:7vEhFnZmd931Mo7sZ6pJy7uQPDxF7m7v8xtBheG08tc= +cloud.google.com/go/gaming v1.9.0/go.mod h1:Fc7kEmCObylSWLO334NcO+O9QMDyz+TKC4v1D7X+Bc0= cloud.google.com/go/gkebackup v0.3.0 h1:4K+jiv4ocqt1niN8q5Imd8imRoXBHTrdnJVt/uFFxF4= +cloud.google.com/go/gkebackup v0.4.0 h1:za3QZvw6ujR0uyqkhomKKKNoXDyqYGPJies3voUK8DA= +cloud.google.com/go/gkebackup v0.4.0/go.mod h1:byAyBGUwYGEEww7xsbnUTBHIYcOPy/PgUWUtOeRm9Vg= cloud.google.com/go/gkeconnect v0.6.0 h1:zAcvDa04tTnGdu6TEZewaLN2tdMtUOJJ7fEceULjguA= +cloud.google.com/go/gkeconnect v0.7.0 h1:gXYKciHS/Lgq0GJ5Kc9SzPA35NGc3yqu6SkjonpEr2Q= +cloud.google.com/go/gkeconnect v0.7.0/go.mod h1:SNfmVqPkaEi3bF/B3CNZOAYPYdg7sU+obZ+QTky2Myw= cloud.google.com/go/gkehub v0.10.0 h1:JTcTaYQRGsVm+qkah7WzHb6e9sf1C0laYdRPn9aN+vg= +cloud.google.com/go/gkehub v0.11.0 h1:C4p1ZboBOexyCgZSCq+QdP+xfta9+puxgHFy8cjbgYI= +cloud.google.com/go/gkehub v0.11.0/go.mod h1:JOWHlmN+GHyIbuWQPl47/C2RFhnFKH38jH9Ascu3n0E= cloud.google.com/go/gkemulticloud v0.4.0 h1:8F1NhJj8ucNj7lK51UZMtAjSWTgP1zO18XF6vkfiPPU= +cloud.google.com/go/gkemulticloud v0.5.0 h1:8I84Q4vl02rJRsFiinBxl7WCozfdLlUVBQuSrqr9Wtk= +cloud.google.com/go/gkemulticloud v0.5.0/go.mod h1:W0JDkiyi3Tqh0TJr//y19wyb1yf8llHVto2Htf2Ja3Y= cloud.google.com/go/gsuiteaddons v1.4.0 h1:TGT2oGmO5q3VH6SjcrlgPUWI0njhYv4kywLm6jag0to= +cloud.google.com/go/gsuiteaddons v1.5.0 h1:1mvhXqJzV0Vg5Fa95QwckljODJJfDFXV4pn+iL50zzA= +cloud.google.com/go/gsuiteaddons v1.5.0/go.mod h1:TFCClYLd64Eaa12sFVmUyG62tk4mdIsI7pAnSXRkcFo= cloud.google.com/go/iam v0.11.0 h1:kwCWfKwB6ePZoZnGLwrd3B6Ru/agoHANTUBWpVNIdnM= +cloud.google.com/go/iam v0.12.0 h1:DRtTY29b75ciH6Ov1PHb4/iat2CLCvrOm40Q0a6DFpE= +cloud.google.com/go/iam v0.12.0/go.mod h1:knyHGviacl11zrtZUoDuYpDgLjvr28sLQaG0YB2GYAY= cloud.google.com/go/iap v1.5.0 h1:BGEXovwejOCt1zDk8hXq0bOhhRu9haXKWXXXp2B4wBM= +cloud.google.com/go/iap v1.6.0 h1:a6Heb3z12tUHJqXvmYqLhr7cWz3zzl566xtlbavD5Q0= +cloud.google.com/go/iap v1.6.0/go.mod h1:NSuvI9C/j7UdjGjIde7t7HBz+QTwBcapPE07+sSRcLk= cloud.google.com/go/ids v1.2.0 h1:LncHK4HHucb5Du310X8XH9/ICtMwZ2PCfK0ScjWiJoY= +cloud.google.com/go/ids v1.3.0 h1:fodnCDtOXuMmS8LTC2y3h8t24U8F3eKWfhi+3LY6Qf0= +cloud.google.com/go/ids v1.3.0/go.mod h1:JBdTYwANikFKaDP6LtW5JAi4gubs57SVNQjemdt6xV4= cloud.google.com/go/iot v1.4.0 h1:Y9+oZT9jD4GUZzORXTU45XsnQrhxmDT+TFbPil6pRVQ= +cloud.google.com/go/iot v1.5.0 h1:so1XASBu64OWGylrv5xjvsi6U+/CIR2KiRuZt+WLyKk= +cloud.google.com/go/iot v1.5.0/go.mod h1:mpz5259PDl3XJthEmh9+ap0affn/MqNSP4My77Qql9o= cloud.google.com/go/kms v1.6.0 h1:OWRZzrPmOZUzurjI2FBGtgY2mB1WaJkqhw6oIwSj0Yg= +cloud.google.com/go/kms v1.9.0 h1:b0votJQa/9DSsxgHwN33/tTLA7ZHVzfWhDCrfiXijSo= +cloud.google.com/go/kms v1.9.0/go.mod h1:qb1tPTgfF9RQP8e1wq4cLFErVuTJv7UsSC915J8dh3w= cloud.google.com/go/language v1.8.0 h1:3Wa+IUMamL4JH3Zd3cDZUHpwyqplTACt6UZKRD2eCL4= +cloud.google.com/go/language v1.9.0 h1:7Ulo2mDk9huBoBi8zCE3ONOoBrL6UXfAI71CLQ9GEIM= +cloud.google.com/go/language v1.9.0/go.mod h1:Ns15WooPM5Ad/5no/0n81yUetis74g3zrbeJBE+ptUY= cloud.google.com/go/lifesciences v0.6.0 h1:tIqhivE2LMVYkX0BLgG7xL64oNpDaFFI7teunglt1tI= +cloud.google.com/go/lifesciences v0.8.0 h1:uWrMjWTsGjLZpCTWEAzYvyXj+7fhiZST45u9AgasasI= +cloud.google.com/go/lifesciences v0.8.0/go.mod h1:lFxiEOMqII6XggGbOnKiyZ7IBwoIqA84ClvoezaA/bo= cloud.google.com/go/logging v1.6.1 h1:ZBsZK+JG+oCDT+vaxwqF2egKNRjz8soXiS6Xv79benI= +cloud.google.com/go/logging v1.7.0 h1:CJYxlNNNNAMkHp9em/YEXcfJg+rPDg7YfwoRpMU+t5I= +cloud.google.com/go/logging v1.7.0/go.mod h1:3xjP2CjkM3ZkO73aj4ASA5wRPGGCRrPIAeNqVNkzY8M= cloud.google.com/go/longrunning v0.3.0 h1:NjljC+FYPV3uh5/OwWT6pVU+doBqMg2x/rZlE+CamDs= +cloud.google.com/go/longrunning v0.4.1 h1:v+yFJOfKC3yZdY6ZUI933pIYdhyhV8S3NpWrXWmg7jM= +cloud.google.com/go/longrunning v0.4.1/go.mod h1:4iWDqhBZ70CvZ6BfETbvam3T8FMvLK+eFj0E6AaRQTo= cloud.google.com/go/managedidentities v1.4.0 h1:3Kdajn6X25yWQFhFCErmKSYTSvkEd3chJROny//F1A0= +cloud.google.com/go/managedidentities v1.5.0 h1:ZRQ4k21/jAhrHBVKl/AY7SjgzeJwG1iZa+mJ82P+VNg= +cloud.google.com/go/managedidentities v1.5.0/go.mod h1:+dWcZ0JlUmpuxpIDfyP5pP5y0bLdRwOS4Lp7gMni/LA= cloud.google.com/go/maps v0.1.0 h1:kLReRbclTgJefw2fcCbdLPLhPj0U6UUWN10ldG8sdOU= +cloud.google.com/go/maps v0.6.0 h1:soPzd0NABgCOGZavyZCAKrJ9L1JAwg3To6n5kuMCm98= +cloud.google.com/go/maps v0.6.0/go.mod h1:o6DAMMfb+aINHz/p/jbcY+mYeXBoZoxTfdSQ8VAJaCw= cloud.google.com/go/mediatranslation v0.6.0 h1:qAJzpxmEX+SeND10Y/4868L5wfZpo4Y3BIEnIieP4dk= +cloud.google.com/go/mediatranslation v0.7.0 h1:anPxH+/WWt8Yc3EdoEJhPMBRF7EhIdz426A+tuoA0OU= +cloud.google.com/go/mediatranslation v0.7.0/go.mod h1:LCnB/gZr90ONOIQLgSXagp8XUW1ODs2UmUMvcgMfI2I= cloud.google.com/go/memcache v1.7.0 h1:yLxUzJkZVSH2kPaHut7k+7sbIBFpvSh1LW9qjM2JDjA= +cloud.google.com/go/memcache v1.9.0 h1:8/VEmWCpnETCrBwS3z4MhT+tIdKgR1Z4Tr2tvYH32rg= +cloud.google.com/go/memcache v1.9.0/go.mod h1:8oEyzXCu+zo9RzlEaEjHl4KkgjlNDaXbCQeQWlzNFJM= cloud.google.com/go/metastore v1.8.0 h1:3KcShzqWdqxrDEXIBWpYJpOOrgpDj+HlBi07Grot49Y= +cloud.google.com/go/metastore v1.10.0 h1:QCFhZVe2289KDBQ7WxaHV2rAmPrmRAdLC6gbjUd3HPo= +cloud.google.com/go/metastore v1.10.0/go.mod h1:fPEnH3g4JJAk+gMRnrAnoqyv2lpUCqJPWOodSaf45Eo= cloud.google.com/go/monitoring v1.8.0 h1:c9riaGSPQ4dUKWB+M1Fl0N+iLxstMbCktdEwYSPGDvA= +cloud.google.com/go/monitoring v1.12.0 h1:+X79DyOP/Ny23XIqSIb37AvFWSxDN15w/ktklVvPLso= +cloud.google.com/go/monitoring v1.12.0/go.mod h1:yx8Jj2fZNEkL/GYZyTLS4ZtZEZN8WtDEiEqG4kLK50w= cloud.google.com/go/networkconnectivity v1.7.0 h1:BVdIKaI68bihnXGdCVL89Jsg9kq2kg+II30fjVqo62E= +cloud.google.com/go/networkconnectivity v1.10.0 h1:DJwVcr97sd9XPc9rei0z1vUI2ExJyXpA11DSi+Yh7h4= +cloud.google.com/go/networkconnectivity v1.10.0/go.mod h1:UP4O4sWXJG13AqrTdQCD9TnLGEbtNRqjuaaA7bNjF5E= cloud.google.com/go/networkmanagement v1.5.0 h1:mDHA3CDW00imTvC5RW6aMGsD1bH+FtKwZm/52BxaiMg= +cloud.google.com/go/networkmanagement v1.6.0 h1:8KWEUNGcpSX9WwZXq7FtciuNGPdPdPN/ruDm769yAEM= +cloud.google.com/go/networkmanagement v1.6.0/go.mod h1:5pKPqyXjB/sgtvB5xqOemumoQNB7y95Q7S+4rjSOPYY= cloud.google.com/go/networksecurity v0.6.0 h1:qDEX/3sipg9dS5JYsAY+YvgTjPR63cozzAWop8oZS94= +cloud.google.com/go/networksecurity v0.7.0 h1:sAKgrzvEslukcwezyEIoXocU2vxWR1Zn7xMTp4uLR0E= +cloud.google.com/go/networksecurity v0.7.0/go.mod h1:mAnzoxx/8TBSyXEeESMy9OOYwo1v+gZ5eMRnsT5bC8k= cloud.google.com/go/notebooks v1.5.0 h1:AC8RPjNvel3ExgXjO1YOAz+teg9+j+89TNxa7pIZfww= +cloud.google.com/go/notebooks v1.7.0 h1:mMI+/ETVBmCZjdiSYYkN6VFgFTR68kh3frJ8zWvg6go= +cloud.google.com/go/notebooks v1.7.0/go.mod h1:PVlaDGfJgj1fl1S3dUwhFMXFgfYGhYQt2164xOMONmE= cloud.google.com/go/optimization v1.2.0 h1:7PxOq9VTT7TMib/6dMoWpMvWS2E4dJEvtYzjvBreaec= +cloud.google.com/go/optimization v1.3.1 h1:dj8O4VOJRB4CUwZXdmwNViH1OtI0WtWL867/lnYH248= +cloud.google.com/go/optimization v1.3.1/go.mod h1:IvUSefKiwd1a5p0RgHDbWCIbDFgKuEdB+fPPuP0IDLI= cloud.google.com/go/orchestration v1.4.0 h1:39d6tqvNjd/wsSub1Bn4cEmrYcet5Ur6xpaN+SxOxtY= +cloud.google.com/go/orchestration v1.6.0 h1:Vw+CEXo8M/FZ1rb4EjcLv0gJqqw89b7+g+C/EmniTb8= +cloud.google.com/go/orchestration v1.6.0/go.mod h1:M62Bevp7pkxStDfFfTuCOaXgaaqRAga1yKyoMtEoWPQ= cloud.google.com/go/orgpolicy v1.5.0 h1:erF5PHqDZb6FeFrUHiYj2JK2BMhsk8CyAg4V4amJ3rE= +cloud.google.com/go/orgpolicy v1.10.0 h1:XDriMWug7sd0kYT1QKofRpRHzjad0bK8Q8uA9q+XrU4= +cloud.google.com/go/orgpolicy v1.10.0/go.mod h1:w1fo8b7rRqlXlIJbVhOMPrwVljyuW5mqssvBtU18ONc= cloud.google.com/go/osconfig v1.10.0 h1:NO0RouqCOM7M2S85Eal6urMSSipWwHU8evzwS+siqUI= +cloud.google.com/go/osconfig v1.11.0 h1:PkSQx4OHit5xz2bNyr11KGcaFccL5oqglFPdTboyqwQ= +cloud.google.com/go/osconfig v1.11.0/go.mod h1:aDICxrur2ogRd9zY5ytBLV89KEgT2MKB2L/n6x1ooPw= cloud.google.com/go/oslogin v1.7.0 h1:pKGDPfeZHDybtw48WsnVLjoIPMi9Kw62kUE5TXCLCN4= +cloud.google.com/go/oslogin v1.9.0 h1:whP7vhpmc+ufZa90eVpkfbgzJRK/Xomjz+XCD4aGwWw= +cloud.google.com/go/oslogin v1.9.0/go.mod h1:HNavntnH8nzrn8JCTT5fj18FuJLFJc4NaZJtBnQtKFs= cloud.google.com/go/phishingprotection v0.6.0 h1:OrwHLSRSZyaiOt3tnY33dsKSedxbMzsXvqB21okItNQ= +cloud.google.com/go/phishingprotection v0.7.0 h1:l6tDkT7qAEV49MNEJkEJTB6vOO/onbSOcNtAT09HPuA= +cloud.google.com/go/phishingprotection v0.7.0/go.mod h1:8qJI4QKHoda/sb/7/YmMQ2omRLSLYSu9bU0EKCNI+Lk= cloud.google.com/go/policytroubleshooter v1.4.0 h1:NQklJuOUoz1BPP+Epjw81COx7IISWslkZubz/1i0UN8= +cloud.google.com/go/policytroubleshooter v1.5.0 h1:/fRzv4eqv9PDCEL7nBgJiA1EZxhdKMQ4/JIfheCdUZI= +cloud.google.com/go/policytroubleshooter v1.5.0/go.mod h1:Rz1WfV+1oIpPdN2VvvuboLVRsB1Hclg3CKQ53j9l8vw= cloud.google.com/go/privatecatalog v0.6.0 h1:Vz86uiHCtNGm1DeC32HeG2VXmOq5JRYA3VRPf8ZEcSg= +cloud.google.com/go/privatecatalog v0.7.0 h1:7d0gcifTV9As6zzBQo34ZsFiRRlENjD3kw0o3uHn+fY= +cloud.google.com/go/privatecatalog v0.7.0/go.mod h1:2s5ssIFO69F5csTXcwBP7NPFTZvps26xGzvQ2PQaBYg= cloud.google.com/go/pubsub v1.27.1 h1:q+J/Nfr6Qx4RQeu3rJcnN48SNC0qzlYzSeqkPq93VHs= +cloud.google.com/go/pubsub v1.28.0 h1:XzabfdPx/+eNrsVVGLFgeUnQQKPGkMb8klRCeYK52is= +cloud.google.com/go/pubsub v1.28.0/go.mod h1:vuXFpwaVoIPQMGXqRyUQigu/AX1S3IWugR9xznmcXX8= cloud.google.com/go/pubsublite v1.5.0 h1:iqrD8vp3giTb7hI1q4TQQGj77cj8zzgmMPsTZtLnprM= +cloud.google.com/go/pubsublite v1.6.0 h1:qh04RCSOnQDVHYmzT74ANu8WR9czAXG3Jl3TV4iR5no= +cloud.google.com/go/pubsublite v1.6.0/go.mod h1:1eFCS0U11xlOuMFV/0iBqw3zP12kddMeCbj/F3FSj9k= cloud.google.com/go/recaptchaenterprise/v2 v2.5.0 h1:UqzFfb/WvhwXGDF1eQtdHLrmni+iByZXY4h3w9Kdyv8= +cloud.google.com/go/recaptchaenterprise/v2 v2.6.0 h1:E9VgcQxj9M3HS945E3Jb53qd14xcpHBaEG1LgQhnxW8= +cloud.google.com/go/recaptchaenterprise/v2 v2.6.0/go.mod h1:RPauz9jeLtB3JVzg6nCbe12qNoaa8pXc4d/YukAmcnA= cloud.google.com/go/recommendationengine v0.6.0 h1:6w+WxPf2LmUEqX0YyvfCoYb8aBYOcbIV25Vg6R0FLGw= +cloud.google.com/go/recommendationengine v0.7.0 h1:VibRFCwWXrFebEWKHfZAt2kta6pS7Tlimsnms0fjv7k= +cloud.google.com/go/recommendationengine v0.7.0/go.mod h1:1reUcE3GIu6MeBz/h5xZJqNLuuVjNg1lmWMPyjatzac= cloud.google.com/go/recommender v1.8.0 h1:9kMZQGeYfcOD/RtZfcNKGKtoex3DdoB4zRgYU/WaIwE= +cloud.google.com/go/recommender v1.9.0 h1:ZnFRY5R6zOVk2IDS1Jbv5Bw+DExCI5rFumsTnMXiu/A= +cloud.google.com/go/recommender v1.9.0/go.mod h1:PnSsnZY7q+VL1uax2JWkt/UegHssxjUVVCrX52CuEmQ= cloud.google.com/go/redis v1.10.0 h1:/zTwwBKIAD2DEWTrXZp8WD9yD/gntReF/HkPssVYd0U= +cloud.google.com/go/redis v1.11.0 h1:JoAd3SkeDt3rLFAAxEvw6wV4t+8y4ZzfZcZmddqphQ8= +cloud.google.com/go/redis v1.11.0/go.mod h1:/X6eicana+BWcUda5PpwZC48o37SiFVTFSs0fWAJ7uQ= cloud.google.com/go/resourcemanager v1.4.0 h1:NDao6CHMwEZIaNsdWy+tuvHaavNeGP06o1tgrR0kLvU= +cloud.google.com/go/resourcemanager v1.5.0 h1:m2RQU8UzBCIO+wsdwoehpuyAaF1i7ahFhj7TLocxuJE= +cloud.google.com/go/resourcemanager v1.5.0/go.mod h1:eQoXNAiAvCf5PXxWxXjhKQoTMaUSNrEfg+6qdf/wots= cloud.google.com/go/resourcesettings v1.4.0 h1:eTzOwB13WrfF0kuzG2ZXCfB3TLunSHBur4s+HFU6uSM= +cloud.google.com/go/resourcesettings v1.5.0 h1:8Dua37kQt27CCWHm4h/Q1XqCF6ByD7Ouu49xg95qJzI= +cloud.google.com/go/resourcesettings v1.5.0/go.mod h1:+xJF7QSG6undsQDfsCJyqWXyBwUoJLhetkRMDRnIoXA= cloud.google.com/go/retail v1.11.0 h1:N9fa//ecFUOEPsW/6mJHfcapPV0wBSwIUwpVZB7MQ3o= +cloud.google.com/go/retail v1.12.0 h1:1Dda2OpFNzIb4qWgFZjYlpP7sxX3aLeypKG6A3H4Yys= +cloud.google.com/go/retail v1.12.0/go.mod h1:UMkelN/0Z8XvKymXFbD4EhFJlYKRx1FGhQkVPU5kF14= cloud.google.com/go/run v0.3.0 h1:AWPuzU7Xtaj3Jf+QarDWIs6AJ5hM1VFQ+F6Q+VZ6OT4= +cloud.google.com/go/run v0.8.0 h1:monNAz/FXgo8A31aR9sbrsv+bEbqy6H/arSgLOfA2Fk= +cloud.google.com/go/run v0.8.0/go.mod h1:VniEnuBwqjigv0A7ONfQUaEItaiCRVujlMqerPPiktM= cloud.google.com/go/scheduler v1.7.0 h1:K/mxOewgHGeKuATUJNGylT75Mhtjmx1TOkKukATqMT8= +cloud.google.com/go/scheduler v1.8.0 h1:NRzIXqVxpyoiyonpYOKJmVJ9iif/Acw36Jri+cVHZ9U= +cloud.google.com/go/scheduler v1.8.0/go.mod h1:TCET+Y5Gp1YgHT8py4nlg2Sew8nUHMqcpousDgXJVQc= cloud.google.com/go/secretmanager v1.9.0 h1:xE6uXljAC1kCR8iadt9+/blg1fvSbmenlsDN4fT9gqw= +cloud.google.com/go/secretmanager v1.10.0 h1:pu03bha7ukxF8otyPKTFdDz+rr9sE3YauS5PliDXK60= +cloud.google.com/go/secretmanager v1.10.0/go.mod h1:MfnrdvKMPNra9aZtQFvBcvRU54hbPD8/HayQdlUgJpU= cloud.google.com/go/security v1.10.0 h1:KSKzzJMyUoMRQzcz7azIgqAUqxo7rmQ5rYvimMhikqg= +cloud.google.com/go/security v1.12.0 h1:WIyVxhrdex1geaAV0pC/4yXy/sZdurjHXLzMopcjers= +cloud.google.com/go/security v1.12.0/go.mod h1:rV6EhrpbNHrrxqlvW0BWAIawFWq3X90SduMJdFwtLB8= cloud.google.com/go/securitycenter v1.16.0 h1:QTVtk/Reqnx2bVIZtJKm1+mpfmwRwymmNvlaFez7fQY= +cloud.google.com/go/securitycenter v1.18.1 h1:DRUo2MFSq3Kt0a4hWRysdMHcu2obPwnSQNgHfOuwR4Q= +cloud.google.com/go/securitycenter v1.18.1/go.mod h1:0/25gAzCM/9OL9vVx4ChPeM/+DlfGQJDwBy/UC8AKK0= cloud.google.com/go/servicecontrol v1.5.0 h1:ImIzbOu6y4jL6ob65I++QzvqgFaoAKgHOG+RU9/c4y8= +cloud.google.com/go/servicecontrol v1.11.0 h1:iEiMJgD1bzRL9Zu4JYDQUWfqZ+kRLX8wWZSCMBK8Qzs= +cloud.google.com/go/servicecontrol v1.11.0/go.mod h1:kFmTzYzTUIuZs0ycVqRHNaNhgR+UMUpw9n02l/pY+mc= cloud.google.com/go/servicedirectory v1.7.0 h1:f7M8IMcVzO3T425AqlZbP3yLzeipsBHtRza8vVFYMhQ= +cloud.google.com/go/servicedirectory v1.8.0 h1:DPvPdb6O/lg7xK+BFKlzZN+w6upeJ/bbfcUnnqU66b8= +cloud.google.com/go/servicedirectory v1.8.0/go.mod h1:srXodfhY1GFIPvltunswqXpVxFPpZjf8nkKQT7XcXaY= cloud.google.com/go/servicemanagement v1.5.0 h1:TpkCO5M7dhKSy1bKUD9o/sSEW/U1Gtx7opA1fsiMx0c= +cloud.google.com/go/servicemanagement v1.6.0 h1:flWoX0eJy21+34I/7HPUbpr6xTHPVzws1xnecLFlUm0= +cloud.google.com/go/servicemanagement v1.6.0/go.mod h1:aWns7EeeCOtGEX4OvZUWCCJONRZeFKiptqKf1D0l/Jc= cloud.google.com/go/serviceusage v1.4.0 h1:b0EwJxPJLpavSljMQh0RcdHsUrr5DQ+Nelt/3BAs5ro= +cloud.google.com/go/serviceusage v1.5.0 h1:fl1AGgOx7E2eyBmH5ofDXT9w8xGvEaEnHYyNYGkxaqg= +cloud.google.com/go/serviceusage v1.5.0/go.mod h1:w8U1JvqUqwJNPEOTQjrMHkw3IaIFLoLsPLvsE3xueec= cloud.google.com/go/shell v1.4.0 h1:b1LFhFBgKsG252inyhtmsUUZwchqSz3WTvAIf3JFo4g= +cloud.google.com/go/shell v1.6.0 h1:wT0Uw7ib7+AgZST9eCDygwTJn4+bHMDtZo5fh7kGWDU= +cloud.google.com/go/shell v1.6.0/go.mod h1:oHO8QACS90luWgxP3N9iZVuEiSF84zNyLytb+qE2f9A= cloud.google.com/go/spanner v1.41.0 h1:NvdTpRwf7DTegbfFdPjAWyD7bOVu0VeMqcvR9aCQCAc= +cloud.google.com/go/spanner v1.44.0 h1:fba7k2apz4aI0BE59/kbeaJ78dPOXSz2PSuBIfe7SBM= +cloud.google.com/go/spanner v1.44.0/go.mod h1:G8XIgYdOK+Fbcpbs7p2fiprDw4CaZX63whnSMLVBxjk= cloud.google.com/go/speech v1.9.0 h1:yK0ocnFH4Wsf0cMdUyndJQ/hPv02oTJOxzi6AgpBy4s= +cloud.google.com/go/speech v1.14.1 h1:x4ZJWhop/sLtnIP97IMmPtD6ZF003eD8hykJ0lOgEtw= +cloud.google.com/go/speech v1.14.1/go.mod h1:gEosVRPJ9waG7zqqnsHpYTOoAS4KouMRLDFMekpJ0J0= cloud.google.com/go/storage v1.14.0 h1:6RRlFMv1omScs6iq2hfE3IvgE+l6RfJPampq8UZc5TU= cloud.google.com/go/storagetransfer v1.6.0 h1:fUe3OydbbvHcAYp07xY+2UpH4AermGbmnm7qdEj3tGE= +cloud.google.com/go/storagetransfer v1.7.0 h1:doREJk5f36gq7yJDJ2HVGaYTuQ8Nh6JWm+6tPjdfh+g= +cloud.google.com/go/storagetransfer v1.7.0/go.mod h1:8Giuj1QNb1kfLAiWM1bN6dHzfdlDAVC9rv9abHot2W4= cloud.google.com/go/talent v1.4.0 h1:MrekAGxLqAeAol4Sc0allOVqUGO8j+Iim8NMvpiD7tM= +cloud.google.com/go/talent v1.5.0 h1:nI9sVZPjMKiO2q3Uu0KhTDVov3Xrlpt63fghP9XjyEM= +cloud.google.com/go/talent v1.5.0/go.mod h1:G+ODMj9bsasAEJkQSzO2uHQWXHHXUomArjWQQYkqK6c= cloud.google.com/go/texttospeech v1.5.0 h1:ccPiHgTewxgyAeCWgQWvZvrLmbfQSFABTMAfrSPLPyY= +cloud.google.com/go/texttospeech v1.6.0 h1:H4g1ULStsbVtalbZGktyzXzw6jP26RjVGYx9RaYjBzc= +cloud.google.com/go/texttospeech v1.6.0/go.mod h1:YmwmFT8pj1aBblQOI3TfKmwibnsfvhIBzPXcW4EBovc= cloud.google.com/go/tpu v1.4.0 h1:ztIdKoma1Xob2qm6QwNh4Xi9/e7N3IfvtwG5AcNsj1g= +cloud.google.com/go/tpu v1.5.0 h1:/34T6CbSi+kTv5E19Q9zbU/ix8IviInZpzwz3rsFE+A= +cloud.google.com/go/tpu v1.5.0/go.mod h1:8zVo1rYDFuW2l4yZVY0R0fb/v44xLh3llq7RuV61fPM= cloud.google.com/go/trace v1.4.0 h1:qO9eLn2esajC9sxpqp1YKX37nXC3L4BfGnPS0Cx9dYo= +cloud.google.com/go/trace v1.8.0 h1:GFPLxbp5/FzdgTzor3nlNYNxMd6hLmzkE7sA9F0qQcA= +cloud.google.com/go/trace v1.8.0/go.mod h1:zH7vcsbAhklH8hWFig58HvxcxyQbaIqMarMg9hn5ECA= cloud.google.com/go/translate v1.4.0 h1:AOYOH3MspzJ/bH1YXzB+xTE8fMpn3mwhLjugwGXvMPI= +cloud.google.com/go/translate v1.6.0 h1:oBW4KVgcUq4OAXGdKEdyV7lqWiA3keQ3+8FKreAQv4g= +cloud.google.com/go/translate v1.6.0/go.mod h1:lMGRudH1pu7I3n3PETiOB2507gf3HnfLV8qlkHZEyos= cloud.google.com/go/video v1.9.0 h1:ttlvO4J5c1VGq6FkHqWPD/aH6PfdxujHt+muTJlW1Zk= +cloud.google.com/go/video v1.13.0 h1:FL+xG+4vgZASVIxcWACxneKPhFOnOX75GJhhTP7yUkQ= +cloud.google.com/go/video v1.13.0/go.mod h1:ulzkYlYgCp15N2AokzKjy7MQ9ejuynOJdf1tR5lGthk= cloud.google.com/go/videointelligence v1.9.0 h1:RPFgVVXbI2b5vnrciZjtsUgpNKVtHO/WIyXUhEfuMhA= +cloud.google.com/go/videointelligence v1.10.0 h1:Uh5BdoET8XXqXX2uXIahGb+wTKbLkGH7s4GXR58RrG8= +cloud.google.com/go/videointelligence v1.10.0/go.mod h1:LHZngX1liVtUhZvi2uNS0VQuOzNi2TkY1OakiuoUOjU= cloud.google.com/go/vision/v2 v2.5.0 h1:TQHxRqvLMi19azwm3qYuDbEzZWmiKJNTpGbkNsfRCik= +cloud.google.com/go/vision/v2 v2.6.0 h1:WKt7VNhMLKaT9NmdisWnU2LVO5CaHvisssTaAqfV3dg= +cloud.google.com/go/vision/v2 v2.6.0/go.mod h1:158Hes0MvOS9Z/bDMSFpjwsUrZ5fPrdwuyyvKSGAGMY= cloud.google.com/go/vmmigration v1.3.0 h1:A2Tl2ZmwMRpvEmhV2ibISY85fmQR+Y5w9a0PlRz5P3s= +cloud.google.com/go/vmmigration v1.5.0 h1:+2zAH2Di1FB02kAv8L9In2chYRP2Mw0bl41MiWwF+Fc= +cloud.google.com/go/vmmigration v1.5.0/go.mod h1:E4YQ8q7/4W9gobHjQg4JJSgXXSgY21nA5r8swQV+Xxc= cloud.google.com/go/vmwareengine v0.1.0 h1:JMPZaOT/gIUxVlTqSl/QQ32Y2k+r0stNeM1NSqhVP9o= +cloud.google.com/go/vmwareengine v0.2.2 h1:ZM35wN4xuxDZSpKFypLMTsB02M+NEIZ2wr7/VpT3osw= +cloud.google.com/go/vmwareengine v0.2.2/go.mod h1:sKdctNJxb3KLZkE/6Oui94iw/xs9PRNC2wnNLXsHvH8= cloud.google.com/go/vpcaccess v1.5.0 h1:woHXXtnW8b9gLFdWO9HLPalAddBQ9V4LT+1vjKwR3W8= +cloud.google.com/go/vpcaccess v1.6.0 h1:FOe6CuiQD3BhHJWt7E8QlbBcaIzVRddupwJlp7eqmn4= +cloud.google.com/go/vpcaccess v1.6.0/go.mod h1:wX2ILaNhe7TlVa4vC5xce1bCnqE3AeH27RV31lnmZes= cloud.google.com/go/webrisk v1.7.0 h1:ypSnpGlJnZSXbN9a13PDmAYvVekBLnGKxQ3Q9SMwnYY= +cloud.google.com/go/webrisk v1.8.0 h1:IY+L2+UwxcVm2zayMAtBhZleecdIFLiC+QJMzgb0kT0= +cloud.google.com/go/webrisk v1.8.0/go.mod h1:oJPDuamzHXgUc+b8SiHRcVInZQuybnvEW72PqTc7sSg= cloud.google.com/go/websecurityscanner v1.4.0 h1:y7yIFg/h/mO+5Y5aCOtVAnpGUOgqCH5rXQ2Oc8Oq2+g= +cloud.google.com/go/websecurityscanner v1.5.0 h1:AHC1xmaNMOZtNqxI9Rmm87IJEyPaRkOxeI0gpAacXGk= +cloud.google.com/go/websecurityscanner v1.5.0/go.mod h1:Y6xdCPy81yi0SQnDY1xdNTNpfY1oAgXUlcfN3B3eSng= cloud.google.com/go/workflows v1.9.0 h1:7Chpin9p50NTU8Tb7qk+I11U/IwVXmDhEoSsdccvInE= +cloud.google.com/go/workflows v1.10.0 h1:FfGp9w0cYnaKZJhUOMqCOJCYT/WlvYBfTQhFWV3sRKI= +cloud.google.com/go/workflows v1.10.0/go.mod h1:fZ8LmRmZQWacon9UCX1r/g/DfAXx5VcPALq2CxzdePw= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9 h1:VpgP7xuJadIUuKccphEpTJnWhS2jkQyMt6Y7pJCD7fY= gioui.org v0.0.0-20210308172011-57750fc8a0a6 h1:K72hopUosKG3ntOPNG4OzzbuhxGuVf06fa2la1/H/Ho= github.com/AdaLogics/go-fuzz-headers v0.0.0-20210715213245-6c3934b029d8 h1:V8krnnfGj4pV65YLUm3C0/8bl7V5Nry2Pwvy3ru/wLc= diff --git a/internal/cmd/protoc-gen-go-flipt-sdk/go.mod b/internal/cmd/protoc-gen-go-flipt-sdk/go.mod new file mode 100644 index 0000000000..fe70d98c95 --- /dev/null +++ b/internal/cmd/protoc-gen-go-flipt-sdk/go.mod @@ -0,0 +1,7 @@ +module go.flipt.io/protoc-gen-go-flipt-sdk + +go 1.19 + +require google.golang.org/protobuf v1.28.1 + +require github.com/google/go-cmp v0.5.9 // indirect diff --git a/internal/cmd/protoc-gen-go-flipt-sdk/go.sum b/internal/cmd/protoc-gen-go-flipt-sdk/go.sum new file mode 100644 index 0000000000..c0f58b37fa --- /dev/null +++ b/internal/cmd/protoc-gen-go-flipt-sdk/go.sum @@ -0,0 +1,2 @@ +github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= diff --git a/internal/cmd/protoc-gen-go-flipt-sdk/main.go b/internal/cmd/protoc-gen-go-flipt-sdk/main.go new file mode 100644 index 0000000000..870b31909e --- /dev/null +++ b/internal/cmd/protoc-gen-go-flipt-sdk/main.go @@ -0,0 +1,178 @@ +package main + +import ( + "strings" + + "google.golang.org/protobuf/compiler/protogen" + "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/types/pluginpb" +) + +const ( + importPath = "go.flipt.io/flipt/sdk" +) + +func main() { + protogen.Options{}.Run(func(gen *protogen.Plugin) error { + // We have some use of the optional feature in our proto3 definitions. + // This broadcasts that our plugin supports it and hides the generated + // warning. + gen.SupportedFeatures |= uint64(pluginpb.CodeGeneratorResponse_FEATURE_PROTO3_OPTIONAL) + var types [][2]string + for _, f := range gen.Files { + if !f.Generate { + continue + } + + typ, transport := generateSubSDK(gen, f) + types = append(types, [2]string{typ, transport}) + } + + generateSDK(gen, types) + + return nil + }) +} + +func generateSDK(gen *protogen.Plugin, types [][2]string) { + g := gen.NewGeneratedFile("sdk.gen.go", importPath) + g.P("// Code generated by protoc-gen-go-flipt-sdk. DO NOT EDIT.") + g.P() + g.P("package sdk") + g.P() + g.P("type Transport interface {") + for _, t := range types { + g.P(t[1], "() ", t[1]) + } + g.P("}") + g.P() + + g.P(sdkBase) + g.P() + + for _, t := range types { + g.P("func (s SDK) ", t[0], "()", t[0], "{") + g.P("return ", t[0], "{transport: s.transport.", t[1], "()}") + g.P("}\n") + } +} + +// generateSubSDK generates a .pb.sdk.go file containing a single SDK structure +// which represents an entire package from within the entire Flipt SDK API. +func generateSubSDK(gen *protogen.Plugin, file *protogen.File) (typ, transport string) { + filename := string(file.GoPackageName) + ".pb.sdk.go" + g := gen.NewGeneratedFile(filename, importPath) + g.P("// Code generated by protoc-gen-go-flipt-sdk. DO NOT EDIT.") + g.P() + g.P("package sdk") + g.P() + + ident := func(pkg string) func(name string) string { + return func(name string) string { + return g.QualifiedGoIdent(protogen.GoIdent{ + GoImportPath: protogen.GoImportPath(pkg), + GoName: name, + }) + } + } + + context := ident("context") + + // define transport interface + transport = strings.Title(string(file.GoPackageName)) + "Transport" + g.P("type ", transport, " interface {") + for _, srv := range file.Services { + for _, method := range srv.Methods { + g.P(method.GoName, "(", context("Context"), ", *", method.Input.GoIdent, ") (*", method.Output.GoIdent, ", error)") + } + } + g.P("}\n") + + // define client structure + typ = strings.Title(string(file.GoPackageName)) + g.P("type ", typ, " struct {") + g.P("transport ", transport) + g.P("}\n") + for _, srv := range file.Services { + for _, method := range srv.Methods { + var ( + signature = []any{"func (x *", typ, ") ", method.GoName, "(ctx ", context("Context")} + returnStatement = []any{"x.transport.", method.GoName, "(ctx, "} + ) + + switch len(method.Input.Fields) { + case 0: + returnStatement = append(returnStatement, "&", method.Input.GoIdent, "{})") + case 1: + field := method.Input.Fields[0] + v := variableCase(field.GoName) + + var kind []any + switch field.Desc.Kind() { + case protoreflect.MessageKind: + kind = []any{"*", field.Message.GoIdent} + default: + kind = []any{field.Desc.Kind()} + } + + signature = append(append(signature, ", ", v, " "), kind...) + returnStatement = append(returnStatement, "&", method.Input.GoIdent, "{", field.GoName, ": ", v, "})") + default: + signature = append(signature, ", v *", method.Input.GoIdent) + returnStatement = append(returnStatement, "v)") + } + + if method.Output.GoIdent.GoImportPath != "google.golang.org/protobuf/types/known/emptypb" { + g.P(append(signature, ") (*", method.Output.GoIdent, ", error) {")...) + g.P(append([]any{"return "}, returnStatement...)...) + } else { + g.P(append(signature, ") error {")...) + g.P(append([]any{"_, err := "}, returnStatement...)...) + g.P("return err") + } + + g.P("}\n") + } + } + return +} + +func variableCase(v string) string { + return strings.ToLower(v[:1]) + v[1:] +} + +const sdkBase = `// ClientTokenProvider is a type which when requested provides a +// client token which can be used to authenticate RPC/API calls +// invoked through the SDK. +type ClientTokenProvider interface { + ClientToken() (string, error) +} + +// SDK is the definition of Flipt's Go SDK. +// It depends on a pluggable transport implementation and exposes +// a consistent API surface area across both transport implementations. +// It also provides consistent client-side instrumentation and authentication +// lifecycle support. +type SDK struct { + transport Transport + tokenProvider ClientTokenProvider +} + +// Option is a functional option which configures the Flipt SDK. +type Option func(*SDK) + +// WithClientTokenProviders returns an Option which configures +// any supplied SDK with the provided ClientTokenProvider. +func WithClientTokenProvider(p ClientTokenProvider) Option { + return func(s *SDK) {} +} + +// New constructs and configures a Flipt SDK instance from +// the provided Transport implementation and options. +func New(t Transport, opts ...Option) SDK { + sdk := SDK{transport: t} + + for _, opt := range opts { opt(&sdk) } + + return sdk +}` diff --git a/sdk/go/auth.pb.sdk.go b/sdk/go/auth.pb.sdk.go new file mode 100644 index 0000000000..beeab82b9e --- /dev/null +++ b/sdk/go/auth.pb.sdk.go @@ -0,0 +1,69 @@ +// Code generated by protoc-gen-go-flipt-sdk. DO NOT EDIT. + +package sdk + +import ( + context "context" + auth "go.flipt.io/flipt/rpc/flipt/auth" + emptypb "google.golang.org/protobuf/types/known/emptypb" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" +) + +type AuthTransport interface { + ListAuthenticationMethods(context.Context, *emptypb.Empty) (*auth.ListAuthenticationMethodsResponse, error) + GetAuthenticationSelf(context.Context, *emptypb.Empty) (*auth.Authentication, error) + GetAuthentication(context.Context, *auth.GetAuthenticationRequest) (*auth.Authentication, error) + ListAuthentications(context.Context, *auth.ListAuthenticationsRequest) (*auth.ListAuthenticationsResponse, error) + DeleteAuthentication(context.Context, *auth.DeleteAuthenticationRequest) (*emptypb.Empty, error) + ExpireAuthenticationSelf(context.Context, *auth.ExpireAuthenticationSelfRequest) (*emptypb.Empty, error) + CreateToken(context.Context, *auth.CreateTokenRequest) (*auth.CreateTokenResponse, error) + AuthorizeURL(context.Context, *auth.AuthorizeURLRequest) (*auth.AuthorizeURLResponse, error) + Callback(context.Context, *auth.CallbackRequest) (*auth.CallbackResponse, error) + VerifyServiceAccount(context.Context, *auth.VerifyServiceAccountRequest) (*auth.VerifyServiceAccountResponse, error) +} + +type Auth struct { + transport AuthTransport +} + +func (x *Auth) ListAuthenticationMethods(ctx context.Context) (*auth.ListAuthenticationMethodsResponse, error) { + return x.transport.ListAuthenticationMethods(ctx, &emptypb.Empty{}) +} + +func (x *Auth) GetAuthenticationSelf(ctx context.Context) (*auth.Authentication, error) { + return x.transport.GetAuthenticationSelf(ctx, &emptypb.Empty{}) +} + +func (x *Auth) GetAuthentication(ctx context.Context, id string) (*auth.Authentication, error) { + return x.transport.GetAuthentication(ctx, &auth.GetAuthenticationRequest{Id: id}) +} + +func (x *Auth) ListAuthentications(ctx context.Context, v *auth.ListAuthenticationsRequest) (*auth.ListAuthenticationsResponse, error) { + return x.transport.ListAuthentications(ctx, v) +} + +func (x *Auth) DeleteAuthentication(ctx context.Context, id string) error { + _, err := x.transport.DeleteAuthentication(ctx, &auth.DeleteAuthenticationRequest{Id: id}) + return err +} + +func (x *Auth) ExpireAuthenticationSelf(ctx context.Context, expiresAt *timestamppb.Timestamp) error { + _, err := x.transport.ExpireAuthenticationSelf(ctx, &auth.ExpireAuthenticationSelfRequest{ExpiresAt: expiresAt}) + return err +} + +func (x *Auth) CreateToken(ctx context.Context, v *auth.CreateTokenRequest) (*auth.CreateTokenResponse, error) { + return x.transport.CreateToken(ctx, v) +} + +func (x *Auth) AuthorizeURL(ctx context.Context, v *auth.AuthorizeURLRequest) (*auth.AuthorizeURLResponse, error) { + return x.transport.AuthorizeURL(ctx, v) +} + +func (x *Auth) Callback(ctx context.Context, v *auth.CallbackRequest) (*auth.CallbackResponse, error) { + return x.transport.Callback(ctx, v) +} + +func (x *Auth) VerifyServiceAccount(ctx context.Context, serviceAccountToken string) (*auth.VerifyServiceAccountResponse, error) { + return x.transport.VerifyServiceAccount(ctx, &auth.VerifyServiceAccountRequest{ServiceAccountToken: serviceAccountToken}) +} diff --git a/sdk/go/flipt.pb.sdk.go b/sdk/go/flipt.pb.sdk.go new file mode 100644 index 0000000000..a3d356fd67 --- /dev/null +++ b/sdk/go/flipt.pb.sdk.go @@ -0,0 +1,158 @@ +// Code generated by protoc-gen-go-flipt-sdk. DO NOT EDIT. + +package sdk + +import ( + context "context" + flipt "go.flipt.io/flipt/rpc/flipt" + emptypb "google.golang.org/protobuf/types/known/emptypb" +) + +type FliptTransport interface { + Evaluate(context.Context, *flipt.EvaluationRequest) (*flipt.EvaluationResponse, error) + BatchEvaluate(context.Context, *flipt.BatchEvaluationRequest) (*flipt.BatchEvaluationResponse, error) + GetFlag(context.Context, *flipt.GetFlagRequest) (*flipt.Flag, error) + ListFlags(context.Context, *flipt.ListFlagRequest) (*flipt.FlagList, error) + CreateFlag(context.Context, *flipt.CreateFlagRequest) (*flipt.Flag, error) + UpdateFlag(context.Context, *flipt.UpdateFlagRequest) (*flipt.Flag, error) + DeleteFlag(context.Context, *flipt.DeleteFlagRequest) (*emptypb.Empty, error) + CreateVariant(context.Context, *flipt.CreateVariantRequest) (*flipt.Variant, error) + UpdateVariant(context.Context, *flipt.UpdateVariantRequest) (*flipt.Variant, error) + DeleteVariant(context.Context, *flipt.DeleteVariantRequest) (*emptypb.Empty, error) + GetRule(context.Context, *flipt.GetRuleRequest) (*flipt.Rule, error) + ListRules(context.Context, *flipt.ListRuleRequest) (*flipt.RuleList, error) + CreateRule(context.Context, *flipt.CreateRuleRequest) (*flipt.Rule, error) + UpdateRule(context.Context, *flipt.UpdateRuleRequest) (*flipt.Rule, error) + OrderRules(context.Context, *flipt.OrderRulesRequest) (*emptypb.Empty, error) + DeleteRule(context.Context, *flipt.DeleteRuleRequest) (*emptypb.Empty, error) + CreateDistribution(context.Context, *flipt.CreateDistributionRequest) (*flipt.Distribution, error) + UpdateDistribution(context.Context, *flipt.UpdateDistributionRequest) (*flipt.Distribution, error) + DeleteDistribution(context.Context, *flipt.DeleteDistributionRequest) (*emptypb.Empty, error) + GetSegment(context.Context, *flipt.GetSegmentRequest) (*flipt.Segment, error) + ListSegments(context.Context, *flipt.ListSegmentRequest) (*flipt.SegmentList, error) + CreateSegment(context.Context, *flipt.CreateSegmentRequest) (*flipt.Segment, error) + UpdateSegment(context.Context, *flipt.UpdateSegmentRequest) (*flipt.Segment, error) + DeleteSegment(context.Context, *flipt.DeleteSegmentRequest) (*emptypb.Empty, error) + CreateConstraint(context.Context, *flipt.CreateConstraintRequest) (*flipt.Constraint, error) + UpdateConstraint(context.Context, *flipt.UpdateConstraintRequest) (*flipt.Constraint, error) + DeleteConstraint(context.Context, *flipt.DeleteConstraintRequest) (*emptypb.Empty, error) +} + +type Flipt struct { + transport FliptTransport +} + +func (x *Flipt) Evaluate(ctx context.Context, v *flipt.EvaluationRequest) (*flipt.EvaluationResponse, error) { + return x.transport.Evaluate(ctx, v) +} + +func (x *Flipt) BatchEvaluate(ctx context.Context, v *flipt.BatchEvaluationRequest) (*flipt.BatchEvaluationResponse, error) { + return x.transport.BatchEvaluate(ctx, v) +} + +func (x *Flipt) GetFlag(ctx context.Context, key string) (*flipt.Flag, error) { + return x.transport.GetFlag(ctx, &flipt.GetFlagRequest{Key: key}) +} + +func (x *Flipt) ListFlags(ctx context.Context, v *flipt.ListFlagRequest) (*flipt.FlagList, error) { + return x.transport.ListFlags(ctx, v) +} + +func (x *Flipt) CreateFlag(ctx context.Context, v *flipt.CreateFlagRequest) (*flipt.Flag, error) { + return x.transport.CreateFlag(ctx, v) +} + +func (x *Flipt) UpdateFlag(ctx context.Context, v *flipt.UpdateFlagRequest) (*flipt.Flag, error) { + return x.transport.UpdateFlag(ctx, v) +} + +func (x *Flipt) DeleteFlag(ctx context.Context, key string) error { + _, err := x.transport.DeleteFlag(ctx, &flipt.DeleteFlagRequest{Key: key}) + return err +} + +func (x *Flipt) CreateVariant(ctx context.Context, v *flipt.CreateVariantRequest) (*flipt.Variant, error) { + return x.transport.CreateVariant(ctx, v) +} + +func (x *Flipt) UpdateVariant(ctx context.Context, v *flipt.UpdateVariantRequest) (*flipt.Variant, error) { + return x.transport.UpdateVariant(ctx, v) +} + +func (x *Flipt) DeleteVariant(ctx context.Context, v *flipt.DeleteVariantRequest) error { + _, err := x.transport.DeleteVariant(ctx, v) + return err +} + +func (x *Flipt) GetRule(ctx context.Context, v *flipt.GetRuleRequest) (*flipt.Rule, error) { + return x.transport.GetRule(ctx, v) +} + +func (x *Flipt) ListRules(ctx context.Context, v *flipt.ListRuleRequest) (*flipt.RuleList, error) { + return x.transport.ListRules(ctx, v) +} + +func (x *Flipt) CreateRule(ctx context.Context, v *flipt.CreateRuleRequest) (*flipt.Rule, error) { + return x.transport.CreateRule(ctx, v) +} + +func (x *Flipt) UpdateRule(ctx context.Context, v *flipt.UpdateRuleRequest) (*flipt.Rule, error) { + return x.transport.UpdateRule(ctx, v) +} + +func (x *Flipt) OrderRules(ctx context.Context, v *flipt.OrderRulesRequest) error { + _, err := x.transport.OrderRules(ctx, v) + return err +} + +func (x *Flipt) DeleteRule(ctx context.Context, v *flipt.DeleteRuleRequest) error { + _, err := x.transport.DeleteRule(ctx, v) + return err +} + +func (x *Flipt) CreateDistribution(ctx context.Context, v *flipt.CreateDistributionRequest) (*flipt.Distribution, error) { + return x.transport.CreateDistribution(ctx, v) +} + +func (x *Flipt) UpdateDistribution(ctx context.Context, v *flipt.UpdateDistributionRequest) (*flipt.Distribution, error) { + return x.transport.UpdateDistribution(ctx, v) +} + +func (x *Flipt) DeleteDistribution(ctx context.Context, v *flipt.DeleteDistributionRequest) error { + _, err := x.transport.DeleteDistribution(ctx, v) + return err +} + +func (x *Flipt) GetSegment(ctx context.Context, key string) (*flipt.Segment, error) { + return x.transport.GetSegment(ctx, &flipt.GetSegmentRequest{Key: key}) +} + +func (x *Flipt) ListSegments(ctx context.Context, v *flipt.ListSegmentRequest) (*flipt.SegmentList, error) { + return x.transport.ListSegments(ctx, v) +} + +func (x *Flipt) CreateSegment(ctx context.Context, v *flipt.CreateSegmentRequest) (*flipt.Segment, error) { + return x.transport.CreateSegment(ctx, v) +} + +func (x *Flipt) UpdateSegment(ctx context.Context, v *flipt.UpdateSegmentRequest) (*flipt.Segment, error) { + return x.transport.UpdateSegment(ctx, v) +} + +func (x *Flipt) DeleteSegment(ctx context.Context, key string) error { + _, err := x.transport.DeleteSegment(ctx, &flipt.DeleteSegmentRequest{Key: key}) + return err +} + +func (x *Flipt) CreateConstraint(ctx context.Context, v *flipt.CreateConstraintRequest) (*flipt.Constraint, error) { + return x.transport.CreateConstraint(ctx, v) +} + +func (x *Flipt) UpdateConstraint(ctx context.Context, v *flipt.UpdateConstraintRequest) (*flipt.Constraint, error) { + return x.transport.UpdateConstraint(ctx, v) +} + +func (x *Flipt) DeleteConstraint(ctx context.Context, v *flipt.DeleteConstraintRequest) error { + _, err := x.transport.DeleteConstraint(ctx, v) + return err +} diff --git a/sdk/go/go.mod b/sdk/go/go.mod new file mode 100644 index 0000000000..50d8c5fd83 --- /dev/null +++ b/sdk/go/go.mod @@ -0,0 +1,25 @@ +module go.flipt.io/flipt/sdk + +go 1.18 + +require ( + go.flipt.io/flipt/rpc/flipt v0.0.0-00010101000000-000000000000 + google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 + google.golang.org/protobuf v1.28.1 +) + +require ( + github.com/golang/protobuf v1.5.2 // indirect + github.com/grpc-ecosystem/grpc-gateway v1.16.0 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.2 // indirect + go.flipt.io/flipt/errors v0.0.0-00010101000000-000000000000 // indirect + golang.org/x/net v0.7.0 // indirect + golang.org/x/sys v0.5.0 // indirect + golang.org/x/text v0.7.0 // indirect + google.golang.org/grpc v1.53.0 // indirect +) + +replace ( + go.flipt.io/flipt/errors => ../../errors/ + go.flipt.io/flipt/rpc/flipt => ../../rpc/flipt/ +) diff --git a/sdk/go/go.sum b/sdk/go/go.sum new file mode 100644 index 0000000000..f1d7f9190e --- /dev/null +++ b/sdk/go/go.sum @@ -0,0 +1,94 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/glog v1.0.0 h1:nfP3RFugxnNRyKgeWd4oI1nYvXpxrx8ck8ZrcizshdQ= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= +github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.2 h1:gDLXvp5S9izjldquuoAhDzccbskOL6tDC5jMSyx3zxE= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.2/go.mod h1:7pdNwVWBBHGiCxa9lAszqCJMbfTISJ7oMftp8+UGV08= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= +github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= +golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 h1:DdoeryqhaXp1LtT/emMP1BRJPHHKFi5akj/nbx/zNTA= +google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= +google.golang.org/grpc v1.53.0 h1:LAv2ds7cmFV/XTS3XG1NneeENYrXGmorPxsBbptIjNc= +google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= +google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/sdk/go/meta.pb.sdk.go b/sdk/go/meta.pb.sdk.go new file mode 100644 index 0000000000..cc3779b477 --- /dev/null +++ b/sdk/go/meta.pb.sdk.go @@ -0,0 +1,26 @@ +// Code generated by protoc-gen-go-flipt-sdk. DO NOT EDIT. + +package sdk + +import ( + context "context" + httpbody "google.golang.org/genproto/googleapis/api/httpbody" + emptypb "google.golang.org/protobuf/types/known/emptypb" +) + +type MetaTransport interface { + GetConfiguration(context.Context, *emptypb.Empty) (*httpbody.HttpBody, error) + GetInfo(context.Context, *emptypb.Empty) (*httpbody.HttpBody, error) +} + +type Meta struct { + transport MetaTransport +} + +func (x *Meta) GetConfiguration(ctx context.Context) (*httpbody.HttpBody, error) { + return x.transport.GetConfiguration(ctx, &emptypb.Empty{}) +} + +func (x *Meta) GetInfo(ctx context.Context) (*httpbody.HttpBody, error) { + return x.transport.GetInfo(ctx, &emptypb.Empty{}) +} diff --git a/sdk/go/sdk.gen.go b/sdk/go/sdk.gen.go new file mode 100644 index 0000000000..4d9aa3f627 --- /dev/null +++ b/sdk/go/sdk.gen.go @@ -0,0 +1,59 @@ +// Code generated by protoc-gen-go-flipt-sdk. DO NOT EDIT. + +package sdk + +type Transport interface { + AuthTransport() AuthTransport + FliptTransport() FliptTransport + MetaTransport() MetaTransport +} + +// ClientTokenProvider is a type which when requested provides a +// client token which can be used to authenticate RPC/API calls +// invoked through the SDK. +type ClientTokenProvider interface { + ClientToken() (string, error) +} + +// SDK is the definition of Flipt's Go SDK. +// It depends on a pluggable transport implementation and exposes +// a consistent API surface area across both transport implementations. +// It also provides consistent client-side instrumentation and authentication +// lifecycle support. +type SDK struct { + transport Transport + tokenProvider ClientTokenProvider +} + +// Option is a functional option which configures the Flipt SDK. +type Option func(*SDK) + +// WithClientTokenProviders returns an Option which configures +// any supplied SDK with the provided ClientTokenProvider. +func WithClientTokenProvider(p ClientTokenProvider) Option { + return func(s *SDK) {} +} + +// New constructs and configures a Flipt SDK instance from +// the provided Transport implementation and options. +func New(t Transport, opts ...Option) SDK { + sdk := SDK{transport: t} + + for _, opt := range opts { + opt(&sdk) + } + + return sdk +} + +func (s SDK) Auth() Auth { + return Auth{transport: s.transport.AuthTransport()} +} + +func (s SDK) Flipt() Flipt { + return Flipt{transport: s.transport.FliptTransport()} +} + +func (s SDK) Meta() Meta { + return Meta{transport: s.transport.MetaTransport()} +} From 0ad51d663025368bb271cae1d382d39d48f8d9ac Mon Sep 17 00:00:00 2001 From: George MacRorie Date: Wed, 8 Mar 2023 17:46:40 +0000 Subject: [PATCH 12/36] feat(sdk/go): support rpc packages with multiple service definitions (auth) --- internal/cmd/protoc-gen-go-flipt-sdk/main.go | 37 ++++++-- sdk/go/auth.pb.sdk.go | 91 ++++++++++++++++---- sdk/go/flipt.pb.sdk.go | 8 +- sdk/go/meta.pb.sdk.go | 8 +- 4 files changed, 112 insertions(+), 32 deletions(-) diff --git a/internal/cmd/protoc-gen-go-flipt-sdk/main.go b/internal/cmd/protoc-gen-go-flipt-sdk/main.go index 870b31909e..265afae0a4 100644 --- a/internal/cmd/protoc-gen-go-flipt-sdk/main.go +++ b/internal/cmd/protoc-gen-go-flipt-sdk/main.go @@ -80,23 +80,48 @@ func generateSubSDK(gen *protogen.Plugin, file *protogen.File) (typ, transport s // define transport interface transport = strings.Title(string(file.GoPackageName)) + "Transport" - g.P("type ", transport, " interface {") - for _, srv := range file.Services { - for _, method := range srv.Methods { - g.P(method.GoName, "(", context("Context"), ", *", method.Input.GoIdent, ") (*", method.Output.GoIdent, ", error)") + if len(file.Services) > 1 { + g.P("type ", transport, " interface {") + for _, srv := range file.Services { + g.P(srv.GoName+"Transport", "()", srv.GoName+"Transport") } + g.P("}\n") } - g.P("}\n") // define client structure typ = strings.Title(string(file.GoPackageName)) g.P("type ", typ, " struct {") g.P("transport ", transport) g.P("}\n") + for _, srv := range file.Services { + transportTyp := transport + if len(file.Services) > 1 { + transportTyp = srv.GoName + "Transport" + } + + g.P("type ", transportTyp, " interface {") + for _, method := range srv.Methods { + g.P(method.GoName, "(", context("Context"), ", *", method.Input.GoIdent, ") (*", method.Output.GoIdent, ", error)") + } + g.P("}\n") + + srvType := typ + if len(file.Services) > 1 { + srvType = srv.GoName + + g.P("type ", srvType, " struct {") + g.P("transport ", transportTyp) + g.P("}\n") + + g.P("func (s ", typ, ") ", srvType, "()", srvType, "{") + g.P("return ", srvType, "{ transport: s.transport.", transportTyp, "()}") + g.P("}") + } + for _, method := range srv.Methods { var ( - signature = []any{"func (x *", typ, ") ", method.GoName, "(ctx ", context("Context")} + signature = []any{"func (x *", srvType, ") ", method.GoName, "(ctx ", context("Context")} returnStatement = []any{"x.transport.", method.GoName, "(ctx, "} ) diff --git a/sdk/go/auth.pb.sdk.go b/sdk/go/auth.pb.sdk.go index beeab82b9e..2a5ae504d5 100644 --- a/sdk/go/auth.pb.sdk.go +++ b/sdk/go/auth.pb.sdk.go @@ -10,60 +10,115 @@ import ( ) type AuthTransport interface { + PublicAuthenticationServiceTransport() PublicAuthenticationServiceTransport + AuthenticationServiceTransport() AuthenticationServiceTransport + AuthenticationMethodTokenServiceTransport() AuthenticationMethodTokenServiceTransport + AuthenticationMethodOIDCServiceTransport() AuthenticationMethodOIDCServiceTransport + AuthenticationMethodKubernetesServiceTransport() AuthenticationMethodKubernetesServiceTransport +} + +type Auth struct { + transport AuthTransport +} + +type PublicAuthenticationServiceTransport interface { ListAuthenticationMethods(context.Context, *emptypb.Empty) (*auth.ListAuthenticationMethodsResponse, error) +} + +type PublicAuthenticationService struct { + transport PublicAuthenticationServiceTransport +} + +func (s Auth) PublicAuthenticationService() PublicAuthenticationService { + return PublicAuthenticationService{transport: s.transport.PublicAuthenticationServiceTransport()} +} +func (x *PublicAuthenticationService) ListAuthenticationMethods(ctx context.Context) (*auth.ListAuthenticationMethodsResponse, error) { + return x.transport.ListAuthenticationMethods(ctx, &emptypb.Empty{}) +} + +type AuthenticationServiceTransport interface { GetAuthenticationSelf(context.Context, *emptypb.Empty) (*auth.Authentication, error) GetAuthentication(context.Context, *auth.GetAuthenticationRequest) (*auth.Authentication, error) ListAuthentications(context.Context, *auth.ListAuthenticationsRequest) (*auth.ListAuthenticationsResponse, error) DeleteAuthentication(context.Context, *auth.DeleteAuthenticationRequest) (*emptypb.Empty, error) ExpireAuthenticationSelf(context.Context, *auth.ExpireAuthenticationSelfRequest) (*emptypb.Empty, error) - CreateToken(context.Context, *auth.CreateTokenRequest) (*auth.CreateTokenResponse, error) - AuthorizeURL(context.Context, *auth.AuthorizeURLRequest) (*auth.AuthorizeURLResponse, error) - Callback(context.Context, *auth.CallbackRequest) (*auth.CallbackResponse, error) - VerifyServiceAccount(context.Context, *auth.VerifyServiceAccountRequest) (*auth.VerifyServiceAccountResponse, error) } -type Auth struct { - transport AuthTransport +type AuthenticationService struct { + transport AuthenticationServiceTransport } -func (x *Auth) ListAuthenticationMethods(ctx context.Context) (*auth.ListAuthenticationMethodsResponse, error) { - return x.transport.ListAuthenticationMethods(ctx, &emptypb.Empty{}) +func (s Auth) AuthenticationService() AuthenticationService { + return AuthenticationService{transport: s.transport.AuthenticationServiceTransport()} } - -func (x *Auth) GetAuthenticationSelf(ctx context.Context) (*auth.Authentication, error) { +func (x *AuthenticationService) GetAuthenticationSelf(ctx context.Context) (*auth.Authentication, error) { return x.transport.GetAuthenticationSelf(ctx, &emptypb.Empty{}) } -func (x *Auth) GetAuthentication(ctx context.Context, id string) (*auth.Authentication, error) { +func (x *AuthenticationService) GetAuthentication(ctx context.Context, id string) (*auth.Authentication, error) { return x.transport.GetAuthentication(ctx, &auth.GetAuthenticationRequest{Id: id}) } -func (x *Auth) ListAuthentications(ctx context.Context, v *auth.ListAuthenticationsRequest) (*auth.ListAuthenticationsResponse, error) { +func (x *AuthenticationService) ListAuthentications(ctx context.Context, v *auth.ListAuthenticationsRequest) (*auth.ListAuthenticationsResponse, error) { return x.transport.ListAuthentications(ctx, v) } -func (x *Auth) DeleteAuthentication(ctx context.Context, id string) error { +func (x *AuthenticationService) DeleteAuthentication(ctx context.Context, id string) error { _, err := x.transport.DeleteAuthentication(ctx, &auth.DeleteAuthenticationRequest{Id: id}) return err } -func (x *Auth) ExpireAuthenticationSelf(ctx context.Context, expiresAt *timestamppb.Timestamp) error { +func (x *AuthenticationService) ExpireAuthenticationSelf(ctx context.Context, expiresAt *timestamppb.Timestamp) error { _, err := x.transport.ExpireAuthenticationSelf(ctx, &auth.ExpireAuthenticationSelfRequest{ExpiresAt: expiresAt}) return err } -func (x *Auth) CreateToken(ctx context.Context, v *auth.CreateTokenRequest) (*auth.CreateTokenResponse, error) { +type AuthenticationMethodTokenServiceTransport interface { + CreateToken(context.Context, *auth.CreateTokenRequest) (*auth.CreateTokenResponse, error) +} + +type AuthenticationMethodTokenService struct { + transport AuthenticationMethodTokenServiceTransport +} + +func (s Auth) AuthenticationMethodTokenService() AuthenticationMethodTokenService { + return AuthenticationMethodTokenService{transport: s.transport.AuthenticationMethodTokenServiceTransport()} +} +func (x *AuthenticationMethodTokenService) CreateToken(ctx context.Context, v *auth.CreateTokenRequest) (*auth.CreateTokenResponse, error) { return x.transport.CreateToken(ctx, v) } -func (x *Auth) AuthorizeURL(ctx context.Context, v *auth.AuthorizeURLRequest) (*auth.AuthorizeURLResponse, error) { +type AuthenticationMethodOIDCServiceTransport interface { + AuthorizeURL(context.Context, *auth.AuthorizeURLRequest) (*auth.AuthorizeURLResponse, error) + Callback(context.Context, *auth.CallbackRequest) (*auth.CallbackResponse, error) +} + +type AuthenticationMethodOIDCService struct { + transport AuthenticationMethodOIDCServiceTransport +} + +func (s Auth) AuthenticationMethodOIDCService() AuthenticationMethodOIDCService { + return AuthenticationMethodOIDCService{transport: s.transport.AuthenticationMethodOIDCServiceTransport()} +} +func (x *AuthenticationMethodOIDCService) AuthorizeURL(ctx context.Context, v *auth.AuthorizeURLRequest) (*auth.AuthorizeURLResponse, error) { return x.transport.AuthorizeURL(ctx, v) } -func (x *Auth) Callback(ctx context.Context, v *auth.CallbackRequest) (*auth.CallbackResponse, error) { +func (x *AuthenticationMethodOIDCService) Callback(ctx context.Context, v *auth.CallbackRequest) (*auth.CallbackResponse, error) { return x.transport.Callback(ctx, v) } -func (x *Auth) VerifyServiceAccount(ctx context.Context, serviceAccountToken string) (*auth.VerifyServiceAccountResponse, error) { +type AuthenticationMethodKubernetesServiceTransport interface { + VerifyServiceAccount(context.Context, *auth.VerifyServiceAccountRequest) (*auth.VerifyServiceAccountResponse, error) +} + +type AuthenticationMethodKubernetesService struct { + transport AuthenticationMethodKubernetesServiceTransport +} + +func (s Auth) AuthenticationMethodKubernetesService() AuthenticationMethodKubernetesService { + return AuthenticationMethodKubernetesService{transport: s.transport.AuthenticationMethodKubernetesServiceTransport()} +} +func (x *AuthenticationMethodKubernetesService) VerifyServiceAccount(ctx context.Context, serviceAccountToken string) (*auth.VerifyServiceAccountResponse, error) { return x.transport.VerifyServiceAccount(ctx, &auth.VerifyServiceAccountRequest{ServiceAccountToken: serviceAccountToken}) } diff --git a/sdk/go/flipt.pb.sdk.go b/sdk/go/flipt.pb.sdk.go index a3d356fd67..ff80004126 100644 --- a/sdk/go/flipt.pb.sdk.go +++ b/sdk/go/flipt.pb.sdk.go @@ -8,6 +8,10 @@ import ( emptypb "google.golang.org/protobuf/types/known/emptypb" ) +type Flipt struct { + transport FliptTransport +} + type FliptTransport interface { Evaluate(context.Context, *flipt.EvaluationRequest) (*flipt.EvaluationResponse, error) BatchEvaluate(context.Context, *flipt.BatchEvaluationRequest) (*flipt.BatchEvaluationResponse, error) @@ -38,10 +42,6 @@ type FliptTransport interface { DeleteConstraint(context.Context, *flipt.DeleteConstraintRequest) (*emptypb.Empty, error) } -type Flipt struct { - transport FliptTransport -} - func (x *Flipt) Evaluate(ctx context.Context, v *flipt.EvaluationRequest) (*flipt.EvaluationResponse, error) { return x.transport.Evaluate(ctx, v) } diff --git a/sdk/go/meta.pb.sdk.go b/sdk/go/meta.pb.sdk.go index cc3779b477..a1b49cc7a2 100644 --- a/sdk/go/meta.pb.sdk.go +++ b/sdk/go/meta.pb.sdk.go @@ -8,15 +8,15 @@ import ( emptypb "google.golang.org/protobuf/types/known/emptypb" ) +type Meta struct { + transport MetaTransport +} + type MetaTransport interface { GetConfiguration(context.Context, *emptypb.Empty) (*httpbody.HttpBody, error) GetInfo(context.Context, *emptypb.Empty) (*httpbody.HttpBody, error) } -type Meta struct { - transport MetaTransport -} - func (x *Meta) GetConfiguration(ctx context.Context) (*httpbody.HttpBody, error) { return x.transport.GetConfiguration(ctx, &emptypb.Empty{}) } From 0b44c6824f8503490056b2da58670a3caffbc5ef Mon Sep 17 00:00:00 2001 From: George MacRorie Date: Wed, 8 Mar 2023 21:14:29 +0000 Subject: [PATCH 13/36] refactor(sdk/go): depend on rpc/flipt client type interfaces --- internal/cmd/protoc-gen-go-flipt-sdk/main.go | 95 ++++++++++++-------- sdk/go/auth.pb.sdk.go | 59 ++++-------- sdk/go/flipt.pb.sdk.go | 33 +------ sdk/go/meta.pb.sdk.go | 8 +- sdk/go/sdk.gen.go | 17 ++-- 5 files changed, 89 insertions(+), 123 deletions(-) diff --git a/internal/cmd/protoc-gen-go-flipt-sdk/main.go b/internal/cmd/protoc-gen-go-flipt-sdk/main.go index 265afae0a4..19cd9c56cb 100644 --- a/internal/cmd/protoc-gen-go-flipt-sdk/main.go +++ b/internal/cmd/protoc-gen-go-flipt-sdk/main.go @@ -18,31 +18,48 @@ func main() { // This broadcasts that our plugin supports it and hides the generated // warning. gen.SupportedFeatures |= uint64(pluginpb.CodeGeneratorResponse_FEATURE_PROTO3_OPTIONAL) - var types [][2]string for _, f := range gen.Files { if !f.Generate { continue } - typ, transport := generateSubSDK(gen, f) - types = append(types, [2]string{typ, transport}) + generateSubSDK(gen, f) } - generateSDK(gen, types) + generateSDK(gen) return nil }) } -func generateSDK(gen *protogen.Plugin, types [][2]string) { +func generateSDK(gen *protogen.Plugin) { g := gen.NewGeneratedFile("sdk.gen.go", importPath) g.P("// Code generated by protoc-gen-go-flipt-sdk. DO NOT EDIT.") g.P() g.P("package sdk") g.P() g.P("type Transport interface {") - for _, t := range types { - g.P(t[1], "() ", t[1]) + var types [][2]string + for _, file := range gen.Files { + if !file.Generate { + continue + } + + var ( + typ = strings.Title(string(file.GoPackageName)) + method = typ + "Client" + returns = method + ) + + if len(file.Services) < 2 { + returns = g.QualifiedGoIdent(protogen.GoIdent{ + GoImportPath: file.GoImportPath, + GoName: file.Services[0].GoName + "Client", + }) + } + + types = append(types, [...]string{typ, method}) + g.P(method, "() ", returns) } g.P("}") g.P() @@ -59,7 +76,7 @@ func generateSDK(gen *protogen.Plugin, types [][2]string) { // generateSubSDK generates a .pb.sdk.go file containing a single SDK structure // which represents an entire package from within the entire Flipt SDK API. -func generateSubSDK(gen *protogen.Plugin, file *protogen.File) (typ, transport string) { +func generateSubSDK(gen *protogen.Plugin, file *protogen.File) (typ, client string) { filename := string(file.GoPackageName) + ".pb.sdk.go" g := gen.NewGeneratedFile(filename, importPath) g.P("// Code generated by protoc-gen-go-flipt-sdk. DO NOT EDIT.") @@ -77,51 +94,55 @@ func generateSubSDK(gen *protogen.Plugin, file *protogen.File) (typ, transport s } context := ident("context") - - // define transport interface - transport = strings.Title(string(file.GoPackageName)) + "Transport" - if len(file.Services) > 1 { - g.P("type ", transport, " interface {") - for _, srv := range file.Services { - g.P(srv.GoName+"Transport", "()", srv.GoName+"Transport") - } - g.P("}\n") + flipt := func(name string) string { + return g.QualifiedGoIdent(protogen.GoIdent{ + GoImportPath: file.GoImportPath, + GoName: name, + }) } + oneServicePackage := len(file.Services) == 1 + // define client structure typ = strings.Title(string(file.GoPackageName)) - g.P("type ", typ, " struct {") - g.P("transport ", transport) - g.P("}\n") + client = flipt(typ + "Client") - for _, srv := range file.Services { - transportTyp := transport - if len(file.Services) > 1 { - transportTyp = srv.GoName + "Transport" - } + if !oneServicePackage { + client = typ + "Client" - g.P("type ", transportTyp, " interface {") - for _, method := range srv.Methods { - g.P(method.GoName, "(", context("Context"), ", *", method.Input.GoIdent, ") (*", method.Output.GoIdent, ", error)") + g.P("type ", typ, "Client interface {") + for _, srv := range file.Services { + g.P(srv.GoName+"Client", "()", flipt(srv.GoName+"Client")) } g.P("}\n") - srvType := typ - if len(file.Services) > 1 { - srvType = srv.GoName + g.P("type ", typ, " struct {") + g.P("transport ", typ, "Client") + g.P("}\n") + } - g.P("type ", srvType, " struct {") - g.P("transport ", transportTyp) - g.P("}\n") + for _, srv := range file.Services { + serviceName := srv.GoName + if oneServicePackage { + serviceName = typ + } + + g.P("type ", serviceName, " struct {") + g.P("transport ", g.QualifiedGoIdent(protogen.GoIdent{ + GoImportPath: file.GoImportPath, + GoName: srv.GoName + "Client", + })) + g.P("}\n") - g.P("func (s ", typ, ") ", srvType, "()", srvType, "{") - g.P("return ", srvType, "{ transport: s.transport.", transportTyp, "()}") + if !oneServicePackage { + g.P("func (s ", typ, ") ", srv.GoName, "()", srv.GoName, "{") + g.P("return ", srv.GoName, "{ transport: s.transport.", srv.GoName+"Client", "()}") g.P("}") } for _, method := range srv.Methods { var ( - signature = []any{"func (x *", srvType, ") ", method.GoName, "(ctx ", context("Context")} + signature = []any{"func (x *", serviceName, ") ", method.GoName, "(ctx ", context("Context")} returnStatement = []any{"x.transport.", method.GoName, "(ctx, "} ) diff --git a/sdk/go/auth.pb.sdk.go b/sdk/go/auth.pb.sdk.go index 2a5ae504d5..f9bb5f66de 100644 --- a/sdk/go/auth.pb.sdk.go +++ b/sdk/go/auth.pb.sdk.go @@ -9,47 +9,35 @@ import ( timestamppb "google.golang.org/protobuf/types/known/timestamppb" ) -type AuthTransport interface { - PublicAuthenticationServiceTransport() PublicAuthenticationServiceTransport - AuthenticationServiceTransport() AuthenticationServiceTransport - AuthenticationMethodTokenServiceTransport() AuthenticationMethodTokenServiceTransport - AuthenticationMethodOIDCServiceTransport() AuthenticationMethodOIDCServiceTransport - AuthenticationMethodKubernetesServiceTransport() AuthenticationMethodKubernetesServiceTransport +type AuthClient interface { + PublicAuthenticationServiceClient() auth.PublicAuthenticationServiceClient + AuthenticationServiceClient() auth.AuthenticationServiceClient + AuthenticationMethodTokenServiceClient() auth.AuthenticationMethodTokenServiceClient + AuthenticationMethodOIDCServiceClient() auth.AuthenticationMethodOIDCServiceClient + AuthenticationMethodKubernetesServiceClient() auth.AuthenticationMethodKubernetesServiceClient } type Auth struct { - transport AuthTransport -} - -type PublicAuthenticationServiceTransport interface { - ListAuthenticationMethods(context.Context, *emptypb.Empty) (*auth.ListAuthenticationMethodsResponse, error) + transport AuthClient } type PublicAuthenticationService struct { - transport PublicAuthenticationServiceTransport + transport auth.PublicAuthenticationServiceClient } func (s Auth) PublicAuthenticationService() PublicAuthenticationService { - return PublicAuthenticationService{transport: s.transport.PublicAuthenticationServiceTransport()} + return PublicAuthenticationService{transport: s.transport.PublicAuthenticationServiceClient()} } func (x *PublicAuthenticationService) ListAuthenticationMethods(ctx context.Context) (*auth.ListAuthenticationMethodsResponse, error) { return x.transport.ListAuthenticationMethods(ctx, &emptypb.Empty{}) } -type AuthenticationServiceTransport interface { - GetAuthenticationSelf(context.Context, *emptypb.Empty) (*auth.Authentication, error) - GetAuthentication(context.Context, *auth.GetAuthenticationRequest) (*auth.Authentication, error) - ListAuthentications(context.Context, *auth.ListAuthenticationsRequest) (*auth.ListAuthenticationsResponse, error) - DeleteAuthentication(context.Context, *auth.DeleteAuthenticationRequest) (*emptypb.Empty, error) - ExpireAuthenticationSelf(context.Context, *auth.ExpireAuthenticationSelfRequest) (*emptypb.Empty, error) -} - type AuthenticationService struct { - transport AuthenticationServiceTransport + transport auth.AuthenticationServiceClient } func (s Auth) AuthenticationService() AuthenticationService { - return AuthenticationService{transport: s.transport.AuthenticationServiceTransport()} + return AuthenticationService{transport: s.transport.AuthenticationServiceClient()} } func (x *AuthenticationService) GetAuthenticationSelf(ctx context.Context) (*auth.Authentication, error) { return x.transport.GetAuthenticationSelf(ctx, &emptypb.Empty{}) @@ -73,32 +61,23 @@ func (x *AuthenticationService) ExpireAuthenticationSelf(ctx context.Context, ex return err } -type AuthenticationMethodTokenServiceTransport interface { - CreateToken(context.Context, *auth.CreateTokenRequest) (*auth.CreateTokenResponse, error) -} - type AuthenticationMethodTokenService struct { - transport AuthenticationMethodTokenServiceTransport + transport auth.AuthenticationMethodTokenServiceClient } func (s Auth) AuthenticationMethodTokenService() AuthenticationMethodTokenService { - return AuthenticationMethodTokenService{transport: s.transport.AuthenticationMethodTokenServiceTransport()} + return AuthenticationMethodTokenService{transport: s.transport.AuthenticationMethodTokenServiceClient()} } func (x *AuthenticationMethodTokenService) CreateToken(ctx context.Context, v *auth.CreateTokenRequest) (*auth.CreateTokenResponse, error) { return x.transport.CreateToken(ctx, v) } -type AuthenticationMethodOIDCServiceTransport interface { - AuthorizeURL(context.Context, *auth.AuthorizeURLRequest) (*auth.AuthorizeURLResponse, error) - Callback(context.Context, *auth.CallbackRequest) (*auth.CallbackResponse, error) -} - type AuthenticationMethodOIDCService struct { - transport AuthenticationMethodOIDCServiceTransport + transport auth.AuthenticationMethodOIDCServiceClient } func (s Auth) AuthenticationMethodOIDCService() AuthenticationMethodOIDCService { - return AuthenticationMethodOIDCService{transport: s.transport.AuthenticationMethodOIDCServiceTransport()} + return AuthenticationMethodOIDCService{transport: s.transport.AuthenticationMethodOIDCServiceClient()} } func (x *AuthenticationMethodOIDCService) AuthorizeURL(ctx context.Context, v *auth.AuthorizeURLRequest) (*auth.AuthorizeURLResponse, error) { return x.transport.AuthorizeURL(ctx, v) @@ -108,16 +87,12 @@ func (x *AuthenticationMethodOIDCService) Callback(ctx context.Context, v *auth. return x.transport.Callback(ctx, v) } -type AuthenticationMethodKubernetesServiceTransport interface { - VerifyServiceAccount(context.Context, *auth.VerifyServiceAccountRequest) (*auth.VerifyServiceAccountResponse, error) -} - type AuthenticationMethodKubernetesService struct { - transport AuthenticationMethodKubernetesServiceTransport + transport auth.AuthenticationMethodKubernetesServiceClient } func (s Auth) AuthenticationMethodKubernetesService() AuthenticationMethodKubernetesService { - return AuthenticationMethodKubernetesService{transport: s.transport.AuthenticationMethodKubernetesServiceTransport()} + return AuthenticationMethodKubernetesService{transport: s.transport.AuthenticationMethodKubernetesServiceClient()} } func (x *AuthenticationMethodKubernetesService) VerifyServiceAccount(ctx context.Context, serviceAccountToken string) (*auth.VerifyServiceAccountResponse, error) { return x.transport.VerifyServiceAccount(ctx, &auth.VerifyServiceAccountRequest{ServiceAccountToken: serviceAccountToken}) diff --git a/sdk/go/flipt.pb.sdk.go b/sdk/go/flipt.pb.sdk.go index ff80004126..d176595fbb 100644 --- a/sdk/go/flipt.pb.sdk.go +++ b/sdk/go/flipt.pb.sdk.go @@ -5,41 +5,10 @@ package sdk import ( context "context" flipt "go.flipt.io/flipt/rpc/flipt" - emptypb "google.golang.org/protobuf/types/known/emptypb" ) type Flipt struct { - transport FliptTransport -} - -type FliptTransport interface { - Evaluate(context.Context, *flipt.EvaluationRequest) (*flipt.EvaluationResponse, error) - BatchEvaluate(context.Context, *flipt.BatchEvaluationRequest) (*flipt.BatchEvaluationResponse, error) - GetFlag(context.Context, *flipt.GetFlagRequest) (*flipt.Flag, error) - ListFlags(context.Context, *flipt.ListFlagRequest) (*flipt.FlagList, error) - CreateFlag(context.Context, *flipt.CreateFlagRequest) (*flipt.Flag, error) - UpdateFlag(context.Context, *flipt.UpdateFlagRequest) (*flipt.Flag, error) - DeleteFlag(context.Context, *flipt.DeleteFlagRequest) (*emptypb.Empty, error) - CreateVariant(context.Context, *flipt.CreateVariantRequest) (*flipt.Variant, error) - UpdateVariant(context.Context, *flipt.UpdateVariantRequest) (*flipt.Variant, error) - DeleteVariant(context.Context, *flipt.DeleteVariantRequest) (*emptypb.Empty, error) - GetRule(context.Context, *flipt.GetRuleRequest) (*flipt.Rule, error) - ListRules(context.Context, *flipt.ListRuleRequest) (*flipt.RuleList, error) - CreateRule(context.Context, *flipt.CreateRuleRequest) (*flipt.Rule, error) - UpdateRule(context.Context, *flipt.UpdateRuleRequest) (*flipt.Rule, error) - OrderRules(context.Context, *flipt.OrderRulesRequest) (*emptypb.Empty, error) - DeleteRule(context.Context, *flipt.DeleteRuleRequest) (*emptypb.Empty, error) - CreateDistribution(context.Context, *flipt.CreateDistributionRequest) (*flipt.Distribution, error) - UpdateDistribution(context.Context, *flipt.UpdateDistributionRequest) (*flipt.Distribution, error) - DeleteDistribution(context.Context, *flipt.DeleteDistributionRequest) (*emptypb.Empty, error) - GetSegment(context.Context, *flipt.GetSegmentRequest) (*flipt.Segment, error) - ListSegments(context.Context, *flipt.ListSegmentRequest) (*flipt.SegmentList, error) - CreateSegment(context.Context, *flipt.CreateSegmentRequest) (*flipt.Segment, error) - UpdateSegment(context.Context, *flipt.UpdateSegmentRequest) (*flipt.Segment, error) - DeleteSegment(context.Context, *flipt.DeleteSegmentRequest) (*emptypb.Empty, error) - CreateConstraint(context.Context, *flipt.CreateConstraintRequest) (*flipt.Constraint, error) - UpdateConstraint(context.Context, *flipt.UpdateConstraintRequest) (*flipt.Constraint, error) - DeleteConstraint(context.Context, *flipt.DeleteConstraintRequest) (*emptypb.Empty, error) + transport flipt.FliptClient } func (x *Flipt) Evaluate(ctx context.Context, v *flipt.EvaluationRequest) (*flipt.EvaluationResponse, error) { diff --git a/sdk/go/meta.pb.sdk.go b/sdk/go/meta.pb.sdk.go index a1b49cc7a2..4287262970 100644 --- a/sdk/go/meta.pb.sdk.go +++ b/sdk/go/meta.pb.sdk.go @@ -4,17 +4,13 @@ package sdk import ( context "context" + meta "go.flipt.io/flipt/rpc/flipt/meta" httpbody "google.golang.org/genproto/googleapis/api/httpbody" emptypb "google.golang.org/protobuf/types/known/emptypb" ) type Meta struct { - transport MetaTransport -} - -type MetaTransport interface { - GetConfiguration(context.Context, *emptypb.Empty) (*httpbody.HttpBody, error) - GetInfo(context.Context, *emptypb.Empty) (*httpbody.HttpBody, error) + transport meta.MetadataServiceClient } func (x *Meta) GetConfiguration(ctx context.Context) (*httpbody.HttpBody, error) { diff --git a/sdk/go/sdk.gen.go b/sdk/go/sdk.gen.go index 4d9aa3f627..7848917cb8 100644 --- a/sdk/go/sdk.gen.go +++ b/sdk/go/sdk.gen.go @@ -2,10 +2,15 @@ package sdk +import ( + flipt "go.flipt.io/flipt/rpc/flipt" + meta "go.flipt.io/flipt/rpc/flipt/meta" +) + type Transport interface { - AuthTransport() AuthTransport - FliptTransport() FliptTransport - MetaTransport() MetaTransport + AuthClient() AuthClient + FliptClient() flipt.FliptClient + MetaClient() meta.MetadataServiceClient } // ClientTokenProvider is a type which when requested provides a @@ -47,13 +52,13 @@ func New(t Transport, opts ...Option) SDK { } func (s SDK) Auth() Auth { - return Auth{transport: s.transport.AuthTransport()} + return Auth{transport: s.transport.AuthClient()} } func (s SDK) Flipt() Flipt { - return Flipt{transport: s.transport.FliptTransport()} + return Flipt{transport: s.transport.FliptClient()} } func (s SDK) Meta() Meta { - return Meta{transport: s.transport.MetaTransport()} + return Meta{transport: s.transport.MetaClient()} } From 1c09f042e73d31411d0518d94e6a0e34203ea774 Mon Sep 17 00:00:00 2001 From: George MacRorie Date: Thu, 9 Mar 2023 10:30:25 +0000 Subject: [PATCH 14/36] refactor(protoc-gen/flipt): move import helpers into package functions --- internal/cmd/protoc-gen-go-flipt-sdk/main.go | 47 +++++++++----------- 1 file changed, 21 insertions(+), 26 deletions(-) diff --git a/internal/cmd/protoc-gen-go-flipt-sdk/main.go b/internal/cmd/protoc-gen-go-flipt-sdk/main.go index 19cd9c56cb..a6ab2a4c4d 100644 --- a/internal/cmd/protoc-gen-go-flipt-sdk/main.go +++ b/internal/cmd/protoc-gen-go-flipt-sdk/main.go @@ -52,10 +52,7 @@ func generateSDK(gen *protogen.Plugin) { ) if len(file.Services) < 2 { - returns = g.QualifiedGoIdent(protogen.GoIdent{ - GoImportPath: file.GoImportPath, - GoName: file.Services[0].GoName + "Client", - }) + returns = relativeImport(g, file, file.Services[0].GoName+"Client") } types = append(types, [...]string{typ, method}) @@ -84,35 +81,20 @@ func generateSubSDK(gen *protogen.Plugin, file *protogen.File) (typ, client stri g.P("package sdk") g.P() - ident := func(pkg string) func(name string) string { - return func(name string) string { - return g.QualifiedGoIdent(protogen.GoIdent{ - GoImportPath: protogen.GoImportPath(pkg), - GoName: name, - }) - } - } - - context := ident("context") - flipt := func(name string) string { - return g.QualifiedGoIdent(protogen.GoIdent{ - GoImportPath: file.GoImportPath, - GoName: name, - }) - } + context := importPackage(g, "context") oneServicePackage := len(file.Services) == 1 // define client structure typ = strings.Title(string(file.GoPackageName)) - client = flipt(typ + "Client") + client = relativeImport(g, file, typ+"Client") if !oneServicePackage { client = typ + "Client" g.P("type ", typ, "Client interface {") for _, srv := range file.Services { - g.P(srv.GoName+"Client", "()", flipt(srv.GoName+"Client")) + g.P(srv.GoName+"Client", "()", relativeImport(g, file, srv.GoName+"Client")) } g.P("}\n") @@ -128,10 +110,7 @@ func generateSubSDK(gen *protogen.Plugin, file *protogen.File) (typ, client stri } g.P("type ", serviceName, " struct {") - g.P("transport ", g.QualifiedGoIdent(protogen.GoIdent{ - GoImportPath: file.GoImportPath, - GoName: srv.GoName + "Client", - })) + g.P("transport ", relativeImport(g, file, srv.GoName+"Client")) g.P("}\n") if !oneServicePackage { @@ -187,6 +166,22 @@ func variableCase(v string) string { return strings.ToLower(v[:1]) + v[1:] } +func importPackage(g *protogen.GeneratedFile, pkg string) func(string) string { + return func(name string) string { + return g.QualifiedGoIdent(protogen.GoIdent{ + GoImportPath: protogen.GoImportPath(pkg), + GoName: name, + }) + } +} + +func relativeImport(g *protogen.GeneratedFile, file *protogen.File, name string) string { + return g.QualifiedGoIdent(protogen.GoIdent{ + GoImportPath: file.GoImportPath, + GoName: name, + }) +} + const sdkBase = `// ClientTokenProvider is a type which when requested provides a // client token which can be used to authenticate RPC/API calls // invoked through the SDK. From ecd393b2df992c1ad5ced26527c6afdb750aac7b Mon Sep 17 00:00:00 2001 From: George MacRorie Date: Thu, 9 Mar 2023 11:31:17 +0000 Subject: [PATCH 15/36] feat(sdk/go): generate gRPC transport implementation --- internal/cmd/protoc-gen-go-flipt-sdk/main.go | 58 ++++++++++++++++++++ sdk/go/grpc.sdk.gen.go | 54 ++++++++++++++++++ 2 files changed, 112 insertions(+) create mode 100644 sdk/go/grpc.sdk.gen.go diff --git a/internal/cmd/protoc-gen-go-flipt-sdk/main.go b/internal/cmd/protoc-gen-go-flipt-sdk/main.go index a6ab2a4c4d..6fe9cb51a0 100644 --- a/internal/cmd/protoc-gen-go-flipt-sdk/main.go +++ b/internal/cmd/protoc-gen-go-flipt-sdk/main.go @@ -28,6 +28,8 @@ func main() { generateSDK(gen) + generateGRPC(gen) + return nil }) } @@ -71,6 +73,58 @@ func generateSDK(gen *protogen.Plugin) { } } +func generateGRPC(gen *protogen.Plugin) { + g := gen.NewGeneratedFile("grpc.sdk.gen.go", importPath) + g.P("// Code generated by protoc-gen-go-flipt-sdk. DO NOT EDIT.") + g.P() + g.P("package sdk") + g.P() + + g.P("type GRPCTransport struct {") + grpc := importPackage(g, "google.golang.org/grpc") + g.P("cc ", grpc("ClientConnInterface")) + g.P("}\n") + + g.P("func NewGRPCTransport(cc ", grpc("ClientConnInterface"), ") GRPCTransport {") + g.P("return GRPCTransport{cc: cc}") + g.P("}\n") + + for _, file := range gen.Files { + if !file.Generate { + continue + } + + var ( + typ = strings.Title(string(file.GoPackageName)) + method = typ + "Client" + ) + + if len(file.Services) < 2 { + returnType := file.Services[0].GoName + "Client" + g.P("func (t GRPCTransport) ", method, "() ", relativeImport(g, file, returnType), "{") + g.P("return ", relativeImport(g, file, "New"+returnType), "(t.cc)") + g.P("}\n") + continue + } + + groupType := variableCase(method) + g.P("type ", groupType, " struct {") + g.P("cc ", grpc("ClientConnInterface")) + g.P("}\n") + + for _, srv := range file.Services { + returnType := srv.GoName + "Client" + g.P("func (t ", groupType, ") ", returnType, "() ", relativeImport(g, file, returnType), " {") + g.P("return ", relativeImport(g, file, "New"+returnType), "(t.cc)") + g.P("}\n") + } + + g.P("func (t GRPCTransport) ", method, "() ", method, "{") + g.P("return ", groupType, "{cc: t.cc}") + g.P("}\n") + } +} + // generateSubSDK generates a .pb.sdk.go file containing a single SDK structure // which represents an entire package from within the entire Flipt SDK API. func generateSubSDK(gen *protogen.Plugin, file *protogen.File) (typ, client string) { @@ -89,6 +143,10 @@ func generateSubSDK(gen *protogen.Plugin, file *protogen.File) (typ, client stri typ = strings.Title(string(file.GoPackageName)) client = relativeImport(g, file, typ+"Client") + // We generate an interface which conjoins all the client interfaces + // generated by the gRPC protoc generator. + // Our gRPC and HTTP wrapper generators will take care of + // bundling these clients appropriately for the SDK to consume. if !oneServicePackage { client = typ + "Client" diff --git a/sdk/go/grpc.sdk.gen.go b/sdk/go/grpc.sdk.gen.go new file mode 100644 index 0000000000..c79636b702 --- /dev/null +++ b/sdk/go/grpc.sdk.gen.go @@ -0,0 +1,54 @@ +// Code generated by protoc-gen-go-flipt-sdk. DO NOT EDIT. + +package sdk + +import ( + flipt "go.flipt.io/flipt/rpc/flipt" + auth "go.flipt.io/flipt/rpc/flipt/auth" + meta "go.flipt.io/flipt/rpc/flipt/meta" + grpc "google.golang.org/grpc" +) + +type GRPCTransport struct { + cc grpc.ClientConnInterface +} + +func NewGRPCTransport(cc grpc.ClientConnInterface) GRPCTransport { + return GRPCTransport{cc: cc} +} + +type authClient struct { + cc grpc.ClientConnInterface +} + +func (t authClient) PublicAuthenticationServiceClient() auth.PublicAuthenticationServiceClient { + return auth.NewPublicAuthenticationServiceClient(t.cc) +} + +func (t authClient) AuthenticationServiceClient() auth.AuthenticationServiceClient { + return auth.NewAuthenticationServiceClient(t.cc) +} + +func (t authClient) AuthenticationMethodTokenServiceClient() auth.AuthenticationMethodTokenServiceClient { + return auth.NewAuthenticationMethodTokenServiceClient(t.cc) +} + +func (t authClient) AuthenticationMethodOIDCServiceClient() auth.AuthenticationMethodOIDCServiceClient { + return auth.NewAuthenticationMethodOIDCServiceClient(t.cc) +} + +func (t authClient) AuthenticationMethodKubernetesServiceClient() auth.AuthenticationMethodKubernetesServiceClient { + return auth.NewAuthenticationMethodKubernetesServiceClient(t.cc) +} + +func (t GRPCTransport) AuthClient() AuthClient { + return authClient{cc: t.cc} +} + +func (t GRPCTransport) FliptClient() flipt.FliptClient { + return flipt.NewFliptClient(t.cc) +} + +func (t GRPCTransport) MetaClient() meta.MetadataServiceClient { + return meta.NewMetadataServiceClient(t.cc) +} From d56c35594e91a47b184b11e78d816820cd23bb9d Mon Sep 17 00:00:00 2001 From: George MacRorie Date: Thu, 9 Mar 2023 11:33:40 +0000 Subject: [PATCH 16/36] chore(sdk/go): add interface assertion for GRPCTransport --- internal/cmd/protoc-gen-go-flipt-sdk/main.go | 2 ++ sdk/go/grpc.sdk.gen.go | 2 ++ 2 files changed, 4 insertions(+) diff --git a/internal/cmd/protoc-gen-go-flipt-sdk/main.go b/internal/cmd/protoc-gen-go-flipt-sdk/main.go index 6fe9cb51a0..cd0e2a6824 100644 --- a/internal/cmd/protoc-gen-go-flipt-sdk/main.go +++ b/internal/cmd/protoc-gen-go-flipt-sdk/main.go @@ -80,6 +80,8 @@ func generateGRPC(gen *protogen.Plugin) { g.P("package sdk") g.P() + g.P("var _ Transport = GRPCTransport{}") + g.P("type GRPCTransport struct {") grpc := importPackage(g, "google.golang.org/grpc") g.P("cc ", grpc("ClientConnInterface")) diff --git a/sdk/go/grpc.sdk.gen.go b/sdk/go/grpc.sdk.gen.go index c79636b702..dca4b058a4 100644 --- a/sdk/go/grpc.sdk.gen.go +++ b/sdk/go/grpc.sdk.gen.go @@ -9,6 +9,8 @@ import ( grpc "google.golang.org/grpc" ) +var _ Transport = GRPCTransport{} + type GRPCTransport struct { cc grpc.ClientConnInterface } From 0d29d0801bd61f07bbe7dd427145093f2c0a24fc Mon Sep 17 00:00:00 2001 From: George MacRorie Date: Thu, 9 Mar 2023 14:25:58 +0000 Subject: [PATCH 17/36] chore(proto): regenerate RPC using protoc-gen-go-grpc v1.3.0 --- rpc/flipt/auth/auth.pb.gw.go | 10 +-- rpc/flipt/auth/auth_grpc.pb.go | 67 +++++++++++----- rpc/flipt/flipt.pb.gw.go | 2 +- rpc/flipt/flipt_grpc.pb.go | 140 ++++++++++++++++++++------------- rpc/flipt/meta/meta.pb.gw.go | 2 +- rpc/flipt/meta/meta_grpc.pb.go | 15 ++-- 6 files changed, 148 insertions(+), 88 deletions(-) diff --git a/rpc/flipt/auth/auth.pb.gw.go b/rpc/flipt/auth/auth.pb.gw.go index 616c1686c5..c47f93fa73 100644 --- a/rpc/flipt/auth/auth.pb.gw.go +++ b/rpc/flipt/auth/auth.pb.gw.go @@ -750,7 +750,7 @@ func RegisterAuthenticationMethodKubernetesServiceHandlerServer(ctx context.Cont // RegisterPublicAuthenticationServiceHandlerFromEndpoint is same as RegisterPublicAuthenticationServiceHandler but // automatically dials to "endpoint" and closes the connection when "ctx" gets done. func RegisterPublicAuthenticationServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { - conn, err := grpc.Dial(endpoint, opts...) + conn, err := grpc.DialContext(ctx, endpoint, opts...) if err != nil { return err } @@ -821,7 +821,7 @@ var ( // RegisterAuthenticationServiceHandlerFromEndpoint is same as RegisterAuthenticationServiceHandler but // automatically dials to "endpoint" and closes the connection when "ctx" gets done. func RegisterAuthenticationServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { - conn, err := grpc.Dial(endpoint, opts...) + conn, err := grpc.DialContext(ctx, endpoint, opts...) if err != nil { return err } @@ -996,7 +996,7 @@ var ( // RegisterAuthenticationMethodTokenServiceHandlerFromEndpoint is same as RegisterAuthenticationMethodTokenServiceHandler but // automatically dials to "endpoint" and closes the connection when "ctx" gets done. func RegisterAuthenticationMethodTokenServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { - conn, err := grpc.Dial(endpoint, opts...) + conn, err := grpc.DialContext(ctx, endpoint, opts...) if err != nil { return err } @@ -1067,7 +1067,7 @@ var ( // RegisterAuthenticationMethodOIDCServiceHandlerFromEndpoint is same as RegisterAuthenticationMethodOIDCServiceHandler but // automatically dials to "endpoint" and closes the connection when "ctx" gets done. func RegisterAuthenticationMethodOIDCServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { - conn, err := grpc.Dial(endpoint, opts...) + conn, err := grpc.DialContext(ctx, endpoint, opts...) if err != nil { return err } @@ -1164,7 +1164,7 @@ var ( // RegisterAuthenticationMethodKubernetesServiceHandlerFromEndpoint is same as RegisterAuthenticationMethodKubernetesServiceHandler but // automatically dials to "endpoint" and closes the connection when "ctx" gets done. func RegisterAuthenticationMethodKubernetesServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { - conn, err := grpc.Dial(endpoint, opts...) + conn, err := grpc.DialContext(ctx, endpoint, opts...) if err != nil { return err } diff --git a/rpc/flipt/auth/auth_grpc.pb.go b/rpc/flipt/auth/auth_grpc.pb.go index 345499e0c5..216097e77b 100644 --- a/rpc/flipt/auth/auth_grpc.pb.go +++ b/rpc/flipt/auth/auth_grpc.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.2.0 +// - protoc-gen-go-grpc v1.3.0 // - protoc (unknown) // source: auth/auth.proto @@ -19,6 +19,10 @@ import ( // Requires gRPC-Go v1.32.0 or later. const _ = grpc.SupportPackageIsVersion7 +const ( + PublicAuthenticationService_ListAuthenticationMethods_FullMethodName = "/flipt.auth.PublicAuthenticationService/ListAuthenticationMethods" +) + // PublicAuthenticationServiceClient is the client API for PublicAuthenticationService service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. @@ -36,7 +40,7 @@ func NewPublicAuthenticationServiceClient(cc grpc.ClientConnInterface) PublicAut func (c *publicAuthenticationServiceClient) ListAuthenticationMethods(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*ListAuthenticationMethodsResponse, error) { out := new(ListAuthenticationMethodsResponse) - err := c.cc.Invoke(ctx, "/flipt.auth.PublicAuthenticationService/ListAuthenticationMethods", in, out, opts...) + err := c.cc.Invoke(ctx, PublicAuthenticationService_ListAuthenticationMethods_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -82,7 +86,7 @@ func _PublicAuthenticationService_ListAuthenticationMethods_Handler(srv interfac } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/flipt.auth.PublicAuthenticationService/ListAuthenticationMethods", + FullMethod: PublicAuthenticationService_ListAuthenticationMethods_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(PublicAuthenticationServiceServer).ListAuthenticationMethods(ctx, req.(*emptypb.Empty)) @@ -106,6 +110,14 @@ var PublicAuthenticationService_ServiceDesc = grpc.ServiceDesc{ Metadata: "auth/auth.proto", } +const ( + AuthenticationService_GetAuthenticationSelf_FullMethodName = "/flipt.auth.AuthenticationService/GetAuthenticationSelf" + AuthenticationService_GetAuthentication_FullMethodName = "/flipt.auth.AuthenticationService/GetAuthentication" + AuthenticationService_ListAuthentications_FullMethodName = "/flipt.auth.AuthenticationService/ListAuthentications" + AuthenticationService_DeleteAuthentication_FullMethodName = "/flipt.auth.AuthenticationService/DeleteAuthentication" + AuthenticationService_ExpireAuthenticationSelf_FullMethodName = "/flipt.auth.AuthenticationService/ExpireAuthenticationSelf" +) + // AuthenticationServiceClient is the client API for AuthenticationService service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. @@ -127,7 +139,7 @@ func NewAuthenticationServiceClient(cc grpc.ClientConnInterface) AuthenticationS func (c *authenticationServiceClient) GetAuthenticationSelf(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*Authentication, error) { out := new(Authentication) - err := c.cc.Invoke(ctx, "/flipt.auth.AuthenticationService/GetAuthenticationSelf", in, out, opts...) + err := c.cc.Invoke(ctx, AuthenticationService_GetAuthenticationSelf_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -136,7 +148,7 @@ func (c *authenticationServiceClient) GetAuthenticationSelf(ctx context.Context, func (c *authenticationServiceClient) GetAuthentication(ctx context.Context, in *GetAuthenticationRequest, opts ...grpc.CallOption) (*Authentication, error) { out := new(Authentication) - err := c.cc.Invoke(ctx, "/flipt.auth.AuthenticationService/GetAuthentication", in, out, opts...) + err := c.cc.Invoke(ctx, AuthenticationService_GetAuthentication_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -145,7 +157,7 @@ func (c *authenticationServiceClient) GetAuthentication(ctx context.Context, in func (c *authenticationServiceClient) ListAuthentications(ctx context.Context, in *ListAuthenticationsRequest, opts ...grpc.CallOption) (*ListAuthenticationsResponse, error) { out := new(ListAuthenticationsResponse) - err := c.cc.Invoke(ctx, "/flipt.auth.AuthenticationService/ListAuthentications", in, out, opts...) + err := c.cc.Invoke(ctx, AuthenticationService_ListAuthentications_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -154,7 +166,7 @@ func (c *authenticationServiceClient) ListAuthentications(ctx context.Context, i func (c *authenticationServiceClient) DeleteAuthentication(ctx context.Context, in *DeleteAuthenticationRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { out := new(emptypb.Empty) - err := c.cc.Invoke(ctx, "/flipt.auth.AuthenticationService/DeleteAuthentication", in, out, opts...) + err := c.cc.Invoke(ctx, AuthenticationService_DeleteAuthentication_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -163,7 +175,7 @@ func (c *authenticationServiceClient) DeleteAuthentication(ctx context.Context, func (c *authenticationServiceClient) ExpireAuthenticationSelf(ctx context.Context, in *ExpireAuthenticationSelfRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { out := new(emptypb.Empty) - err := c.cc.Invoke(ctx, "/flipt.auth.AuthenticationService/ExpireAuthenticationSelf", in, out, opts...) + err := c.cc.Invoke(ctx, AuthenticationService_ExpireAuthenticationSelf_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -224,7 +236,7 @@ func _AuthenticationService_GetAuthenticationSelf_Handler(srv interface{}, ctx c } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/flipt.auth.AuthenticationService/GetAuthenticationSelf", + FullMethod: AuthenticationService_GetAuthenticationSelf_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(AuthenticationServiceServer).GetAuthenticationSelf(ctx, req.(*emptypb.Empty)) @@ -242,7 +254,7 @@ func _AuthenticationService_GetAuthentication_Handler(srv interface{}, ctx conte } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/flipt.auth.AuthenticationService/GetAuthentication", + FullMethod: AuthenticationService_GetAuthentication_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(AuthenticationServiceServer).GetAuthentication(ctx, req.(*GetAuthenticationRequest)) @@ -260,7 +272,7 @@ func _AuthenticationService_ListAuthentications_Handler(srv interface{}, ctx con } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/flipt.auth.AuthenticationService/ListAuthentications", + FullMethod: AuthenticationService_ListAuthentications_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(AuthenticationServiceServer).ListAuthentications(ctx, req.(*ListAuthenticationsRequest)) @@ -278,7 +290,7 @@ func _AuthenticationService_DeleteAuthentication_Handler(srv interface{}, ctx co } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/flipt.auth.AuthenticationService/DeleteAuthentication", + FullMethod: AuthenticationService_DeleteAuthentication_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(AuthenticationServiceServer).DeleteAuthentication(ctx, req.(*DeleteAuthenticationRequest)) @@ -296,7 +308,7 @@ func _AuthenticationService_ExpireAuthenticationSelf_Handler(srv interface{}, ct } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/flipt.auth.AuthenticationService/ExpireAuthenticationSelf", + FullMethod: AuthenticationService_ExpireAuthenticationSelf_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(AuthenticationServiceServer).ExpireAuthenticationSelf(ctx, req.(*ExpireAuthenticationSelfRequest)) @@ -336,6 +348,10 @@ var AuthenticationService_ServiceDesc = grpc.ServiceDesc{ Metadata: "auth/auth.proto", } +const ( + AuthenticationMethodTokenService_CreateToken_FullMethodName = "/flipt.auth.AuthenticationMethodTokenService/CreateToken" +) + // AuthenticationMethodTokenServiceClient is the client API for AuthenticationMethodTokenService service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. @@ -353,7 +369,7 @@ func NewAuthenticationMethodTokenServiceClient(cc grpc.ClientConnInterface) Auth func (c *authenticationMethodTokenServiceClient) CreateToken(ctx context.Context, in *CreateTokenRequest, opts ...grpc.CallOption) (*CreateTokenResponse, error) { out := new(CreateTokenResponse) - err := c.cc.Invoke(ctx, "/flipt.auth.AuthenticationMethodTokenService/CreateToken", in, out, opts...) + err := c.cc.Invoke(ctx, AuthenticationMethodTokenService_CreateToken_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -399,7 +415,7 @@ func _AuthenticationMethodTokenService_CreateToken_Handler(srv interface{}, ctx } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/flipt.auth.AuthenticationMethodTokenService/CreateToken", + FullMethod: AuthenticationMethodTokenService_CreateToken_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(AuthenticationMethodTokenServiceServer).CreateToken(ctx, req.(*CreateTokenRequest)) @@ -423,6 +439,11 @@ var AuthenticationMethodTokenService_ServiceDesc = grpc.ServiceDesc{ Metadata: "auth/auth.proto", } +const ( + AuthenticationMethodOIDCService_AuthorizeURL_FullMethodName = "/flipt.auth.AuthenticationMethodOIDCService/AuthorizeURL" + AuthenticationMethodOIDCService_Callback_FullMethodName = "/flipt.auth.AuthenticationMethodOIDCService/Callback" +) + // AuthenticationMethodOIDCServiceClient is the client API for AuthenticationMethodOIDCService service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. @@ -441,7 +462,7 @@ func NewAuthenticationMethodOIDCServiceClient(cc grpc.ClientConnInterface) Authe func (c *authenticationMethodOIDCServiceClient) AuthorizeURL(ctx context.Context, in *AuthorizeURLRequest, opts ...grpc.CallOption) (*AuthorizeURLResponse, error) { out := new(AuthorizeURLResponse) - err := c.cc.Invoke(ctx, "/flipt.auth.AuthenticationMethodOIDCService/AuthorizeURL", in, out, opts...) + err := c.cc.Invoke(ctx, AuthenticationMethodOIDCService_AuthorizeURL_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -450,7 +471,7 @@ func (c *authenticationMethodOIDCServiceClient) AuthorizeURL(ctx context.Context func (c *authenticationMethodOIDCServiceClient) Callback(ctx context.Context, in *CallbackRequest, opts ...grpc.CallOption) (*CallbackResponse, error) { out := new(CallbackResponse) - err := c.cc.Invoke(ctx, "/flipt.auth.AuthenticationMethodOIDCService/Callback", in, out, opts...) + err := c.cc.Invoke(ctx, AuthenticationMethodOIDCService_Callback_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -500,7 +521,7 @@ func _AuthenticationMethodOIDCService_AuthorizeURL_Handler(srv interface{}, ctx } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/flipt.auth.AuthenticationMethodOIDCService/AuthorizeURL", + FullMethod: AuthenticationMethodOIDCService_AuthorizeURL_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(AuthenticationMethodOIDCServiceServer).AuthorizeURL(ctx, req.(*AuthorizeURLRequest)) @@ -518,7 +539,7 @@ func _AuthenticationMethodOIDCService_Callback_Handler(srv interface{}, ctx cont } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/flipt.auth.AuthenticationMethodOIDCService/Callback", + FullMethod: AuthenticationMethodOIDCService_Callback_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(AuthenticationMethodOIDCServiceServer).Callback(ctx, req.(*CallbackRequest)) @@ -546,6 +567,10 @@ var AuthenticationMethodOIDCService_ServiceDesc = grpc.ServiceDesc{ Metadata: "auth/auth.proto", } +const ( + AuthenticationMethodKubernetesService_VerifyServiceAccount_FullMethodName = "/flipt.auth.AuthenticationMethodKubernetesService/VerifyServiceAccount" +) + // AuthenticationMethodKubernetesServiceClient is the client API for AuthenticationMethodKubernetesService service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. @@ -563,7 +588,7 @@ func NewAuthenticationMethodKubernetesServiceClient(cc grpc.ClientConnInterface) func (c *authenticationMethodKubernetesServiceClient) VerifyServiceAccount(ctx context.Context, in *VerifyServiceAccountRequest, opts ...grpc.CallOption) (*VerifyServiceAccountResponse, error) { out := new(VerifyServiceAccountResponse) - err := c.cc.Invoke(ctx, "/flipt.auth.AuthenticationMethodKubernetesService/VerifyServiceAccount", in, out, opts...) + err := c.cc.Invoke(ctx, AuthenticationMethodKubernetesService_VerifyServiceAccount_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -609,7 +634,7 @@ func _AuthenticationMethodKubernetesService_VerifyServiceAccount_Handler(srv int } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/flipt.auth.AuthenticationMethodKubernetesService/VerifyServiceAccount", + FullMethod: AuthenticationMethodKubernetesService_VerifyServiceAccount_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(AuthenticationMethodKubernetesServiceServer).VerifyServiceAccount(ctx, req.(*VerifyServiceAccountRequest)) diff --git a/rpc/flipt/flipt.pb.gw.go b/rpc/flipt/flipt.pb.gw.go index 0983e453b4..99dc5eb5ce 100644 --- a/rpc/flipt/flipt.pb.gw.go +++ b/rpc/flipt/flipt.pb.gw.go @@ -2470,7 +2470,7 @@ func RegisterFliptHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv // RegisterFliptHandlerFromEndpoint is same as RegisterFliptHandler but // automatically dials to "endpoint" and closes the connection when "ctx" gets done. func RegisterFliptHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { - conn, err := grpc.Dial(endpoint, opts...) + conn, err := grpc.DialContext(ctx, endpoint, opts...) if err != nil { return err } diff --git a/rpc/flipt/flipt_grpc.pb.go b/rpc/flipt/flipt_grpc.pb.go index 0a2d2cef3e..e770c35eb8 100644 --- a/rpc/flipt/flipt_grpc.pb.go +++ b/rpc/flipt/flipt_grpc.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.2.0 +// - protoc-gen-go-grpc v1.3.0 // - protoc (unknown) // source: flipt.proto @@ -19,6 +19,36 @@ import ( // Requires gRPC-Go v1.32.0 or later. const _ = grpc.SupportPackageIsVersion7 +const ( + Flipt_Evaluate_FullMethodName = "/flipt.Flipt/Evaluate" + Flipt_BatchEvaluate_FullMethodName = "/flipt.Flipt/BatchEvaluate" + Flipt_GetFlag_FullMethodName = "/flipt.Flipt/GetFlag" + Flipt_ListFlags_FullMethodName = "/flipt.Flipt/ListFlags" + Flipt_CreateFlag_FullMethodName = "/flipt.Flipt/CreateFlag" + Flipt_UpdateFlag_FullMethodName = "/flipt.Flipt/UpdateFlag" + Flipt_DeleteFlag_FullMethodName = "/flipt.Flipt/DeleteFlag" + Flipt_CreateVariant_FullMethodName = "/flipt.Flipt/CreateVariant" + Flipt_UpdateVariant_FullMethodName = "/flipt.Flipt/UpdateVariant" + Flipt_DeleteVariant_FullMethodName = "/flipt.Flipt/DeleteVariant" + Flipt_GetRule_FullMethodName = "/flipt.Flipt/GetRule" + Flipt_ListRules_FullMethodName = "/flipt.Flipt/ListRules" + Flipt_CreateRule_FullMethodName = "/flipt.Flipt/CreateRule" + Flipt_UpdateRule_FullMethodName = "/flipt.Flipt/UpdateRule" + Flipt_OrderRules_FullMethodName = "/flipt.Flipt/OrderRules" + Flipt_DeleteRule_FullMethodName = "/flipt.Flipt/DeleteRule" + Flipt_CreateDistribution_FullMethodName = "/flipt.Flipt/CreateDistribution" + Flipt_UpdateDistribution_FullMethodName = "/flipt.Flipt/UpdateDistribution" + Flipt_DeleteDistribution_FullMethodName = "/flipt.Flipt/DeleteDistribution" + Flipt_GetSegment_FullMethodName = "/flipt.Flipt/GetSegment" + Flipt_ListSegments_FullMethodName = "/flipt.Flipt/ListSegments" + Flipt_CreateSegment_FullMethodName = "/flipt.Flipt/CreateSegment" + Flipt_UpdateSegment_FullMethodName = "/flipt.Flipt/UpdateSegment" + Flipt_DeleteSegment_FullMethodName = "/flipt.Flipt/DeleteSegment" + Flipt_CreateConstraint_FullMethodName = "/flipt.Flipt/CreateConstraint" + Flipt_UpdateConstraint_FullMethodName = "/flipt.Flipt/UpdateConstraint" + Flipt_DeleteConstraint_FullMethodName = "/flipt.Flipt/DeleteConstraint" +) + // FliptClient is the client API for Flipt service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. @@ -62,7 +92,7 @@ func NewFliptClient(cc grpc.ClientConnInterface) FliptClient { func (c *fliptClient) Evaluate(ctx context.Context, in *EvaluationRequest, opts ...grpc.CallOption) (*EvaluationResponse, error) { out := new(EvaluationResponse) - err := c.cc.Invoke(ctx, "/flipt.Flipt/Evaluate", in, out, opts...) + err := c.cc.Invoke(ctx, Flipt_Evaluate_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -71,7 +101,7 @@ func (c *fliptClient) Evaluate(ctx context.Context, in *EvaluationRequest, opts func (c *fliptClient) BatchEvaluate(ctx context.Context, in *BatchEvaluationRequest, opts ...grpc.CallOption) (*BatchEvaluationResponse, error) { out := new(BatchEvaluationResponse) - err := c.cc.Invoke(ctx, "/flipt.Flipt/BatchEvaluate", in, out, opts...) + err := c.cc.Invoke(ctx, Flipt_BatchEvaluate_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -80,7 +110,7 @@ func (c *fliptClient) BatchEvaluate(ctx context.Context, in *BatchEvaluationRequ func (c *fliptClient) GetFlag(ctx context.Context, in *GetFlagRequest, opts ...grpc.CallOption) (*Flag, error) { out := new(Flag) - err := c.cc.Invoke(ctx, "/flipt.Flipt/GetFlag", in, out, opts...) + err := c.cc.Invoke(ctx, Flipt_GetFlag_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -89,7 +119,7 @@ func (c *fliptClient) GetFlag(ctx context.Context, in *GetFlagRequest, opts ...g func (c *fliptClient) ListFlags(ctx context.Context, in *ListFlagRequest, opts ...grpc.CallOption) (*FlagList, error) { out := new(FlagList) - err := c.cc.Invoke(ctx, "/flipt.Flipt/ListFlags", in, out, opts...) + err := c.cc.Invoke(ctx, Flipt_ListFlags_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -98,7 +128,7 @@ func (c *fliptClient) ListFlags(ctx context.Context, in *ListFlagRequest, opts . func (c *fliptClient) CreateFlag(ctx context.Context, in *CreateFlagRequest, opts ...grpc.CallOption) (*Flag, error) { out := new(Flag) - err := c.cc.Invoke(ctx, "/flipt.Flipt/CreateFlag", in, out, opts...) + err := c.cc.Invoke(ctx, Flipt_CreateFlag_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -107,7 +137,7 @@ func (c *fliptClient) CreateFlag(ctx context.Context, in *CreateFlagRequest, opt func (c *fliptClient) UpdateFlag(ctx context.Context, in *UpdateFlagRequest, opts ...grpc.CallOption) (*Flag, error) { out := new(Flag) - err := c.cc.Invoke(ctx, "/flipt.Flipt/UpdateFlag", in, out, opts...) + err := c.cc.Invoke(ctx, Flipt_UpdateFlag_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -116,7 +146,7 @@ func (c *fliptClient) UpdateFlag(ctx context.Context, in *UpdateFlagRequest, opt func (c *fliptClient) DeleteFlag(ctx context.Context, in *DeleteFlagRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { out := new(emptypb.Empty) - err := c.cc.Invoke(ctx, "/flipt.Flipt/DeleteFlag", in, out, opts...) + err := c.cc.Invoke(ctx, Flipt_DeleteFlag_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -125,7 +155,7 @@ func (c *fliptClient) DeleteFlag(ctx context.Context, in *DeleteFlagRequest, opt func (c *fliptClient) CreateVariant(ctx context.Context, in *CreateVariantRequest, opts ...grpc.CallOption) (*Variant, error) { out := new(Variant) - err := c.cc.Invoke(ctx, "/flipt.Flipt/CreateVariant", in, out, opts...) + err := c.cc.Invoke(ctx, Flipt_CreateVariant_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -134,7 +164,7 @@ func (c *fliptClient) CreateVariant(ctx context.Context, in *CreateVariantReques func (c *fliptClient) UpdateVariant(ctx context.Context, in *UpdateVariantRequest, opts ...grpc.CallOption) (*Variant, error) { out := new(Variant) - err := c.cc.Invoke(ctx, "/flipt.Flipt/UpdateVariant", in, out, opts...) + err := c.cc.Invoke(ctx, Flipt_UpdateVariant_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -143,7 +173,7 @@ func (c *fliptClient) UpdateVariant(ctx context.Context, in *UpdateVariantReques func (c *fliptClient) DeleteVariant(ctx context.Context, in *DeleteVariantRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { out := new(emptypb.Empty) - err := c.cc.Invoke(ctx, "/flipt.Flipt/DeleteVariant", in, out, opts...) + err := c.cc.Invoke(ctx, Flipt_DeleteVariant_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -152,7 +182,7 @@ func (c *fliptClient) DeleteVariant(ctx context.Context, in *DeleteVariantReques func (c *fliptClient) GetRule(ctx context.Context, in *GetRuleRequest, opts ...grpc.CallOption) (*Rule, error) { out := new(Rule) - err := c.cc.Invoke(ctx, "/flipt.Flipt/GetRule", in, out, opts...) + err := c.cc.Invoke(ctx, Flipt_GetRule_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -161,7 +191,7 @@ func (c *fliptClient) GetRule(ctx context.Context, in *GetRuleRequest, opts ...g func (c *fliptClient) ListRules(ctx context.Context, in *ListRuleRequest, opts ...grpc.CallOption) (*RuleList, error) { out := new(RuleList) - err := c.cc.Invoke(ctx, "/flipt.Flipt/ListRules", in, out, opts...) + err := c.cc.Invoke(ctx, Flipt_ListRules_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -170,7 +200,7 @@ func (c *fliptClient) ListRules(ctx context.Context, in *ListRuleRequest, opts . func (c *fliptClient) CreateRule(ctx context.Context, in *CreateRuleRequest, opts ...grpc.CallOption) (*Rule, error) { out := new(Rule) - err := c.cc.Invoke(ctx, "/flipt.Flipt/CreateRule", in, out, opts...) + err := c.cc.Invoke(ctx, Flipt_CreateRule_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -179,7 +209,7 @@ func (c *fliptClient) CreateRule(ctx context.Context, in *CreateRuleRequest, opt func (c *fliptClient) UpdateRule(ctx context.Context, in *UpdateRuleRequest, opts ...grpc.CallOption) (*Rule, error) { out := new(Rule) - err := c.cc.Invoke(ctx, "/flipt.Flipt/UpdateRule", in, out, opts...) + err := c.cc.Invoke(ctx, Flipt_UpdateRule_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -188,7 +218,7 @@ func (c *fliptClient) UpdateRule(ctx context.Context, in *UpdateRuleRequest, opt func (c *fliptClient) OrderRules(ctx context.Context, in *OrderRulesRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { out := new(emptypb.Empty) - err := c.cc.Invoke(ctx, "/flipt.Flipt/OrderRules", in, out, opts...) + err := c.cc.Invoke(ctx, Flipt_OrderRules_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -197,7 +227,7 @@ func (c *fliptClient) OrderRules(ctx context.Context, in *OrderRulesRequest, opt func (c *fliptClient) DeleteRule(ctx context.Context, in *DeleteRuleRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { out := new(emptypb.Empty) - err := c.cc.Invoke(ctx, "/flipt.Flipt/DeleteRule", in, out, opts...) + err := c.cc.Invoke(ctx, Flipt_DeleteRule_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -206,7 +236,7 @@ func (c *fliptClient) DeleteRule(ctx context.Context, in *DeleteRuleRequest, opt func (c *fliptClient) CreateDistribution(ctx context.Context, in *CreateDistributionRequest, opts ...grpc.CallOption) (*Distribution, error) { out := new(Distribution) - err := c.cc.Invoke(ctx, "/flipt.Flipt/CreateDistribution", in, out, opts...) + err := c.cc.Invoke(ctx, Flipt_CreateDistribution_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -215,7 +245,7 @@ func (c *fliptClient) CreateDistribution(ctx context.Context, in *CreateDistribu func (c *fliptClient) UpdateDistribution(ctx context.Context, in *UpdateDistributionRequest, opts ...grpc.CallOption) (*Distribution, error) { out := new(Distribution) - err := c.cc.Invoke(ctx, "/flipt.Flipt/UpdateDistribution", in, out, opts...) + err := c.cc.Invoke(ctx, Flipt_UpdateDistribution_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -224,7 +254,7 @@ func (c *fliptClient) UpdateDistribution(ctx context.Context, in *UpdateDistribu func (c *fliptClient) DeleteDistribution(ctx context.Context, in *DeleteDistributionRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { out := new(emptypb.Empty) - err := c.cc.Invoke(ctx, "/flipt.Flipt/DeleteDistribution", in, out, opts...) + err := c.cc.Invoke(ctx, Flipt_DeleteDistribution_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -233,7 +263,7 @@ func (c *fliptClient) DeleteDistribution(ctx context.Context, in *DeleteDistribu func (c *fliptClient) GetSegment(ctx context.Context, in *GetSegmentRequest, opts ...grpc.CallOption) (*Segment, error) { out := new(Segment) - err := c.cc.Invoke(ctx, "/flipt.Flipt/GetSegment", in, out, opts...) + err := c.cc.Invoke(ctx, Flipt_GetSegment_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -242,7 +272,7 @@ func (c *fliptClient) GetSegment(ctx context.Context, in *GetSegmentRequest, opt func (c *fliptClient) ListSegments(ctx context.Context, in *ListSegmentRequest, opts ...grpc.CallOption) (*SegmentList, error) { out := new(SegmentList) - err := c.cc.Invoke(ctx, "/flipt.Flipt/ListSegments", in, out, opts...) + err := c.cc.Invoke(ctx, Flipt_ListSegments_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -251,7 +281,7 @@ func (c *fliptClient) ListSegments(ctx context.Context, in *ListSegmentRequest, func (c *fliptClient) CreateSegment(ctx context.Context, in *CreateSegmentRequest, opts ...grpc.CallOption) (*Segment, error) { out := new(Segment) - err := c.cc.Invoke(ctx, "/flipt.Flipt/CreateSegment", in, out, opts...) + err := c.cc.Invoke(ctx, Flipt_CreateSegment_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -260,7 +290,7 @@ func (c *fliptClient) CreateSegment(ctx context.Context, in *CreateSegmentReques func (c *fliptClient) UpdateSegment(ctx context.Context, in *UpdateSegmentRequest, opts ...grpc.CallOption) (*Segment, error) { out := new(Segment) - err := c.cc.Invoke(ctx, "/flipt.Flipt/UpdateSegment", in, out, opts...) + err := c.cc.Invoke(ctx, Flipt_UpdateSegment_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -269,7 +299,7 @@ func (c *fliptClient) UpdateSegment(ctx context.Context, in *UpdateSegmentReques func (c *fliptClient) DeleteSegment(ctx context.Context, in *DeleteSegmentRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { out := new(emptypb.Empty) - err := c.cc.Invoke(ctx, "/flipt.Flipt/DeleteSegment", in, out, opts...) + err := c.cc.Invoke(ctx, Flipt_DeleteSegment_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -278,7 +308,7 @@ func (c *fliptClient) DeleteSegment(ctx context.Context, in *DeleteSegmentReques func (c *fliptClient) CreateConstraint(ctx context.Context, in *CreateConstraintRequest, opts ...grpc.CallOption) (*Constraint, error) { out := new(Constraint) - err := c.cc.Invoke(ctx, "/flipt.Flipt/CreateConstraint", in, out, opts...) + err := c.cc.Invoke(ctx, Flipt_CreateConstraint_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -287,7 +317,7 @@ func (c *fliptClient) CreateConstraint(ctx context.Context, in *CreateConstraint func (c *fliptClient) UpdateConstraint(ctx context.Context, in *UpdateConstraintRequest, opts ...grpc.CallOption) (*Constraint, error) { out := new(Constraint) - err := c.cc.Invoke(ctx, "/flipt.Flipt/UpdateConstraint", in, out, opts...) + err := c.cc.Invoke(ctx, Flipt_UpdateConstraint_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -296,7 +326,7 @@ func (c *fliptClient) UpdateConstraint(ctx context.Context, in *UpdateConstraint func (c *fliptClient) DeleteConstraint(ctx context.Context, in *DeleteConstraintRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { out := new(emptypb.Empty) - err := c.cc.Invoke(ctx, "/flipt.Flipt/DeleteConstraint", in, out, opts...) + err := c.cc.Invoke(ctx, Flipt_DeleteConstraint_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -445,7 +475,7 @@ func _Flipt_Evaluate_Handler(srv interface{}, ctx context.Context, dec func(inte } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/flipt.Flipt/Evaluate", + FullMethod: Flipt_Evaluate_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FliptServer).Evaluate(ctx, req.(*EvaluationRequest)) @@ -463,7 +493,7 @@ func _Flipt_BatchEvaluate_Handler(srv interface{}, ctx context.Context, dec func } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/flipt.Flipt/BatchEvaluate", + FullMethod: Flipt_BatchEvaluate_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FliptServer).BatchEvaluate(ctx, req.(*BatchEvaluationRequest)) @@ -481,7 +511,7 @@ func _Flipt_GetFlag_Handler(srv interface{}, ctx context.Context, dec func(inter } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/flipt.Flipt/GetFlag", + FullMethod: Flipt_GetFlag_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FliptServer).GetFlag(ctx, req.(*GetFlagRequest)) @@ -499,7 +529,7 @@ func _Flipt_ListFlags_Handler(srv interface{}, ctx context.Context, dec func(int } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/flipt.Flipt/ListFlags", + FullMethod: Flipt_ListFlags_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FliptServer).ListFlags(ctx, req.(*ListFlagRequest)) @@ -517,7 +547,7 @@ func _Flipt_CreateFlag_Handler(srv interface{}, ctx context.Context, dec func(in } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/flipt.Flipt/CreateFlag", + FullMethod: Flipt_CreateFlag_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FliptServer).CreateFlag(ctx, req.(*CreateFlagRequest)) @@ -535,7 +565,7 @@ func _Flipt_UpdateFlag_Handler(srv interface{}, ctx context.Context, dec func(in } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/flipt.Flipt/UpdateFlag", + FullMethod: Flipt_UpdateFlag_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FliptServer).UpdateFlag(ctx, req.(*UpdateFlagRequest)) @@ -553,7 +583,7 @@ func _Flipt_DeleteFlag_Handler(srv interface{}, ctx context.Context, dec func(in } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/flipt.Flipt/DeleteFlag", + FullMethod: Flipt_DeleteFlag_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FliptServer).DeleteFlag(ctx, req.(*DeleteFlagRequest)) @@ -571,7 +601,7 @@ func _Flipt_CreateVariant_Handler(srv interface{}, ctx context.Context, dec func } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/flipt.Flipt/CreateVariant", + FullMethod: Flipt_CreateVariant_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FliptServer).CreateVariant(ctx, req.(*CreateVariantRequest)) @@ -589,7 +619,7 @@ func _Flipt_UpdateVariant_Handler(srv interface{}, ctx context.Context, dec func } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/flipt.Flipt/UpdateVariant", + FullMethod: Flipt_UpdateVariant_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FliptServer).UpdateVariant(ctx, req.(*UpdateVariantRequest)) @@ -607,7 +637,7 @@ func _Flipt_DeleteVariant_Handler(srv interface{}, ctx context.Context, dec func } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/flipt.Flipt/DeleteVariant", + FullMethod: Flipt_DeleteVariant_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FliptServer).DeleteVariant(ctx, req.(*DeleteVariantRequest)) @@ -625,7 +655,7 @@ func _Flipt_GetRule_Handler(srv interface{}, ctx context.Context, dec func(inter } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/flipt.Flipt/GetRule", + FullMethod: Flipt_GetRule_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FliptServer).GetRule(ctx, req.(*GetRuleRequest)) @@ -643,7 +673,7 @@ func _Flipt_ListRules_Handler(srv interface{}, ctx context.Context, dec func(int } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/flipt.Flipt/ListRules", + FullMethod: Flipt_ListRules_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FliptServer).ListRules(ctx, req.(*ListRuleRequest)) @@ -661,7 +691,7 @@ func _Flipt_CreateRule_Handler(srv interface{}, ctx context.Context, dec func(in } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/flipt.Flipt/CreateRule", + FullMethod: Flipt_CreateRule_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FliptServer).CreateRule(ctx, req.(*CreateRuleRequest)) @@ -679,7 +709,7 @@ func _Flipt_UpdateRule_Handler(srv interface{}, ctx context.Context, dec func(in } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/flipt.Flipt/UpdateRule", + FullMethod: Flipt_UpdateRule_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FliptServer).UpdateRule(ctx, req.(*UpdateRuleRequest)) @@ -697,7 +727,7 @@ func _Flipt_OrderRules_Handler(srv interface{}, ctx context.Context, dec func(in } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/flipt.Flipt/OrderRules", + FullMethod: Flipt_OrderRules_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FliptServer).OrderRules(ctx, req.(*OrderRulesRequest)) @@ -715,7 +745,7 @@ func _Flipt_DeleteRule_Handler(srv interface{}, ctx context.Context, dec func(in } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/flipt.Flipt/DeleteRule", + FullMethod: Flipt_DeleteRule_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FliptServer).DeleteRule(ctx, req.(*DeleteRuleRequest)) @@ -733,7 +763,7 @@ func _Flipt_CreateDistribution_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/flipt.Flipt/CreateDistribution", + FullMethod: Flipt_CreateDistribution_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FliptServer).CreateDistribution(ctx, req.(*CreateDistributionRequest)) @@ -751,7 +781,7 @@ func _Flipt_UpdateDistribution_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/flipt.Flipt/UpdateDistribution", + FullMethod: Flipt_UpdateDistribution_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FliptServer).UpdateDistribution(ctx, req.(*UpdateDistributionRequest)) @@ -769,7 +799,7 @@ func _Flipt_DeleteDistribution_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/flipt.Flipt/DeleteDistribution", + FullMethod: Flipt_DeleteDistribution_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FliptServer).DeleteDistribution(ctx, req.(*DeleteDistributionRequest)) @@ -787,7 +817,7 @@ func _Flipt_GetSegment_Handler(srv interface{}, ctx context.Context, dec func(in } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/flipt.Flipt/GetSegment", + FullMethod: Flipt_GetSegment_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FliptServer).GetSegment(ctx, req.(*GetSegmentRequest)) @@ -805,7 +835,7 @@ func _Flipt_ListSegments_Handler(srv interface{}, ctx context.Context, dec func( } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/flipt.Flipt/ListSegments", + FullMethod: Flipt_ListSegments_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FliptServer).ListSegments(ctx, req.(*ListSegmentRequest)) @@ -823,7 +853,7 @@ func _Flipt_CreateSegment_Handler(srv interface{}, ctx context.Context, dec func } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/flipt.Flipt/CreateSegment", + FullMethod: Flipt_CreateSegment_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FliptServer).CreateSegment(ctx, req.(*CreateSegmentRequest)) @@ -841,7 +871,7 @@ func _Flipt_UpdateSegment_Handler(srv interface{}, ctx context.Context, dec func } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/flipt.Flipt/UpdateSegment", + FullMethod: Flipt_UpdateSegment_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FliptServer).UpdateSegment(ctx, req.(*UpdateSegmentRequest)) @@ -859,7 +889,7 @@ func _Flipt_DeleteSegment_Handler(srv interface{}, ctx context.Context, dec func } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/flipt.Flipt/DeleteSegment", + FullMethod: Flipt_DeleteSegment_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FliptServer).DeleteSegment(ctx, req.(*DeleteSegmentRequest)) @@ -877,7 +907,7 @@ func _Flipt_CreateConstraint_Handler(srv interface{}, ctx context.Context, dec f } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/flipt.Flipt/CreateConstraint", + FullMethod: Flipt_CreateConstraint_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FliptServer).CreateConstraint(ctx, req.(*CreateConstraintRequest)) @@ -895,7 +925,7 @@ func _Flipt_UpdateConstraint_Handler(srv interface{}, ctx context.Context, dec f } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/flipt.Flipt/UpdateConstraint", + FullMethod: Flipt_UpdateConstraint_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FliptServer).UpdateConstraint(ctx, req.(*UpdateConstraintRequest)) @@ -913,7 +943,7 @@ func _Flipt_DeleteConstraint_Handler(srv interface{}, ctx context.Context, dec f } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/flipt.Flipt/DeleteConstraint", + FullMethod: Flipt_DeleteConstraint_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FliptServer).DeleteConstraint(ctx, req.(*DeleteConstraintRequest)) diff --git a/rpc/flipt/meta/meta.pb.gw.go b/rpc/flipt/meta/meta.pb.gw.go index b6cf86da3b..da0e50c5b0 100644 --- a/rpc/flipt/meta/meta.pb.gw.go +++ b/rpc/flipt/meta/meta.pb.gw.go @@ -130,7 +130,7 @@ func RegisterMetadataServiceHandlerServer(ctx context.Context, mux *runtime.Serv // RegisterMetadataServiceHandlerFromEndpoint is same as RegisterMetadataServiceHandler but // automatically dials to "endpoint" and closes the connection when "ctx" gets done. func RegisterMetadataServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { - conn, err := grpc.Dial(endpoint, opts...) + conn, err := grpc.DialContext(ctx, endpoint, opts...) if err != nil { return err } diff --git a/rpc/flipt/meta/meta_grpc.pb.go b/rpc/flipt/meta/meta_grpc.pb.go index 0e52459480..a570e2e6f7 100644 --- a/rpc/flipt/meta/meta_grpc.pb.go +++ b/rpc/flipt/meta/meta_grpc.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.2.0 +// - protoc-gen-go-grpc v1.3.0 // - protoc (unknown) // source: meta/meta.proto @@ -20,6 +20,11 @@ import ( // Requires gRPC-Go v1.32.0 or later. const _ = grpc.SupportPackageIsVersion7 +const ( + MetadataService_GetConfiguration_FullMethodName = "/flipt.meta.MetadataService/GetConfiguration" + MetadataService_GetInfo_FullMethodName = "/flipt.meta.MetadataService/GetInfo" +) + // MetadataServiceClient is the client API for MetadataService service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. @@ -38,7 +43,7 @@ func NewMetadataServiceClient(cc grpc.ClientConnInterface) MetadataServiceClient func (c *metadataServiceClient) GetConfiguration(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*httpbody.HttpBody, error) { out := new(httpbody.HttpBody) - err := c.cc.Invoke(ctx, "/flipt.meta.MetadataService/GetConfiguration", in, out, opts...) + err := c.cc.Invoke(ctx, MetadataService_GetConfiguration_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -47,7 +52,7 @@ func (c *metadataServiceClient) GetConfiguration(ctx context.Context, in *emptyp func (c *metadataServiceClient) GetInfo(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*httpbody.HttpBody, error) { out := new(httpbody.HttpBody) - err := c.cc.Invoke(ctx, "/flipt.meta.MetadataService/GetInfo", in, out, opts...) + err := c.cc.Invoke(ctx, MetadataService_GetInfo_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -96,7 +101,7 @@ func _MetadataService_GetConfiguration_Handler(srv interface{}, ctx context.Cont } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/flipt.meta.MetadataService/GetConfiguration", + FullMethod: MetadataService_GetConfiguration_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(MetadataServiceServer).GetConfiguration(ctx, req.(*emptypb.Empty)) @@ -114,7 +119,7 @@ func _MetadataService_GetInfo_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/flipt.meta.MetadataService/GetInfo", + FullMethod: MetadataService_GetInfo_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(MetadataServiceServer).GetInfo(ctx, req.(*emptypb.Empty)) From 1d063ea2db054242c40ffa5dcbf05f46576ff866 Mon Sep 17 00:00:00 2001 From: George MacRorie Date: Thu, 9 Mar 2023 14:26:51 +0000 Subject: [PATCH 18/36] refactor(sdk/go): move grpc transport into its own subpackage --- go.work | 1 + go.work.sum | 120 +++++++++++++++++-- internal/cmd/protoc-gen-go-flipt-sdk/main.go | 23 ++-- magefile.go | 2 + sdk/go/{auth.pb.sdk.go => auth.sdk.gen.go} | 0 sdk/go/doc.go | 2 + sdk/go/example_test.go | 15 +++ sdk/go/{flipt.pb.sdk.go => flipt.sdk.gen.go} | 0 sdk/go/grpc/example_test.go | 16 +++ sdk/go/{ => grpc}/grpc.sdk.gen.go | 17 +-- sdk/go/{meta.pb.sdk.go => meta.sdk.gen.go} | 0 sdk/go/sdk.gen.go | 12 +- 12 files changed, 173 insertions(+), 35 deletions(-) rename sdk/go/{auth.pb.sdk.go => auth.sdk.gen.go} (100%) create mode 100644 sdk/go/doc.go create mode 100644 sdk/go/example_test.go rename sdk/go/{flipt.pb.sdk.go => flipt.sdk.gen.go} (100%) create mode 100644 sdk/go/grpc/example_test.go rename sdk/go/{ => grpc}/grpc.sdk.gen.go (78%) rename sdk/go/{meta.pb.sdk.go => meta.sdk.gen.go} (100%) diff --git a/go.work b/go.work index 586299b561..f1e22f7c3a 100644 --- a/go.work +++ b/go.work @@ -6,4 +6,5 @@ use ( ./internal/cmd/protoc-gen-go-flipt-sdk ./rpc/flipt ./sdk/go + ./_tools/ ) diff --git a/go.work.sum b/go.work.sum index df48da6651..d9142ad4b4 100644 --- a/go.work.sum +++ b/go.work.sum @@ -1,4 +1,6 @@ bazil.org/fuse v0.0.0-20200407214033-5883e5a4b512 h1:SRsZGA7aFnCZETmov57jwPrWuTmaZK6+4R4v5FUe1/c= +cloud.google.com/go v0.105.0/go.mod h1:PrLgOJNe5nfE9UMxKxgXj4mD3voiP+YQ6gdt6KMFOKM= +cloud.google.com/go v0.107.0/go.mod h1:wpc2eNrD7hXUTy8EKS10jkxpZBjASrORK7goS+3YX2I= cloud.google.com/go v0.110.0 h1:Zc8gqp3+a9/Eyph2KDmcGaPtbKRIoqq4YTlL4NMD0Ys= cloud.google.com/go v0.110.0/go.mod h1:SJnCLqQ0FCFGSZMUNUf84MV3Aia54kn7pi8st7tMzaY= cloud.google.com/go/accessapproval v1.5.0 h1:/nTivgnV/n1CaAeo+ekGexTYUsKEU9jUVkoY5359+3Q= @@ -76,7 +78,12 @@ cloud.google.com/go/clouddms v1.5.0/go.mod h1:QSxQnhikCLUw13iAbffF2CZxAER3xDGNHj cloud.google.com/go/cloudtasks v1.8.0 h1:faUiUgXjW8yVZ7XMnKHKm1WE4OldPBUWWfIRN/3z1dc= cloud.google.com/go/cloudtasks v1.9.0 h1:Cc2/20hMhGLV2pBGk/i6zNY+eTT9IsV3mrK6TKBu3gs= cloud.google.com/go/cloudtasks v1.9.0/go.mod h1:w+EyLsVkLWHcOaqNEyvcKAsWp9p29dL6uL9Nst1cI7Y= +cloud.google.com/go/compute v1.12.1/go.mod h1:e8yNOBcBONZU1vJKCvCoDw/4JQsA0dpM4x/6PIIOocU= +cloud.google.com/go/compute v1.14.0/go.mod h1:YfLtxrj9sU4Yxv+sXzZkyPjEyPBZfXHUvjxega5vAdo= +cloud.google.com/go/compute v1.15.1/go.mod h1:bjjoF/NtFUrkD/urWfdHaKuOPDR5nWIs63rR+SXhcpA= cloud.google.com/go/compute v1.18.0/go.mod h1:1X7yHxec2Ga+Ss6jPyjxRxpu2uu7PLgsOVXvgU0yacs= +cloud.google.com/go/compute/metadata v0.2.1/go.mod h1:jgHgmJd2RKBGzXqF5LR2EZMGxBkeanZ9wwa75XHJgOM= +cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= cloud.google.com/go/contactcenterinsights v1.4.0 h1:tTQLI/ZvguUf9Hv+36BkG2+/PeC8Ol1q4pBW+tgCx0A= cloud.google.com/go/contactcenterinsights v1.6.0 h1:jXIpfcH/VYSE1SYcPzO0n1VVb+sAamiLOgCw45JbOQk= cloud.google.com/go/contactcenterinsights v1.6.0/go.mod h1:IIDlT6CLcDoyv79kDv8iWxMSTZhLxSCofVV5W6YFM/w= @@ -167,6 +174,8 @@ cloud.google.com/go/gkemulticloud v0.5.0/go.mod h1:W0JDkiyi3Tqh0TJr//y19wyb1yf8l cloud.google.com/go/gsuiteaddons v1.4.0 h1:TGT2oGmO5q3VH6SjcrlgPUWI0njhYv4kywLm6jag0to= cloud.google.com/go/gsuiteaddons v1.5.0 h1:1mvhXqJzV0Vg5Fa95QwckljODJJfDFXV4pn+iL50zzA= cloud.google.com/go/gsuiteaddons v1.5.0/go.mod h1:TFCClYLd64Eaa12sFVmUyG62tk4mdIsI7pAnSXRkcFo= +cloud.google.com/go/iam v0.7.0/go.mod h1:H5Br8wRaDGNc8XP3keLc4unfUUZeyH3Sfl9XpQEYOeg= +cloud.google.com/go/iam v0.8.0/go.mod h1:lga0/y3iH6CX7sYqypWJ33hf7kkfXJag67naqGESjkE= cloud.google.com/go/iam v0.11.0 h1:kwCWfKwB6ePZoZnGLwrd3B6Ru/agoHANTUBWpVNIdnM= cloud.google.com/go/iam v0.12.0 h1:DRtTY29b75ciH6Ov1PHb4/iat2CLCvrOm40Q0a6DFpE= cloud.google.com/go/iam v0.12.0/go.mod h1:knyHGviacl11zrtZUoDuYpDgLjvr28sLQaG0YB2GYAY= @@ -192,6 +201,7 @@ cloud.google.com/go/logging v1.6.1 h1:ZBsZK+JG+oCDT+vaxwqF2egKNRjz8soXiS6Xv79ben cloud.google.com/go/logging v1.7.0 h1:CJYxlNNNNAMkHp9em/YEXcfJg+rPDg7YfwoRpMU+t5I= cloud.google.com/go/logging v1.7.0/go.mod h1:3xjP2CjkM3ZkO73aj4ASA5wRPGGCRrPIAeNqVNkzY8M= cloud.google.com/go/longrunning v0.3.0 h1:NjljC+FYPV3uh5/OwWT6pVU+doBqMg2x/rZlE+CamDs= +cloud.google.com/go/longrunning v0.3.0/go.mod h1:qth9Y41RRSUE69rDcOn6DdK3HfQfsUI0YSmW3iIlLJc= cloud.google.com/go/longrunning v0.4.1 h1:v+yFJOfKC3yZdY6ZUI933pIYdhyhV8S3NpWrXWmg7jM= cloud.google.com/go/longrunning v0.4.1/go.mod h1:4iWDqhBZ70CvZ6BfETbvam3T8FMvLK+eFj0E6AaRQTo= cloud.google.com/go/managedidentities v1.4.0 h1:3Kdajn6X25yWQFhFCErmKSYTSvkEd3chJROny//F1A0= @@ -312,6 +322,7 @@ cloud.google.com/go/speech v1.9.0 h1:yK0ocnFH4Wsf0cMdUyndJQ/hPv02oTJOxzi6AgpBy4s cloud.google.com/go/speech v1.14.1 h1:x4ZJWhop/sLtnIP97IMmPtD6ZF003eD8hykJ0lOgEtw= cloud.google.com/go/speech v1.14.1/go.mod h1:gEosVRPJ9waG7zqqnsHpYTOoAS4KouMRLDFMekpJ0J0= cloud.google.com/go/storage v1.14.0 h1:6RRlFMv1omScs6iq2hfE3IvgE+l6RfJPampq8UZc5TU= +cloud.google.com/go/storage v1.28.1/go.mod h1:Qnisd4CqDdo6BGs2AD5LLnEsmSQ80wQ5ogcBBKhU86Y= cloud.google.com/go/storagetransfer v1.6.0 h1:fUe3OydbbvHcAYp07xY+2UpH4AermGbmnm7qdEj3tGE= cloud.google.com/go/storagetransfer v1.7.0 h1:doREJk5f36gq7yJDJ2HVGaYTuQ8Nh6JWm+6tPjdfh+g= cloud.google.com/go/storagetransfer v1.7.0/go.mod h1:8Giuj1QNb1kfLAiWM1bN6dHzfdlDAVC9rv9abHot2W4= @@ -373,6 +384,7 @@ github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUM github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802 h1:1BDTz0u9nC3//pOCMdNH+CiXJVYJh5UQNCOBG7jbELc= github.com/ClickHouse/clickhouse-go v1.4.3 h1:iAFMa2UrQdR5bHJ2/yaSLffZkxpcOYQMCUuKeNXGdqc= +github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= github.com/Microsoft/hcsshim/test v0.0.0-20210227013316-43a75bb4edd3 h1:4FA+QBaydEHlwxg0lMN3rhwoDaQy6LKhVWR4qvq4BuA= github.com/NYTimes/gziphandler v1.1.1 h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I= github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE= @@ -389,7 +401,9 @@ github.com/apache/arrow/go/arrow v0.0.0-20211013220434-5962184e7a30 h1:HGREIyk0Q github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e h1:QEF07wC0T1rKkctt1RINW/+RMTVmiwxETico2l3gxJA= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6 h1:G1bPvciwNyF7IUmKXNt9Ak3m6u9DE1rF+RmtIkBpVdA= github.com/armon/go-metrics v0.4.0 h1:yCQqn7dwca4ITXb+CbubHmedzaQYHhNhrEXLYUeEe8Q= +github.com/armon/go-metrics v0.4.0/go.mod h1:E6amYzXo6aW1tqzoZGT755KkbgrJsSdpwZ+3JqfkOG4= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310 h1:BUAU3CGlLvorLI26FmByPp2eC2qla6E1Tw+scpcg/to= +github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA= github.com/aws/aws-sdk-go v1.17.7 h1:/4+rDPe0W95KBmNGYCG+NUvdL8ssPYBMxL+aSCg6nIA= github.com/aws/aws-sdk-go-v2 v1.9.2 h1:dUFQcMNZMLON4BOe273pl0filK9RqyQMhCK/6xssL6s= @@ -405,6 +419,7 @@ github.com/aws/aws-sdk-go-v2/service/s3 v1.16.1 h1:z+P3r4LrwdudLKBoEVWxIORrk4sVg github.com/aws/aws-sdk-go-v2/service/sso v1.4.2 h1:pZwkxZbspdqRGzddDB92bkZBoB7lg85sMRE7OqdB3V0= github.com/aws/aws-sdk-go-v2/service/sts v1.7.2 h1:ol2Y5DWqnJeKqNd8th7JWzBtqu63xpOfs1Is+n1t8/4= github.com/aws/smithy-go v1.8.0 h1:AEwwwXQZtUwP5Mz506FeXXrKBe0jA8gVM+1gEcSRooc= +github.com/benbjohnson/clock v1.3.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/bgentry/speakeasy v0.1.0 h1:ByYyxL9InA1OWqxJqqp2A5pYHUrCiAL6K3J+LKSsQkY= github.com/bitly/go-hostpool v0.0.0-20171023180738-a3a6125de932 h1:mXoPYz/Ul5HYEDvkta6I8/rnYM5gSdSV2tJ6XbZuEtY= github.com/bitly/go-simplejson v0.5.0 h1:6IH+V8/tVMab511d5bn4M7EwGXZf9Hj6i2xSwkNEM+Y= @@ -419,6 +434,7 @@ github.com/bugsnag/bugsnag-go v0.0.0-20141110184014-b1d153021fcd h1:rFt+Y/IK1aEZ github.com/bugsnag/osext v0.0.0-20130617224835-0dd3f918b21b h1:otBG+dV+YK+Soembjv71DPz3uX/V/6MMlSyD9JBQ6kQ= github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0 h1:nvj0OLI3YqYXer/kZD8Ri1aaunCxIEsOst1BVJswV0o= github.com/census-instrumentation/opencensus-proto v0.4.1 h1:iKLQ0xPNFxR/2hzXZMrBo8f1j86j5WHzznCCQxV/b8g= +github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw= github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054 h1:uH66TXeswKn5PW5zdZ39xEwfS9an067BirqA+P4QaLI= github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/checkpoint-restore/go-criu/v4 v4.1.0 h1:WW2B2uxx9KWF6bGlHqhm8Okiafwwx7Y2kcpn8lCpjgo= @@ -427,10 +443,15 @@ github.com/chzyer/logex v1.1.10 h1:Swpa1K6QvQznwJRcfTfQJmTE72DqScAa40E+fbHEXEE= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e h1:fY5BOSpyZCqRo5OhCuC+XN+r/bBCmeuuJtjz+bCNIf8= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1 h1:q763qf9huN11kDQavWsoZXJNW3xEE4JJyHa5Q25/sd8= github.com/cilium/ebpf v0.7.0 h1:1k/q3ATgxSXRdrmPfH8d7YK0GfqVsEKZAX9dQZvs56k= +github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag= +github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= github.com/client9/misspell v0.3.4 h1:ta993UF76GwbvJcIo3Y68y/M3WxlpEHPWIGDkJYwzJI= github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58 h1:F1EaeKL/ta07PY/k9Os/UFtwERei2/XzGemhpGnBKNg= github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe h1:QQ3GSy+MqSHxm/d8nCtnAiZdYFd45cYZPs8vOOIYKfk= +github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= +github.com/cncf/xds/go v0.0.0-20220314180256-7f1daf1720fc/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20230105202645-06c439db220b h1:ACGZRIr7HsgBKHsueQ1yM4WaVaXh21ynwqsF8M8tXhA= +github.com/cncf/xds/go v0.0.0-20230105202645-06c439db220b/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cockroachdb/apd v1.1.0 h1:3LFP3629v+1aKXU5Q37mxmRxX/pIu1nijXydLShEq5I= github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5 h1:xD/lrqdvwsc+O2bjSSi3YqY73Ke3LAiSCx49aCesA0E= github.com/cockroachdb/errors v1.2.4 h1:Lap807SXTH5tri2TivECb/4abUkMZC9zRoLarvcKDqs= @@ -446,7 +467,6 @@ github.com/containerd/imgcrypt v1.1.4 h1:iKTstFebwy3Ak5UF0RHSeuCTahC5OIrPJa6vjMA github.com/containerd/nri v0.1.0 h1:6QioHRlThlKh2RkRTR4kIT3PKAcrLo3gIWnjkM4dQmQ= github.com/containerd/stargz-snapshotter/estargz v0.4.1 h1:5e7heayhB7CcgdTkqfZqrNaNv15gABwr3Q2jBTbLlt4= github.com/containerd/ttrpc v1.1.0 h1:GbtyLRxb0gOLR0TYQWt3O6B0NvT8tMdorEHqIQo/lWI= -github.com/containerd/typeurl v1.0.2 h1:Chlt8zIieDbzQFzXzAeBEF92KhExuE4p9p92/QmY7aY= github.com/containerd/zfs v1.0.0 h1:cXLJbx+4Jj7rNsTiqVfm6i+RNLx6FFA2fMmDlEf+Wm8= github.com/containernetworking/cni v1.1.1 h1:ky20T7c0MvKvbMOwS/FrlbNwjEoqJEUUYfsL4b0mc4k= github.com/containernetworking/plugins v1.1.1 h1:+AGfFigZ5TiQH00vhR8qPeSatj53eNGz0C1d3wVYlHE= @@ -458,8 +478,9 @@ github.com/coreos/go-oidc v2.1.0+incompatible h1:sdJrfw8akMnCuUlaZU3tE/uYXFgfqom github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM= github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f h1:JOrtw2xFKzlg+cbHpyrpLDmnN1HqhBfnX7WDiW7eG2c= github.com/coreos/go-systemd/v22 v22.3.2 h1:D9/bQk5vlXQFZ6Kwuu6zaiXJ9oTPe68++AzAJc1DzSI= +github.com/coreos/go-systemd/v22 v22.4.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f h1:lBNOc5arjvs8E5mO2tbpBpLoyyu8B6e44T7hJy6potg= -github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w= +github.com/creack/pty v1.1.17/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/cyphar/filepath-securejoin v0.2.3 h1:YX6ebbZCZP7VkM3scTTokDgBL2TY741X51MTk3ycuNI= github.com/cznic/mathutil v0.0.0-20180504122225-ca4c9f2c1369 h1:XNT/Zf5l++1Pyg08/HV04ppB0gKxAqtZQBRYiYrUuYk= github.com/d2g/dhcp4 v0.0.0-20170904100407-a1d1b6c41b1c h1:Xo2rK1pzOm0jO6abTPIQwbAmqBIOj132otexc1mmzFc= @@ -486,8 +507,12 @@ github.com/edsrzf/mmap-go v0.0.0-20170320065105-0bce6a688712 h1:aaQcKT9WumO6JEJc github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153 h1:yUdfgN0XgIJw7foRItutHYUIhlcKzcSf5vDpdhQAKTc= github.com/emicklei/go-restful v2.9.5+incompatible h1:spTtZBk5DYEvbxMVutUuTyh1Ao2r4iyvLdACqsl/Ljk= github.com/envoyproxy/go-control-plane v0.10.3 h1:xdCVXxEe0Y3FQith+0cj2irwZudqGYvecuLB1HtdexY= +github.com/envoyproxy/go-control-plane v0.10.3/go.mod h1:fJJn/j26vwOu972OllsvAgJJM//w9BV6Fxbg2LuVd34= +github.com/envoyproxy/protoc-gen-validate v0.6.7/go.mod h1:dyJXwwfPK2VSqiB9Klm1J6romD608Ba7Hij42vrOBCo= github.com/envoyproxy/protoc-gen-validate v0.9.1 h1:PS7VIOgmSVhWUEeZwTe7z7zouA22Cr590PzXKbZHOVY= +github.com/envoyproxy/protoc-gen-validate v0.9.1/go.mod h1:OKNgG7TCp5pF4d6XftA0++PMirau2/yoOwVac3AbF2w= github.com/evanphx/json-patch v4.11.0+incompatible h1:glyUF9yIYtMHzn8xaKw5rMhdWcwsYV8dZHIq5567/xs= +github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/felixge/httpsnoop v1.0.1 h1:lvB5Jl89CsZtGIWuTcDM1E/vkVs49/Ml7JJe07l8SPQ= github.com/fogleman/gg v1.3.0 h1:/7zJX8F6AaYQc57WQCyN9cAIz+4bCJGO9B+dyW29am8= github.com/form3tech-oss/jwt-go v3.2.5+incompatible h1:/l4kBbb4/vGSsdtB5nUe8L7B9mImVMaBPw9L/0TBHU8= @@ -506,6 +531,7 @@ github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4 h1:WtGNWLvXpe github.com/go-ini/ini v1.25.4 h1:Mujh4R/dH6YL8bxuISne3xX2+qcQ9p0IxKAP6ExWoUo= github.com/go-kit/kit v0.9.0 h1:wDJmvq38kDhkVxi50ni9ykkdUr1PKgqKOoi01fa0Mdk= github.com/go-kit/log v0.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU= +github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= github.com/go-latex/latex v0.0.0-20210118124228-b3d85cf34e07 h1:OTlfMvwR1rLyf9goVmXfuS5AJn80+Vmj4rTf4n46SOs= github.com/go-logfmt/logfmt v0.5.1 h1:otpy5pqBCBZ1ng9RQ0dPu4PN7ba75Y/aA+UpowDyNVA= github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY= @@ -535,21 +561,26 @@ github.com/golang-jwt/jwt/v4 v4.1.0 h1:XUgk2Ex5veyVFVeLm0xhusUTQybEbexJXrvPNOKkS github.com/golang-jwt/jwt/v4 v4.2.0 h1:besgBTC8w8HjP6NzQdxwKH9Z5oQMZ24ThTrHp3cZ8eU= github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe h1:lXe2qZdvpiX5WZkZR4hgp4KJVfY3nMkvmwbVkpv1rVY= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g= -github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4= github.com/google/flatbuffers v2.0.0+incompatible h1:dicJ2oXwypfwUGnB2/TYWYEKiuk9eYQlQO/AnOHl5mI= +github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= github.com/google/go-containerregistry v0.5.1 h1:/+mFTs4AlwsJ/mJe8NDtKb7BxLtbZFpcn8vDsneEkwQ= github.com/google/go-github/v39 v39.2.0 h1:rNNM311XtPOz5rDdsJXAp2o8F67X9FnROXTvto3aSnQ= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/martian v2.1.0+incompatible h1:/CP5g8u/VJHijgedC/Legn3BAbAaWPgecwXBIDzw5no= github.com/google/martian/v3 v3.2.1 h1:d8MncMlErDFTwQGBK1xhv026j9kqhvw1Qv9IbWT1VLQ= +github.com/google/martian/v3 v3.3.2/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 h1:K6RDEckDVWvDI9JAJYCmNdQXq6neHJOYx3V6jnqNEec= github.com/google/renameio v0.1.0 h1:GOZbcHa3HfsPKPlmyPyN2KEohoMXOhdMbHrvbpl2QaA= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= +github.com/googleapis/enterprise-certificate-proxy v0.2.0/go.mod h1:8C0jb7/mgJe/9KK8Lm7X9ctZC2t60YyIpYEI16jx0Qg= github.com/googleapis/enterprise-certificate-proxy v0.2.1 h1:RY7tHKZcRlk788d5WSo/e83gOyyy742E8GSs771ySpg= +github.com/googleapis/enterprise-certificate-proxy v0.2.1/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= +github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= github.com/googleapis/gax-go/v2 v2.7.0 h1:IcsPKeInNvYi7eqSaDjiZqDDKu5rsmunY0Y1YupQSSQ= +github.com/googleapis/gax-go/v2 v2.7.0/go.mod h1:TEop28CZZQ2y+c0VxMUmu1lV+fQx57QpBWsYpwqHJx8= github.com/googleapis/gnostic v0.5.5 h1:9fHAtK0uDfpveeqqo1hkEZJcFvYXAiCN3UutL8F9xHw= github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8 h1:tlyzajkF3030q6M8SvmJSemC9DTHL/xaMa18b65+JM4= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= @@ -559,18 +590,31 @@ github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0U github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 h1:pdN6V1QBWetyv/0+wjACpqVH+eVULgEjkurDLq3goeM= github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed h1:5upAirOpQc1Q53c0bnx2ufif5kANL7bfZWcc6VJWJd8= github.com/hashicorp/consul/api v1.18.0 h1:R7PPNzTCeN6VuQNDwwhZWJvzCtGSrNpJqfb22h3yH9g= +github.com/hashicorp/consul/api v1.18.0/go.mod h1:owRRGJ9M5xReDC5nfT8FTJrNAPbT4NM6p/k+d03q2v4= github.com/hashicorp/consul/sdk v0.1.1 h1:LnuDWGNsoajlhGyHJvuWW6FVqRl8JOTPqS6CPTsYjhY= +github.com/hashicorp/consul/sdk v0.13.0/go.mod h1:0hs/l5fOVhJy/VdcoaNqUSi2AUs95eF5WKtv+EYIQqE= +github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= +github.com/hashicorp/go-hclog v0.12.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= github.com/hashicorp/go-immutable-radix v1.3.1 h1:DKHmCUm2hRBK510BaiZlwvpD40f8bJFeZnpfm2KLowc= +github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-msgpack v0.5.3 h1:zKjpN5BK/P5lMYrLmBHdBULWbJ0XpYR+7NGzqkZzoD4= +github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA= +github.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= github.com/hashicorp/go-rootcerts v1.0.2 h1:jzhAVGtqPKbwpyCPELlgNWhE1znq+qwJtW5Oi2viEzc= +github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= github.com/hashicorp/go-sockaddr v1.0.0 h1:GeH6tui99pF4NJgfnhp+L6+FfobzVW3Ah46sLo0ICXs= +github.com/hashicorp/go-sockaddr v1.0.2/go.mod h1:rB4wwRAUzs07qva3c5SdrY/NEtAUjGlgmH/UkBUC97A= github.com/hashicorp/go-syslog v1.0.0 h1:KaodqZuhUoZereWVIYmpUgZysurB1kBLX2j0MwMrUAE= github.com/hashicorp/go.net v0.0.1 h1:sNCoNyDEvN1xa+X0baata4RdcpKwcMS6DH+xwfqPgjw= github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc= +github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/logutils v1.0.0 h1:dLEQVugN8vlakKOUE3ihGLTZJRB4j+M2cdTm/ORI65Y= github.com/hashicorp/mdns v1.0.0 h1:WhIgCr5a7AaVH6jPUwjtRuuE7/RDufnUvzIr48smyxs= +github.com/hashicorp/mdns v1.0.4/go.mod h1:mtBihi+LeNXGtG8L9dX59gAEa12BDtBQSp4v/YAJqrc= github.com/hashicorp/memberlist v0.1.3 h1:EmmoJme1matNzb+hMpDuR/0sbJSUisxyqBGG676r31M= +github.com/hashicorp/memberlist v0.5.0/go.mod h1:yvyXLpo0QaGE59Y7hDTsTzDD25JYBZ4mHgHUZ8lrOI0= github.com/hashicorp/serf v0.10.1 h1:Z1H2J60yRKvfDYAOZLd2MU0ND4AH/WDz7xYHDWQsIPY= +github.com/hashicorp/serf v0.10.1/go.mod h1:yL2t6BqATOLGc5HF7qbFkTfXoPIY0WZdWHfEvMqbG+4= github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= github.com/iancoleman/strcase v0.2.0 h1:05I4QRnGpI0m37iZQRuskXh+w77mr6Z41lwQzuHLwW0= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639 h1:mV02weKRL81bEnm8A0HT1/CAelMQDBuQIfLw8n+d6xI= @@ -605,6 +649,7 @@ github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc= github.com/jonboulle/clockwork v0.2.2 h1:UOGuzwb1PwsrDAObMuhUnj0p5ULPj8V/xJ7Kx9qUBdQ= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= +github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/jstemmer/go-junit-report v0.9.1 h1:6QPYqodiu3GuPL+7mfx+NwDdp2eTkp9IfEUpgAwUN0o= github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= @@ -616,7 +661,6 @@ github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 h1:iQTw/8FWTuc7uia github.com/karrick/godirwalk v1.10.3 h1:lOpSw2vJP0y5eLBW906QwKsUK/fe/QDyoqM5rnnuPDY= github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs= github.com/kisielk/errcheck v1.5.0 h1:e8esj/e4R+SAOwFwN+n3zr0nYeCyeweozKfO23MvHzY= -github.com/kisielk/gotool v1.0.0 h1:AV2c/EiW3KqPNT9ZKl07ehoAGi4C5/01Cfbblndcapg= github.com/konsorten/go-windows-terminal-sequences v1.0.3 h1:CE8S1cTafDpPvMhIxNJKvHsGVBgn1xWYf1NbHQhywc8= github.com/kr/fs v0.1.0 h1:Jskdu9ieNAYnjxsi0LbQp1ulIKZV1LAFgK1tWhpZgl8= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515 h1:T+h1c/A9Gawja4Y9mFVWj2vyii2bbUNDw3kt9VxK2EY= @@ -624,23 +668,29 @@ github.com/kr/pty v1.1.8 h1:AkaSdXYQOWeaO3neb8EM634ahkXXe3jYbVh/F9lq+GI= github.com/ktrysmt/go-bitbucket v0.6.4 h1:C8dUGp0qkwncKtAnozHCbbqhptefzEd1I0sfnuy9rYQ= github.com/linuxkit/virtsock v0.0.0-20201010232012-f8cee7dfc7a3 h1:jUp75lepDg0phMUJBCmvaeFDldD2N3S1lBuPwUTszio= github.com/lyft/protoc-gen-star v0.5.3 h1:zSGLzsUew8RT+ZKPHc3jnf8XLaVyHzTcAFBzHtCNR20= +github.com/lyft/protoc-gen-star v0.6.0/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= github.com/mailru/easyjson v0.7.6 h1:8yTIVnZgCoiM1TgqoeTl+LfU5Jg6/xL3QhGQnimLYnA= github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2 h1:JgVTCPf0uBVcUSWpyXmGpgOc62nK5HWUBKAGc3Qqa5k= github.com/markbates/pkger v0.15.1 h1:3MPelV53RnGSW07izx5xGxl4e/sdRD6zqseIk0rMASY= github.com/markbates/safe v1.0.1 h1:yjZkbvRM6IzKj9tlu/zMJLS0n/V351OZWRnF3QfaUxI= github.com/marstr/guid v1.1.0 h1:/M4H/1G4avsieL6BbUwCOBzulmoeKVP5ux/3mQNnbyI= github.com/mattn/go-ieproxy v0.0.1 h1:qiyop7gCflfhwCzGyeT0gro3sF9AIg9HU98JORTkqfI= +github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= github.com/mattn/go-runewidth v0.0.2 h1:UnlwIPBGaTZfPQ6T1IGzPI0EkYAQmT9fAEJ/poFC63o= github.com/mattn/go-shellwords v1.0.12 h1:M2zGm7EW6UQJvDeQxo4T51eKPurbeFbe8WtebGE2xrk= github.com/maxbrunsfeld/counterfeiter/v6 v6.2.2 h1:g+4J5sZg6osfvEfkRZxJ1em0VT95/UOZgi/l7zi1/oE= github.com/miekg/dns v1.0.14 h1:9jZdLNd/P4+SfEJ0TNyxYpsK8N4GtfylBLqtbYN1sbA= +github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= +github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI= github.com/miekg/pkcs11 v1.1.1 h1:Ugu9pdy6vAYku5DEpVWVFPYnzV+bxB+iRdbuFSu7TvU= github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible h1:aKW/4cBs+yK6gpqU3K/oIwk9Q/XICqd3zOX/UFuvqmk= github.com/mitchellh/cli v1.0.0 h1:iGBIsUe3+HZ/AD/Vd7DErOt5sU9fa8Uj7A2s1aggv1Y= -github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= +github.com/mitchellh/cli v1.1.0/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI= github.com/mitchellh/go-testing-interface v1.0.0 h1:fzU/JVNcaqHQEcVFAKeR41fkiLdIPrefOvVG1VZ96U0= +github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= github.com/mitchellh/gox v0.4.0 h1:lfGJxY7ToLJQjHHwi0EX6uYBdK78egf954SQl13PQJc= github.com/mitchellh/iochan v1.0.0 h1:C+X3KsSTLFVBr/tK1eYN/vs4rJcvsiLU338UhYPJWeY= +github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/osext v0.0.0-20151018003038-5e2d6d41470f h1:2+myh5ml7lgEU/51gbeLHfKGNfgEQQIWrlbdaOsidbQ= github.com/moby/locker v1.0.1 h1:fOXqR41zeveg4fFODix+1Ch4mj/gT0NE1XJbp/epuBg= github.com/moby/spdystream v0.2.0 h1:cjW1zVyyoiM0T7b6UoySUFqzXMoqRckQtXwGPiBhOM8= @@ -658,7 +708,6 @@ github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J github.com/nakagami/firebirdsql v0.0.0-20190310045651-3c02a58cfed8 h1:P48LjvUQpTReR3TQRbxSeSBsMXzfK0uol7eRcr7VBYQ= github.com/ncw/swift v1.0.47 h1:4DQRPj35Y41WogBxyhOXlrI37nzGlyEcsforeudyYPQ= github.com/neo4j/neo4j-go-driver v1.8.1-0.20200803113522-b626aa943eba h1:fhFP5RliM2HW/8XdcO5QngSfFli9GcRIpMXvypTQt6E= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5 h1:58+kh9C6jJVXYjt8IE48G2eWl6BjwU5Gj0gqY84fy78= github.com/onsi/ginkgo/v2 v2.7.0 h1:/XxtEV3I3Eif/HobnVx9YmJgk8ENdRsuUmM+fLCFNow= @@ -666,17 +715,21 @@ github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417 h1:3 github.com/opencontainers/runtime-tools v0.0.0-20181011054405-1d69bd0f9c39 h1:H7DMc6FAjgwZZi8BRqjrAAHWoqEr5e5L6pS4V0ezet4= github.com/opencontainers/selinux v1.10.1 h1:09LIPVRP3uuZGQvgR+SgMSNBd1Eb3vlRbGqQpoHsF8w= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c h1:Lgl0gzECD8GnQ5QCWA8o6BtfL6mDH5rQgM4/fX3avOs= -github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= +github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI= github.com/phpdave11/gofpdf v1.4.2 h1:KPKiIbfwbvC/wOncwhrpRdXVj2CZTCFlw4wnoyjtHfQ= github.com/phpdave11/gofpdi v1.0.12 h1:RZb9NG62cw/RW0rHAduVRo+98R8o/G1krcg2ns7DakQ= github.com/pierrec/lz4 v2.0.5+incompatible h1:2xWsjqPFWcplujydGg4WmhC/6fZqK42wMM8aXeqhl0I= github.com/pierrec/lz4/v4 v4.1.17 h1:kV4Ip+/hUBC+8T6+2EgburRtkE9ef4nbY3f4dFhGjMc= -github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 h1:KoWmjvw+nsYOo29YJK9vDA65RGE3NrOnUtO7a+RF9HU= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e h1:aoZm08cpOy4WuID//EZDgcC4zIxODThtZNPirFr42+A= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/sftp v1.13.1 h1:I2qBYMChEhIjOgazfJmV3/mZM256btk6wkCDRmW7JYs= github.com/posener/complete v1.1.1 h1:ccV59UEOTzVDnDUEFdT95ZzHVZ+5+158q8+SJb2QV5w= +github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s= github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021 h1:0XM1XL/OFFJjXsYXlG30spTkV/E9+gmd5GD1w2HE8xM= +github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= +github.com/prometheus/client_golang v1.11.1/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= +github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= github.com/prometheus/tsdb v0.7.1 h1:YZcsG11NqnK4czYLrWd9mpEuAJIHVQLwdrleYfszMAA= github.com/rabbitmq/amqp091-go v1.5.0 h1:VouyHPBu1CrKyJVfteGknGOGCzmOz0zcv/tONLkb7rg= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= @@ -685,11 +738,12 @@ github.com/rogpeppe/fastuuid v1.2.0 h1:Ppwyp6VYCF1nvBTXL3trRso7mXMlRrw9ooo375wvi github.com/rs/xid v1.2.1 h1:mhH9Nq+C1fY2l1XIpgxIiUOfNpRBYH1kKcr+qfKgjRc= github.com/rs/zerolog v1.15.0 h1:uPRuwkWF4J6fGsJ2R0Gn2jB1EQiav9k3S6CSdygQJXY= github.com/russross/blackfriday v1.6.0 h1:KqfZb0pUVN2lYqZUYRddxF4OR8ZMURnJIG5Y3VRLtww= -github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58 h1:nlG4Wa5+minh3S9LVFtNoY+GVRiudA2e3EVfcCi3RCA= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f h1:UFr9zpz4xgTnIE5yIMtWAMngCdZ9p/+q6lTbgelo80M= +github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/safchain/ethtool v0.0.0-20210803160452-9aa261dae9b1 h1:ZFfeKAhIQiiOrQaI3/znw0gOmYpO28Tcu1YaqMa/jtQ= github.com/sagikazarmark/crypt v0.9.0 h1:fipzMFW34hFUEc4D7fsLQFtE7yElkpgyS2zruedRdZk= +github.com/sagikazarmark/crypt v0.9.0/go.mod h1:RnH7sEhxfdnPm1z+XMgSLjWTEIjyK4z2dw6+4vHTMuo= github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww= github.com/sclevine/agouti v3.0.0+incompatible h1:8IBJS6PWz3uTlMP3YBIR5f+KAldcGuOeFkFbUWfBgK4= github.com/sclevine/spec v1.2.0 h1:1Jwdf9jSfDl9NVmt8ndHqbTZ7XCCPbh1jI3hkDBHVYA= @@ -704,10 +758,12 @@ github.com/soheilhy/cmux v0.1.5 h1:jjzc5WVemNEDTLwv9tlmemhC73tI08BNOIGwBOo10Js= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72 h1:qLC7fQah7D6K1B0ujays3HV9gkFtllcxhzImRR7ArPQ= github.com/stefanberger/go-pkcs11uri v0.0.0-20201008174630-78d3cae3a980 h1:lIOOHPEbXzO3vnmx2gok1Tfs31Q8GQqKLc8vVqyQq/I= github.com/stoewer/go-strcase v1.2.0 h1:Z2iHWqGXH00XYgqDmNgQbIBxf3wrNq0F3feEy0ainaU= +github.com/stretchr/testify v1.7.5/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 h1:kdXcSzyDtseVEc4yCz2qF8ZrQvIDBJLl4S1c3GCXmoI= github.com/tchap/go-patricia v2.2.6+incompatible h1:JvoDL7JSoIP2HDE8AbDH3zC8QBPxmzYe32HHy5yQ+Ck= github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4= github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802 h1:uruHq4dN7GR16kFc5fp3d1RIYzJW5onx8Ybykw2YQFA= +github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c h1:u6SKchux2yDvFQnDHS3lPnIRmfVJ5Sxy3ao2SIdysLQ= github.com/ugorji/go v1.1.4 h1:j4s+tAvLfL3bZyefP2SEWmhBzmuIlH/eqNuPdFPgngw= github.com/urfave/cli v1.22.2 h1:gsqYFH8bb9ekPA12kRo0hfjngWQjkJPlN9R0N78BoUo= @@ -734,34 +790,78 @@ gitlab.com/nyarla/go-crypt v0.0.0-20160106005555-d9a5dc2b789b h1:7gd+rd8P3bqcn/9 go.etcd.io/bbolt v1.3.6 h1:/ecaJf0sk1l4l6V4awd65v2C3ILy7MSj+s/x1ADCIMU= go.etcd.io/etcd v0.5.0-alpha.5.0.20200910180754-dd1b699fc489 h1:1JFLBqwIgdyHN1ZtgjTBwO+blA6gVOmZurpiMEsETKo= go.etcd.io/etcd/api/v3 v3.5.6 h1:Cy2qx3npLcYqTKqGJzMypnMv2tiRyifZJ17BlWIWA7A= +go.etcd.io/etcd/api/v3 v3.5.6/go.mod h1:KFtNaxGDw4Yx/BA4iPPwevUTAuqcsPxzyX8PHydchN8= go.etcd.io/etcd/client/pkg/v3 v3.5.6 h1:TXQWYceBKqLp4sa87rcPs11SXxUA/mHwH975v+BDvLU= +go.etcd.io/etcd/client/pkg/v3 v3.5.6/go.mod h1:ggrwbk069qxpKPq8/FKkQ3Xq9y39kbFR4LnKszpRXeQ= go.etcd.io/etcd/client/v2 v2.305.6 h1:fIDR0p4KMjw01MJMfUIDWdQbjo06PD6CeYM5z4EHLi0= +go.etcd.io/etcd/client/v2 v2.305.6/go.mod h1:BHha8XJGe8vCIBfWBpbBLVZ4QjOIlfoouvOwydu63E0= go.etcd.io/etcd/client/v3 v3.5.6 h1:coLs69PWCXE9G4FKquzNaSHrRyMCAXwF+IX1tAPVO8E= +go.etcd.io/etcd/client/v3 v3.5.6/go.mod h1:f6GRinRMCsFVv9Ht42EyY7nfsVGwrNO0WEoS2pRKzQk= go.etcd.io/etcd/pkg/v3 v3.5.0 h1:ntrg6vvKRW26JRmHTE0iNlDgYK6JX3hg/4cD62X0ixk= go.etcd.io/etcd/raft/v3 v3.5.0 h1:kw2TmO3yFTgE+F0mdKkG7xMxkit2duBDa2Hu6D/HMlw= go.etcd.io/etcd/server/v3 v3.5.0 h1:jk8D/lwGEDlQU9kZXUFMSANkE22Sg5+mW27ip8xcF9E= go.mongodb.org/mongo-driver v1.7.0 h1:hHrvOBWlWB2c7+8Gh/Xi5jj82AgidK/t7KVXBZ+IyUA= go.mozilla.org/pkcs7 v0.0.0-20200128120323-432b2356ecb1 h1:A/5uWzF44DlIgdm/PQFwfMkW0JX+cIcQi/SwLAmZP5M= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= +go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.opentelemetry.io/contrib v0.20.0 h1:ubFQUn0VCZ0gPwIoJfBJVpeBlyRMxu8Mm/huKWYd9p0= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.20.0 h1:Q3C9yzW6I9jqEc8sawxzxZmY48fs9u220KXq6d5s3XU= +go.opentelemetry.io/otel v1.13.0/go.mod h1:FH3RtdZCzRkJYFTCsAKDy9l/XYjMdNv6QrkFFB8DvVg= go.opentelemetry.io/otel/exporters/otlp v0.20.0 h1:PTNgq9MRmQqqJY0REVbZFvwkYOA85vbdQU/nVfxDyqg= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.3.0 h1:Ydage/P0fRrSPpZeCVxzjqGcI6iVmG2xb43+IR8cjqM= go.opentelemetry.io/otel/oteltest v0.20.0 h1:HiITxCawalo5vQzdHfKeZurV8x7ljcqAgiWzF6Vaeaw= go.opentelemetry.io/otel/sdk/export/metric v0.20.0 h1:c5VRjxCXdQlx1HjzwGdQHzZaVI82b5EbBgOu2ljD92g= +go.opentelemetry.io/otel/trace v1.13.0/go.mod h1:muCvmmO9KKpvuXSf3KKAXXB2ygNYHQ+ZfI5X08d3tds= +go.opentelemetry.io/proto/otlp v0.15.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= +go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= +go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee h1:0mgffUl7nfd+FpvXMVz4IDEaUSmT1ysygQC7qYo7sG4= +go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw= +golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY= +golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.2.0 h1:BRXPfhNivWL5Yq0BGQ39a2sW6t44aODpfxkWjYdzewE= +golang.org/x/crypto v0.2.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/image v0.0.0-20210216034530-4410531fe030 h1:lP9pYkih3DUSC641giIXa2XqfTIbbbRr0w2EOTA7wHA= golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 h1:VLliZ0d+/avPrXXH+OakdXhpJuEoBZuwh1m2j7U6Iug= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028 h1:4+4C/Iv2U4fMZBiMCc98MG1In4gJY5YRhtpDNeDeHWs= golang.org/x/mod v0.7.0 h1:LapD9S96VoQRhi/GrNTqeBJFrUjs5UHCAtTlgwA5oZA= -golang.org/x/term v0.5.0 h1:n2a8QNdAb0sZNpU9R1ALUXBbY+w51fCQDN+7EdxNBsY= +golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20210410081132-afb366fc7cd1/go.mod h1:9tjilg8BloeKEkVJvy7fQ90B1CfIiPueXVOjqfkSzI8= +golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= +golang.org/x/oauth2 v0.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec= +golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/time v0.1.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.4.0 h1:7mTAgkunk3fr4GAloyyCasadO6h9zSsQZbwvcaIciV4= golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= +golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= gonum.org/v1/gonum v0.9.3 h1:DnoIG+QAMaF5NvxnGe/oKsgKcAc6PcUyl8q0VetfQ8s= gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0 h1:OE9mWmgKkjJyEmDAAtGMPjXu+YNeGvK9VTSHY6+Qihc= gonum.org/v1/plot v0.9.0 h1:3sEo36Uopv1/SA/dMFFaxXoL5XyikJ9Sf2Vll/k6+2E= +google.golang.org/api v0.103.0/go.mod h1:hGtW6nK1AC+d9si/UBhw8Xli+QMOf6xyNAyJw4qU9w0= google.golang.org/api v0.107.0 h1:I2SlFjD8ZWabaIFOfeEDg3pf0BHJDh6iYQ1ic3Yu/UU= +google.golang.org/api v0.107.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= +google.golang.org/api v0.108.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= +google.golang.org/api v0.110.0/go.mod h1:7FC4Vvx1Mooxh8C5HWjzZHcavuS2f6pmJpZx60ca7iI= google.golang.org/cloud v0.0.0-20151119220103-975617b05ea8 h1:Cpp2P6TPjujNoC5M2KHY6g7wfyLYfIWRZaSdIKfDasA= +google.golang.org/genproto v0.0.0-20220329172620-7be39ac1afc7/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20221118155620-16455021b5e6/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221201164419-0e50fba7f41c/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221227171554-f9683d7f8bef/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230124163310-31e0e69b6fc2/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230209215440-0dfe4f8abfcc/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230216225411-c8e22ba71e44/go.mod h1:8B0gmkoRebU8ukX6HP+4wrVQUY1+6PkQ44BSyIlflHA= +google.golang.org/grpc v1.41.0/go.mod h1:U3l9uK9J0sini8mHphKoXyaqDA/8VyGnDee1zzIUK6k= +google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= +google.golang.org/grpc v1.51.0/go.mod h1:wgNDFcnuBGmxLKI/qn4T+m5BtEBYXJPvibbUPsAIPww= +google.golang.org/grpc v1.52.0/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5vorUY= +google.golang.org/grpc v1.52.3/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5vorUY= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0 h1:M1YKkFIboKNieVO5DLUEVzQfGwJD30Nv2jfUgzb5UcE= gopkg.in/airbrake/gobrake.v2 v2.0.9 h1:7z2uVWwn7oVeeugY1DtlPAy5H+KYgB1KeKTnqjNatLo= gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc= diff --git a/internal/cmd/protoc-gen-go-flipt-sdk/main.go b/internal/cmd/protoc-gen-go-flipt-sdk/main.go index cd0e2a6824..f128c674e0 100644 --- a/internal/cmd/protoc-gen-go-flipt-sdk/main.go +++ b/internal/cmd/protoc-gen-go-flipt-sdk/main.go @@ -67,28 +67,29 @@ func generateSDK(gen *protogen.Plugin) { g.P() for _, t := range types { - g.P("func (s SDK) ", t[0], "()", t[0], "{") - g.P("return ", t[0], "{transport: s.transport.", t[1], "()}") + g.P("func (s SDK) ", t[0], "() *", t[0], "{") + g.P("return &", t[0], "{transport: s.transport.", t[1], "()}") g.P("}\n") } } func generateGRPC(gen *protogen.Plugin) { - g := gen.NewGeneratedFile("grpc.sdk.gen.go", importPath) + g := gen.NewGeneratedFile("grpc/grpc.sdk.gen.go", importPath+"/grpc") g.P("// Code generated by protoc-gen-go-flipt-sdk. DO NOT EDIT.") g.P() - g.P("package sdk") + g.P("package grpc") g.P() - g.P("var _ Transport = GRPCTransport{}") + sdk := importPackage(g, importPath) + g.P("var _ ", sdk("Transport"), " = Transport{}") - g.P("type GRPCTransport struct {") + g.P("type Transport struct {") grpc := importPackage(g, "google.golang.org/grpc") g.P("cc ", grpc("ClientConnInterface")) g.P("}\n") - g.P("func NewGRPCTransport(cc ", grpc("ClientConnInterface"), ") GRPCTransport {") - g.P("return GRPCTransport{cc: cc}") + g.P("func NewTransport(cc ", grpc("ClientConnInterface"), ") Transport {") + g.P("return Transport{cc: cc}") g.P("}\n") for _, file := range gen.Files { @@ -103,7 +104,7 @@ func generateGRPC(gen *protogen.Plugin) { if len(file.Services) < 2 { returnType := file.Services[0].GoName + "Client" - g.P("func (t GRPCTransport) ", method, "() ", relativeImport(g, file, returnType), "{") + g.P("func (t Transport) ", method, "() ", relativeImport(g, file, returnType), "{") g.P("return ", relativeImport(g, file, "New"+returnType), "(t.cc)") g.P("}\n") continue @@ -121,7 +122,7 @@ func generateGRPC(gen *protogen.Plugin) { g.P("}\n") } - g.P("func (t GRPCTransport) ", method, "() ", method, "{") + g.P("func (t Transport) ", method, "() ", sdk(method), "{") g.P("return ", groupType, "{cc: t.cc}") g.P("}\n") } @@ -130,7 +131,7 @@ func generateGRPC(gen *protogen.Plugin) { // generateSubSDK generates a .pb.sdk.go file containing a single SDK structure // which represents an entire package from within the entire Flipt SDK API. func generateSubSDK(gen *protogen.Plugin, file *protogen.File) (typ, client string) { - filename := string(file.GoPackageName) + ".pb.sdk.go" + filename := string(file.GoPackageName) + ".sdk.gen.go" g := gen.NewGeneratedFile(filename, importPath) g.P("// Code generated by protoc-gen-go-flipt-sdk. DO NOT EDIT.") g.P() diff --git a/magefile.go b/magefile.go index a89f84c88b..7e7c0bda76 100644 --- a/magefile.go +++ b/magefile.go @@ -26,6 +26,7 @@ var ( "golang.org/x/tools/cmd/goimports", "google.golang.org/grpc/cmd/protoc-gen-go-grpc", "google.golang.org/protobuf/cmd/protoc-gen-go", + "../internal/cmd/protoc-gen-go-flipt-sdk/...", } Default = Build @@ -177,6 +178,7 @@ func Prep() error { // Proto generates protobuf files and gRPC stubs func Proto() error { + mg.Deps(Bootstrap) fmt.Println("Generating proto files...") return sh.RunV("buf", "generate") } diff --git a/sdk/go/auth.pb.sdk.go b/sdk/go/auth.sdk.gen.go similarity index 100% rename from sdk/go/auth.pb.sdk.go rename to sdk/go/auth.sdk.gen.go diff --git a/sdk/go/doc.go b/sdk/go/doc.go new file mode 100644 index 0000000000..1327282448 --- /dev/null +++ b/sdk/go/doc.go @@ -0,0 +1,2 @@ +// package sdk +package sdk diff --git a/sdk/go/example_test.go b/sdk/go/example_test.go new file mode 100644 index 0000000000..57938dae10 --- /dev/null +++ b/sdk/go/example_test.go @@ -0,0 +1,15 @@ +package sdk + +import ( + context "context" +) + +func ExampleNew() { + // see the following subpackages for transport implementations: + // - grpc + var transport Transport + + client := New(transport) + + client.Flipt().GetFlag(context.Background(), "my_flag") +} diff --git a/sdk/go/flipt.pb.sdk.go b/sdk/go/flipt.sdk.gen.go similarity index 100% rename from sdk/go/flipt.pb.sdk.go rename to sdk/go/flipt.sdk.gen.go diff --git a/sdk/go/grpc/example_test.go b/sdk/go/grpc/example_test.go new file mode 100644 index 0000000000..07615ca9f5 --- /dev/null +++ b/sdk/go/grpc/example_test.go @@ -0,0 +1,16 @@ +package grpc + +import ( + "context" + + sdk "go.flipt.io/flipt/sdk" + grpc "google.golang.org/grpc" +) + +func ExampleNewTransport() { + cc, _ := grpc.Dial("localhost:9090") + + transport := NewTransport(cc) + + sdk.New(transport).Meta().GetInfo(context.Background()) +} diff --git a/sdk/go/grpc.sdk.gen.go b/sdk/go/grpc/grpc.sdk.gen.go similarity index 78% rename from sdk/go/grpc.sdk.gen.go rename to sdk/go/grpc/grpc.sdk.gen.go index dca4b058a4..88f2d86db4 100644 --- a/sdk/go/grpc.sdk.gen.go +++ b/sdk/go/grpc/grpc.sdk.gen.go @@ -1,22 +1,23 @@ // Code generated by protoc-gen-go-flipt-sdk. DO NOT EDIT. -package sdk +package grpc import ( flipt "go.flipt.io/flipt/rpc/flipt" auth "go.flipt.io/flipt/rpc/flipt/auth" meta "go.flipt.io/flipt/rpc/flipt/meta" + sdk "go.flipt.io/flipt/sdk" grpc "google.golang.org/grpc" ) -var _ Transport = GRPCTransport{} +var _ sdk.Transport = Transport{} -type GRPCTransport struct { +type Transport struct { cc grpc.ClientConnInterface } -func NewGRPCTransport(cc grpc.ClientConnInterface) GRPCTransport { - return GRPCTransport{cc: cc} +func NewTransport(cc grpc.ClientConnInterface) Transport { + return Transport{cc: cc} } type authClient struct { @@ -43,14 +44,14 @@ func (t authClient) AuthenticationMethodKubernetesServiceClient() auth.Authentic return auth.NewAuthenticationMethodKubernetesServiceClient(t.cc) } -func (t GRPCTransport) AuthClient() AuthClient { +func (t Transport) AuthClient() sdk.AuthClient { return authClient{cc: t.cc} } -func (t GRPCTransport) FliptClient() flipt.FliptClient { +func (t Transport) FliptClient() flipt.FliptClient { return flipt.NewFliptClient(t.cc) } -func (t GRPCTransport) MetaClient() meta.MetadataServiceClient { +func (t Transport) MetaClient() meta.MetadataServiceClient { return meta.NewMetadataServiceClient(t.cc) } diff --git a/sdk/go/meta.pb.sdk.go b/sdk/go/meta.sdk.gen.go similarity index 100% rename from sdk/go/meta.pb.sdk.go rename to sdk/go/meta.sdk.gen.go diff --git a/sdk/go/sdk.gen.go b/sdk/go/sdk.gen.go index 7848917cb8..63cbc76179 100644 --- a/sdk/go/sdk.gen.go +++ b/sdk/go/sdk.gen.go @@ -51,14 +51,14 @@ func New(t Transport, opts ...Option) SDK { return sdk } -func (s SDK) Auth() Auth { - return Auth{transport: s.transport.AuthClient()} +func (s SDK) Auth() *Auth { + return &Auth{transport: s.transport.AuthClient()} } -func (s SDK) Flipt() Flipt { - return Flipt{transport: s.transport.FliptClient()} +func (s SDK) Flipt() *Flipt { + return &Flipt{transport: s.transport.FliptClient()} } -func (s SDK) Meta() Meta { - return Meta{transport: s.transport.MetaClient()} +func (s SDK) Meta() *Meta { + return &Meta{transport: s.transport.MetaClient()} } From 3b21f988d1b059003487349797297f6e3e87f2c4 Mon Sep 17 00:00:00 2001 From: George MacRorie Date: Thu, 9 Mar 2023 15:20:56 +0000 Subject: [PATCH 19/36] feat(sdk/go): add static client token provider --- internal/cmd/protoc-gen-go-flipt-sdk/main.go | 9 +++++++++ sdk/go/sdk.gen.go | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/internal/cmd/protoc-gen-go-flipt-sdk/main.go b/internal/cmd/protoc-gen-go-flipt-sdk/main.go index f128c674e0..214bc2864a 100644 --- a/internal/cmd/protoc-gen-go-flipt-sdk/main.go +++ b/internal/cmd/protoc-gen-go-flipt-sdk/main.go @@ -269,6 +269,15 @@ func WithClientTokenProvider(p ClientTokenProvider) Option { return func(s *SDK) {} } +// StaticClientTokenProvider is a string which is supplied as a static client token +// on each RPC which requires authentication. +type StaticClientTokenProvider string + +// ClientToken returns the underlying string that is the StaticClientTokenProvider. +func (p StaticClientTokenProvider) ClientToken() (string, error) { + return string(p), nil +} + // New constructs and configures a Flipt SDK instance from // the provided Transport implementation and options. func New(t Transport, opts ...Option) SDK { diff --git a/sdk/go/sdk.gen.go b/sdk/go/sdk.gen.go index 63cbc76179..0656e6a7cf 100644 --- a/sdk/go/sdk.gen.go +++ b/sdk/go/sdk.gen.go @@ -39,6 +39,15 @@ func WithClientTokenProvider(p ClientTokenProvider) Option { return func(s *SDK) {} } +// StaticClientTokenProvider is a string which is supplied as a static client token +// on each RPC which requires authentication. +type StaticClientTokenProvider string + +// ClientToken returns the underlying string that is the StaticClientTokenProvider. +func (p StaticClientTokenProvider) ClientToken() (string, error) { + return string(p), nil +} + // New constructs and configures a Flipt SDK instance from // the provided Transport implementation and options. func New(t Transport, opts ...Option) SDK { From 9909380864e06ecd9eaf96ccc7d6ff7e5e1eeca6 Mon Sep 17 00:00:00 2001 From: George MacRorie Date: Thu, 9 Mar 2023 15:21:13 +0000 Subject: [PATCH 20/36] feat(sdk/go): add doc.go --- sdk/go/doc.go | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 64 insertions(+), 1 deletion(-) diff --git a/sdk/go/doc.go b/sdk/go/doc.go index 1327282448..e61ece571e 100644 --- a/sdk/go/doc.go +++ b/sdk/go/doc.go @@ -1,2 +1,65 @@ -// package sdk +// Package sdk is the official Flipt Go SDK. +// The SDK exposes the various RPC for interfacing with a remote Flipt instance. +// Both HTTP and gRPC protocols are supported via this unified Go API. +// +// The main entrypoint within this package is [New], which takes an instance of [Transport] and returns an instance of [SDK]. +// [Transport] implementations can be found in the following sub-packages: +// +// - [go.flipt.io/flipt/sdk/grpc.NewTransport] +// +// # GRPC Transport +// +// The following is an example of creating and instance of the SDK using the gRPC transport. +// +// func main() { +// conn := grpc.Dial("localhost:9090") +// transport := grpc.NewTransport(conn) +// sdk := sdk.New(transport) +// } +// +// # Authenticating the SDK +// +// The remote procedure calls mades by this SDK are authenticated via a [ClientTokenProvider] implementation. +// This can be supplied to [New] via the [WithClientTokenProvider] option. +// +// Currently, there only exists a single implementation [StaticClientTokenProvider]: +// +// func main() { +// provider := sdk.StaticClientTokenProvider("some-flipt-token") +// sdk.New(transport, sdk.WithClientTokenProvider(provider)) +// } +// +// # SDK Services +// +// The Flipt [SDK] is split into three sctions [Flipt], [Auth] and [Meta]. +// Each of which provides access to different parts of the Flipt system. +// +// # Flipt Service +// +// The [Flipt] service is the core Flipt API service. +// This service provides access to evaluate flag configuration within your application. +// As well as exposing the Flipt resource CRUD APIs. +// +// client := sdk.New(transport).Flipt() +// +// The following demonstrates how to evaluate the state of a flag. +// +// result, err := client.Evaluate(ctx, &flipt.EvaluationRequest{ +// RequestId: uuid.NewV4().String(), +// FlagKey: "my_flag_key", +// EntityId: userID, +// Context: map[string]string{ +// "organization": orgName, +// }, +// }) +// +// Additionally, Flipt resources can be accessed and managed directly. +// +// flag, err := client.GetFlag(ctx, "my_flag_key") +// if err != nil { +// panic(err) +// } +// +// fmt.Println(flag.Name) +// fmt.Println(flag.Description) package sdk From 3171aeda785fb67328bca685111d91e61a4d1061 Mon Sep 17 00:00:00 2001 From: George MacRorie Date: Thu, 9 Mar 2023 15:22:24 +0000 Subject: [PATCH 21/36] chore(gowork): go edit -fmt --- go.work | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go.work b/go.work index f1e22f7c3a..25f213a9b9 100644 --- a/go.work +++ b/go.work @@ -2,9 +2,9 @@ go 1.18 use ( . + ./_tools/ ./errors ./internal/cmd/protoc-gen-go-flipt-sdk ./rpc/flipt ./sdk/go - ./_tools/ ) From ab8e70a740417c3ace99ec6332bcab64ef71ec2a Mon Sep 17 00:00:00 2001 From: George MacRorie Date: Thu, 9 Mar 2023 15:59:10 +0000 Subject: [PATCH 22/36] chore(sdk/go): add README --- sdk/go/README.md | 51 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 sdk/go/README.md diff --git a/sdk/go/README.md b/sdk/go/README.md new file mode 100644 index 0000000000..82b587903a --- /dev/null +++ b/sdk/go/README.md @@ -0,0 +1,51 @@ +Flipt Go SDK +------------ + +**WARNING**: This is currently in development. It is released and versioned on the same cadence as Flipt itself. +However, we are actively developing it. That said, we may choose to drop this warning before we make the first release which contains it. + +[![Go Reference](https://pkg.go.dev/badge/go.flipt.io/flipt/sdk.svg)](https://pkg.go.dev/go.flipt.io/flipt/sdk) + +The Flipt Go SDK supports developing applications in Go against Flipt. +It also supports the ability to access the resource management APIs and other sysystem such as authentication and system metadata. + +The SDK supports both Flipts `gRPC` and `HTTP` RPC APIs. +A majority of this client is generated directly from Flipt's `protobuf` definitions. +The [Flipt SDK Generator](../../internal/cmd/protoc-gen-go-flipt-sdk/) can be found locally within this repository. + +## Dependencies + +- Go `>= v1.18` + +## Get the SDK + +``` +go get go.flipt.io/flipt/sdk +``` + +## Construct and Authenticate the SDK + +Constructing an SDK client is easy. + +1. Pick your transport of choice. Both`grpc` or `http` are sub-packages with respective implementations. +2. Pass a constructed `Transport` implementation to `sdk.New(...)`. +3. Optionally pass in a `sdk.ClientTokenProvider` to authenticate your RPC calls. + +```go +package main + +import ( + "go.flipt.io/flipt/sdk" + sdkgrpc "go.flipt.io/flipt/sdk/grpc" + grpc "google.golang.org/grpc" +) + +func main() { + token := sdk.StaticClientTokenProvider("a-flipt-client-token") + + conn := grpc.Dial("localhost:9090") + transport := sdkgrpc.NewTransport(conn) + + client := sdk.New(transport, sdk.WithClientTokenProvider(token)) +} +``` From 9de72dead11b8a916959afe0ae8b5db2048e02ee Mon Sep 17 00:00:00 2001 From: George MacRorie Date: Thu, 9 Mar 2023 16:12:40 +0000 Subject: [PATCH 23/36] fix(sdk/go): drop support for single field message mangling --- internal/cmd/protoc-gen-go-flipt-sdk/main.go | 27 +++++--------------- sdk/go/auth.sdk.gen.go | 17 ++++++------ sdk/go/flipt.sdk.gen.go | 16 ++++++------ 3 files changed, 22 insertions(+), 38 deletions(-) diff --git a/internal/cmd/protoc-gen-go-flipt-sdk/main.go b/internal/cmd/protoc-gen-go-flipt-sdk/main.go index 214bc2864a..37b4aeebd4 100644 --- a/internal/cmd/protoc-gen-go-flipt-sdk/main.go +++ b/internal/cmd/protoc-gen-go-flipt-sdk/main.go @@ -4,12 +4,12 @@ import ( "strings" "google.golang.org/protobuf/compiler/protogen" - "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/types/pluginpb" ) const ( - importPath = "go.flipt.io/flipt/sdk" + importPath = "go.flipt.io/flipt/sdk" + emptyImport = "google.golang.org/protobuf/types/known/emptypb" ) func main() { @@ -186,29 +186,14 @@ func generateSubSDK(gen *protogen.Plugin, file *protogen.File) (typ, client stri returnStatement = []any{"x.transport.", method.GoName, "(ctx, "} ) - switch len(method.Input.Fields) { - case 0: - returnStatement = append(returnStatement, "&", method.Input.GoIdent, "{})") - case 1: - field := method.Input.Fields[0] - v := variableCase(field.GoName) - - var kind []any - switch field.Desc.Kind() { - case protoreflect.MessageKind: - kind = []any{"*", field.Message.GoIdent} - default: - kind = []any{field.Desc.Kind()} - } - - signature = append(append(signature, ", ", v, " "), kind...) - returnStatement = append(returnStatement, "&", method.Input.GoIdent, "{", field.GoName, ": ", v, "})") - default: + if method.Input.GoIdent.GoImportPath != emptyImport { signature = append(signature, ", v *", method.Input.GoIdent) returnStatement = append(returnStatement, "v)") + } else { + returnStatement = append(returnStatement, "&", method.Input.GoIdent, "{})") } - if method.Output.GoIdent.GoImportPath != "google.golang.org/protobuf/types/known/emptypb" { + if method.Output.GoIdent.GoImportPath != emptyImport { g.P(append(signature, ") (*", method.Output.GoIdent, ", error) {")...) g.P(append([]any{"return "}, returnStatement...)...) } else { diff --git a/sdk/go/auth.sdk.gen.go b/sdk/go/auth.sdk.gen.go index f9bb5f66de..6d6afc176a 100644 --- a/sdk/go/auth.sdk.gen.go +++ b/sdk/go/auth.sdk.gen.go @@ -6,7 +6,6 @@ import ( context "context" auth "go.flipt.io/flipt/rpc/flipt/auth" emptypb "google.golang.org/protobuf/types/known/emptypb" - timestamppb "google.golang.org/protobuf/types/known/timestamppb" ) type AuthClient interface { @@ -43,21 +42,21 @@ func (x *AuthenticationService) GetAuthenticationSelf(ctx context.Context) (*aut return x.transport.GetAuthenticationSelf(ctx, &emptypb.Empty{}) } -func (x *AuthenticationService) GetAuthentication(ctx context.Context, id string) (*auth.Authentication, error) { - return x.transport.GetAuthentication(ctx, &auth.GetAuthenticationRequest{Id: id}) +func (x *AuthenticationService) GetAuthentication(ctx context.Context, v *auth.GetAuthenticationRequest) (*auth.Authentication, error) { + return x.transport.GetAuthentication(ctx, v) } func (x *AuthenticationService) ListAuthentications(ctx context.Context, v *auth.ListAuthenticationsRequest) (*auth.ListAuthenticationsResponse, error) { return x.transport.ListAuthentications(ctx, v) } -func (x *AuthenticationService) DeleteAuthentication(ctx context.Context, id string) error { - _, err := x.transport.DeleteAuthentication(ctx, &auth.DeleteAuthenticationRequest{Id: id}) +func (x *AuthenticationService) DeleteAuthentication(ctx context.Context, v *auth.DeleteAuthenticationRequest) error { + _, err := x.transport.DeleteAuthentication(ctx, v) return err } -func (x *AuthenticationService) ExpireAuthenticationSelf(ctx context.Context, expiresAt *timestamppb.Timestamp) error { - _, err := x.transport.ExpireAuthenticationSelf(ctx, &auth.ExpireAuthenticationSelfRequest{ExpiresAt: expiresAt}) +func (x *AuthenticationService) ExpireAuthenticationSelf(ctx context.Context, v *auth.ExpireAuthenticationSelfRequest) error { + _, err := x.transport.ExpireAuthenticationSelf(ctx, v) return err } @@ -94,6 +93,6 @@ type AuthenticationMethodKubernetesService struct { func (s Auth) AuthenticationMethodKubernetesService() AuthenticationMethodKubernetesService { return AuthenticationMethodKubernetesService{transport: s.transport.AuthenticationMethodKubernetesServiceClient()} } -func (x *AuthenticationMethodKubernetesService) VerifyServiceAccount(ctx context.Context, serviceAccountToken string) (*auth.VerifyServiceAccountResponse, error) { - return x.transport.VerifyServiceAccount(ctx, &auth.VerifyServiceAccountRequest{ServiceAccountToken: serviceAccountToken}) +func (x *AuthenticationMethodKubernetesService) VerifyServiceAccount(ctx context.Context, v *auth.VerifyServiceAccountRequest) (*auth.VerifyServiceAccountResponse, error) { + return x.transport.VerifyServiceAccount(ctx, v) } diff --git a/sdk/go/flipt.sdk.gen.go b/sdk/go/flipt.sdk.gen.go index d176595fbb..3f0e36e227 100644 --- a/sdk/go/flipt.sdk.gen.go +++ b/sdk/go/flipt.sdk.gen.go @@ -19,8 +19,8 @@ func (x *Flipt) BatchEvaluate(ctx context.Context, v *flipt.BatchEvaluationReque return x.transport.BatchEvaluate(ctx, v) } -func (x *Flipt) GetFlag(ctx context.Context, key string) (*flipt.Flag, error) { - return x.transport.GetFlag(ctx, &flipt.GetFlagRequest{Key: key}) +func (x *Flipt) GetFlag(ctx context.Context, v *flipt.GetFlagRequest) (*flipt.Flag, error) { + return x.transport.GetFlag(ctx, v) } func (x *Flipt) ListFlags(ctx context.Context, v *flipt.ListFlagRequest) (*flipt.FlagList, error) { @@ -35,8 +35,8 @@ func (x *Flipt) UpdateFlag(ctx context.Context, v *flipt.UpdateFlagRequest) (*fl return x.transport.UpdateFlag(ctx, v) } -func (x *Flipt) DeleteFlag(ctx context.Context, key string) error { - _, err := x.transport.DeleteFlag(ctx, &flipt.DeleteFlagRequest{Key: key}) +func (x *Flipt) DeleteFlag(ctx context.Context, v *flipt.DeleteFlagRequest) error { + _, err := x.transport.DeleteFlag(ctx, v) return err } @@ -92,8 +92,8 @@ func (x *Flipt) DeleteDistribution(ctx context.Context, v *flipt.DeleteDistribut return err } -func (x *Flipt) GetSegment(ctx context.Context, key string) (*flipt.Segment, error) { - return x.transport.GetSegment(ctx, &flipt.GetSegmentRequest{Key: key}) +func (x *Flipt) GetSegment(ctx context.Context, v *flipt.GetSegmentRequest) (*flipt.Segment, error) { + return x.transport.GetSegment(ctx, v) } func (x *Flipt) ListSegments(ctx context.Context, v *flipt.ListSegmentRequest) (*flipt.SegmentList, error) { @@ -108,8 +108,8 @@ func (x *Flipt) UpdateSegment(ctx context.Context, v *flipt.UpdateSegmentRequest return x.transport.UpdateSegment(ctx, v) } -func (x *Flipt) DeleteSegment(ctx context.Context, key string) error { - _, err := x.transport.DeleteSegment(ctx, &flipt.DeleteSegmentRequest{Key: key}) +func (x *Flipt) DeleteSegment(ctx context.Context, v *flipt.DeleteSegmentRequest) error { + _, err := x.transport.DeleteSegment(ctx, v) return err } From 54d1e6e45532a5e23b42c8f421d0a0b97053dc2e Mon Sep 17 00:00:00 2001 From: George MacRorie Date: Thu, 9 Mar 2023 16:16:33 +0000 Subject: [PATCH 24/36] chore(sdk/go): fix README markdown style --- sdk/go/README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/sdk/go/README.md b/sdk/go/README.md index 82b587903a..c754f20f3d 100644 --- a/sdk/go/README.md +++ b/sdk/go/README.md @@ -1,5 +1,4 @@ -Flipt Go SDK ------------- +# Flipt Go SDK **WARNING**: This is currently in development. It is released and versioned on the same cadence as Flipt itself. However, we are actively developing it. That said, we may choose to drop this warning before we make the first release which contains it. @@ -19,7 +18,7 @@ The [Flipt SDK Generator](../../internal/cmd/protoc-gen-go-flipt-sdk/) can be fo ## Get the SDK -``` +```sh go get go.flipt.io/flipt/sdk ``` From 9b13ba5d9a96a4e454812a73562598baad50e830 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Mar 2023 03:05:25 +0000 Subject: [PATCH 25/36] chore(deps): bump google.golang.org/protobuf in /_tools (#1391) Bumps google.golang.org/protobuf from 1.28.2-0.20220831092852-f930b1dc76e8 to 1.29.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- _tools/go.mod | 2 +- _tools/go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/_tools/go.mod b/_tools/go.mod index 9ed01b3091..ccdf9c96e6 100644 --- a/_tools/go.mod +++ b/_tools/go.mod @@ -9,7 +9,7 @@ require ( golang.org/x/tools v0.6.0 golang.org/x/tools/cmd/cover v0.1.0-deprecated google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 - google.golang.org/protobuf v1.28.2-0.20220831092852-f930b1dc76e8 + google.golang.org/protobuf v1.29.0 ) require ( diff --git a/_tools/go.sum b/_tools/go.sum index 1f8bd55ac4..98acf5d706 100644 --- a/_tools/go.sum +++ b/_tools/go.sum @@ -1048,8 +1048,8 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.2-0.20220831092852-f930b1dc76e8 h1:KR8+MyP7/qOlV+8Af01LtjL04bu7on42eVsxT4EyBQk= -google.golang.org/protobuf v1.28.2-0.20220831092852-f930b1dc76e8/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.29.0 h1:44S3JjaKmLEE4YIkjzexaP+NzZsudE3Zin5Njn/pYX0= +google.golang.org/protobuf v1.29.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From 7651ae3b6ba40b451de27b596d4632dd7df052cd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Mar 2023 03:29:50 +0000 Subject: [PATCH 26/36] chore(deps): bump google.golang.org/protobuf from 1.28.1 to 1.29.0 (#1393) Bumps [google.golang.org/protobuf](https://github.com/protocolbuffers/protobuf-go) from 1.28.1 to 1.29.0. - [Release notes](https://github.com/protocolbuffers/protobuf-go/releases) - [Changelog](https://github.com/protocolbuffers/protobuf-go/blob/master/release.bash) - [Commits](https://github.com/protocolbuffers/protobuf-go/compare/v1.28.1...v1.29.0) --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 5c5da29390..a4ee9b163d 100644 --- a/go.mod +++ b/go.mod @@ -55,7 +55,7 @@ require ( golang.org/x/sync v0.1.0 google.golang.org/genproto v0.0.0-20230223222841-637eb2293923 google.golang.org/grpc v1.53.0 - google.golang.org/protobuf v1.28.1 + google.golang.org/protobuf v1.29.0 gopkg.in/segmentio/analytics-go.v3 v3.1.0 gopkg.in/yaml.v2 v2.4.0 ) diff --git a/go.sum b/go.sum index c2f6fb2570..670b3e3ef8 100644 --- a/go.sum +++ b/go.sum @@ -1996,8 +1996,8 @@ google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp0 google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= -google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.29.0 h1:44S3JjaKmLEE4YIkjzexaP+NzZsudE3Zin5Njn/pYX0= +google.golang.org/protobuf v1.29.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From 9184249beffbc85851d976ed708dc607428adf99 Mon Sep 17 00:00:00 2001 From: George MacRorie Date: Mon, 13 Mar 2023 09:31:54 +0000 Subject: [PATCH 27/36] fix(sdk/go): documentation and example corrections --- sdk/go/README.md | 2 +- sdk/go/doc.go | 4 ++-- sdk/go/example_test.go | 4 +++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/sdk/go/README.md b/sdk/go/README.md index c754f20f3d..6468946553 100644 --- a/sdk/go/README.md +++ b/sdk/go/README.md @@ -6,7 +6,7 @@ However, we are actively developing it. That said, we may choose to drop this wa [![Go Reference](https://pkg.go.dev/badge/go.flipt.io/flipt/sdk.svg)](https://pkg.go.dev/go.flipt.io/flipt/sdk) The Flipt Go SDK supports developing applications in Go against Flipt. -It also supports the ability to access the resource management APIs and other sysystem such as authentication and system metadata. +It also supports the ability to access the resource management APIs and other systems, such as authentication and metadata. The SDK supports both Flipts `gRPC` and `HTTP` RPC APIs. A majority of this client is generated directly from Flipt's `protobuf` definitions. diff --git a/sdk/go/doc.go b/sdk/go/doc.go index e61ece571e..d19571220c 100644 --- a/sdk/go/doc.go +++ b/sdk/go/doc.go @@ -31,7 +31,7 @@ // // # SDK Services // -// The Flipt [SDK] is split into three sctions [Flipt], [Auth] and [Meta]. +// The Flipt [SDK] is split into three sections [Flipt], [Auth] and [Meta]. // Each of which provides access to different parts of the Flipt system. // // # Flipt Service @@ -55,7 +55,7 @@ // // Additionally, Flipt resources can be accessed and managed directly. // -// flag, err := client.GetFlag(ctx, "my_flag_key") +// flag, err := client.GetFlag(ctx, &flipt.GetFlagRequest{Key: "my_flag_key"}) // if err != nil { // panic(err) // } diff --git a/sdk/go/example_test.go b/sdk/go/example_test.go index 57938dae10..4e900ad3ff 100644 --- a/sdk/go/example_test.go +++ b/sdk/go/example_test.go @@ -2,6 +2,8 @@ package sdk import ( context "context" + + flipt "go.flipt.io/flipt/rpc/flipt" ) func ExampleNew() { @@ -11,5 +13,5 @@ func ExampleNew() { client := New(transport) - client.Flipt().GetFlag(context.Background(), "my_flag") + client.Flipt().GetFlag(context.Background(), &flipt.GetFlagRequest{Key: "my_flag"}) } From 79135df98e4448196fdda4a188e7ec7cb02b56a5 Mon Sep 17 00:00:00 2001 From: Mark Phelps <209477+markphelps@users.noreply.github.com> Date: Mon, 13 Mar 2023 11:22:44 -0400 Subject: [PATCH 28/36] chore: update readme w better usecase verbiage (#1395) --- README.md | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 33e1f6cad7..b1829177f0 100644 --- a/README.md +++ b/README.md @@ -45,27 +45,31 @@ -
- Flipt is an open-source, self-hosted feature flag application that allows you to run experiments across services in **your** environment. Flipt can be deployed within your existing infrastructure so that you don't have to worry about your information being sent to a third party or the latency required to communicate across the internet. +
+ +## Usecases + Flipt supports use cases such as: -- Simple on/off feature flags to toggle functionality in your applications -- Rolling out features to a percentage of your customers -- Using advanced segmentation to target and serve users based on custom properties that you define +- Enabling [trunk-based development](https://trunkbaseddevelopment.com/) workflows +- Testing new features internally during development before releasing them fully in production +- Ensuring overall system safety by guarding new releases with an emergency kill switch +- Gating certain features for different permission levels allowing you to control who sees what +- Enabling continuous configuration by changing values during runtime without additional deployments
From 164f4def099add190885568a24d70e907f03acbc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Mar 2023 14:33:32 +0000 Subject: [PATCH 29/36] chore(deps): bump golang.org/x/tools from 0.6.0 to 0.7.0 in /_tools (#1394) Bumps [golang.org/x/tools](https://github.com/golang/tools) from 0.6.0 to 0.7.0. - [Release notes](https://github.com/golang/tools/releases) - [Commits](https://github.com/golang/tools/compare/v0.6.0...v0.7.0) --- updated-dependencies: - dependency-name: golang.org/x/tools dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- _tools/go.mod | 12 ++++++------ _tools/go.sum | 24 ++++++++++++------------ 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/_tools/go.mod b/_tools/go.mod index ccdf9c96e6..b5ca2a8bd2 100644 --- a/_tools/go.mod +++ b/_tools/go.mod @@ -6,7 +6,7 @@ require ( github.com/bufbuild/buf v1.9.0 github.com/golangci/golangci-lint v1.49.0 github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.2 - golang.org/x/tools v0.6.0 + golang.org/x/tools v0.7.0 golang.org/x/tools/cmd/cover v0.1.0-deprecated google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 google.golang.org/protobuf v1.29.0 @@ -203,12 +203,12 @@ require ( go.uber.org/zap v1.23.0 // indirect golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect golang.org/x/exp/typeparams v0.0.0-20220613132600-b0d781184e0d // indirect - golang.org/x/mod v0.8.0 // indirect - golang.org/x/net v0.7.0 // indirect + golang.org/x/mod v0.9.0 // indirect + golang.org/x/net v0.8.0 // indirect golang.org/x/sync v0.1.0 // indirect - golang.org/x/sys v0.5.0 // indirect - golang.org/x/term v0.5.0 // indirect - golang.org/x/text v0.7.0 // indirect + golang.org/x/sys v0.6.0 // indirect + golang.org/x/term v0.6.0 // indirect + golang.org/x/text v0.8.0 // indirect google.golang.org/genproto v0.0.0-20230223222841-637eb2293923 // indirect google.golang.org/grpc v1.53.0 // indirect gopkg.in/ini.v1 v1.66.6 // indirect diff --git a/_tools/go.sum b/_tools/go.sum index 98acf5d706..20a56af574 100644 --- a/_tools/go.sum +++ b/_tools/go.sum @@ -711,8 +711,8 @@ golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8= -golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.9.0 h1:KENHtAZL2y3NLMYZeHY9DW8HW8V+kQyJsY/V9JlKvCs= +golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -753,8 +753,8 @@ golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= -golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.8.0 h1:Zrh2ngAOFYneWTAIAPethzeaQLuHwhuBkuV6ZiRnUaQ= +golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -840,12 +840,12 @@ golang.org/x/sys v0.0.0-20220702020025-31831981b65f/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= -golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.5.0 h1:n2a8QNdAb0sZNpU9R1ALUXBbY+w51fCQDN+7EdxNBsY= -golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.6.0 h1:clScbb1cHjoCkyRbWwBEUZ5H/tIFu5TAXIqaZD0Gcjw= +golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -854,8 +854,8 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo= -golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.8.0 h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68= +golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -942,8 +942,8 @@ golang.org/x/tools v0.1.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= golang.org/x/tools v0.1.11/go.mod h1:SgwaegtQh8clINPpECJMqnxLv9I09HLqnW3RMqW0CA4= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM= -golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/tools v0.7.0 h1:W4OVu8VVOaIO0yzWMNdepAulS7YfoS3Zabrm8DOXXU4= +golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= golang.org/x/tools/cmd/cover v0.1.0-deprecated h1:Rwy+mWYz6loAF+LnG1jHG/JWMHRMMC2/1XX3Ejkx9lA= golang.org/x/tools/cmd/cover v0.1.0-deprecated/go.mod h1:hMDiIvlpN1NoVgmjLjUJE9tMHyxHjFX7RuQ+rW12mSA= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= From 1273bed1e1932aa79e51a3f0bc833749cc325970 Mon Sep 17 00:00:00 2001 From: Mark Phelps <209477+markphelps@users.noreply.github.com> Date: Tue, 14 Mar 2023 12:09:21 -0400 Subject: [PATCH 30/36] fix: import for cockroach db (#1399) * fix: import for cockroach db * fix: export for cockroach db --- cmd/flipt/export.go | 2 +- cmd/flipt/import.go | 2 +- go.work.sum | 2 ++ internal/storage/sql/migrator.go | 2 +- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/cmd/flipt/export.go b/cmd/flipt/export.go index 7bb70d5503..60ad6b56f2 100644 --- a/cmd/flipt/export.go +++ b/cmd/flipt/export.go @@ -45,7 +45,7 @@ func runExport(ctx context.Context, logger *zap.Logger) error { switch driver { case sql.SQLite: store = sqlite.NewStore(db, logger) - case sql.Postgres: + case sql.Postgres, sql.CockroachDB: store = postgres.NewStore(db, logger) case sql.MySQL: store = mysql.NewStore(db, logger) diff --git a/cmd/flipt/import.go b/cmd/flipt/import.go index 2f86b1cb10..7569c1c133 100644 --- a/cmd/flipt/import.go +++ b/cmd/flipt/import.go @@ -49,7 +49,7 @@ func runImport(ctx context.Context, logger *zap.Logger, args []string) error { switch driver { case sql.SQLite: store = sqlite.NewStore(db, logger) - case sql.Postgres: + case sql.Postgres, sql.CockroachDB: store = postgres.NewStore(db, logger) case sql.MySQL: store = mysql.NewStore(db, logger) diff --git a/go.work.sum b/go.work.sum index d9142ad4b4..57ce596c14 100644 --- a/go.work.sum +++ b/go.work.sum @@ -825,6 +825,7 @@ golang.org/x/image v0.0.0-20210216034530-4410531fe030 h1:lP9pYkih3DUSC641giIXa2X golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 h1:VLliZ0d+/avPrXXH+OakdXhpJuEoBZuwh1m2j7U6Iug= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028 h1:4+4C/Iv2U4fMZBiMCc98MG1In4gJY5YRhtpDNeDeHWs= golang.org/x/mod v0.7.0 h1:LapD9S96VoQRhi/GrNTqeBJFrUjs5UHCAtTlgwA5oZA= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210410081132-afb366fc7cd1/go.mod h1:9tjilg8BloeKEkVJvy7fQ90B1CfIiPueXVOjqfkSzI8= golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= @@ -838,6 +839,7 @@ golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/time v0.1.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.4.0 h1:7mTAgkunk3fr4GAloyyCasadO6h9zSsQZbwvcaIciV4= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= gonum.org/v1/gonum v0.9.3 h1:DnoIG+QAMaF5NvxnGe/oKsgKcAc6PcUyl8q0VetfQ8s= diff --git a/internal/storage/sql/migrator.go b/internal/storage/sql/migrator.go index 595f3714a6..4245687b85 100644 --- a/internal/storage/sql/migrator.go +++ b/internal/storage/sql/migrator.go @@ -129,7 +129,7 @@ func (m *Migrator) Up(force bool) error { // Down returns the down migrations (drops the database) func (m *Migrator) Down() error { - m.logger.Debug("Running down migrations...") + m.logger.Debug("running down migrations...") if err := m.migrator.Down(); err != nil { return fmt.Errorf("reverting migrations: %w", err) From 1628eca0293661a8819a0fae02c06ac6e06f9a2e Mon Sep 17 00:00:00 2001 From: Yoofi Quansah Date: Tue, 14 Mar 2023 12:59:01 -0500 Subject: [PATCH 31/36] fix: return better error messages for grpc-gateway errors (#1397) * fix: return better error messages for grpc-gateway errors * feat: slip logger in to the special marhsaller, and also add an integration test for the behavior. --- internal/cmd/auth.go | 3 +- internal/cmd/http.go | 4 +-- internal/gateway/gateway.go | 35 ++++++++++++------- .../auth/method/kubernetes/testing/http.go | 2 +- .../server/auth/method/oidc/testing/http.go | 1 + rpc/flipt/marshaller.go | 32 +++++++++++++++-- test/api.sh | 6 ++++ 7 files changed, 63 insertions(+), 20 deletions(-) diff --git a/internal/cmd/auth.go b/internal/cmd/auth.go index b834b06b88..63c6e323aa 100644 --- a/internal/cmd/auth.go +++ b/internal/cmd/auth.go @@ -137,6 +137,7 @@ func registerFunc(ctx context.Context, conn *grpc.ClientConn, fn func(context.Co func authenticationHTTPMount( ctx context.Context, + logger *zap.Logger, cfg config.AuthenticationConfig, r chi.Router, conn *grpc.ClientConn, @@ -172,6 +173,6 @@ func authenticationHTTPMount( r.Group(func(r chi.Router) { r.Use(middleware...) - r.Mount("/auth/v1", gateway.NewGatewayServeMux(muxOpts...)) + r.Mount("/auth/v1", gateway.NewGatewayServeMux(logger, muxOpts...)) }) } diff --git a/internal/cmd/http.go b/internal/cmd/http.go index 81beffbbb9..c60c76df88 100644 --- a/internal/cmd/http.go +++ b/internal/cmd/http.go @@ -55,7 +55,7 @@ func NewHTTPServer( isConsole = cfg.Log.Encoding == config.LogEncodingConsole r = chi.NewRouter() - api = gateway.NewGatewayServeMux() + api = gateway.NewGatewayServeMux(logger) httpPort = cfg.Server.HTTPPort ) @@ -130,7 +130,7 @@ func NewHTTPServer( // mount all authentication related HTTP components // to the chi router. - authenticationHTTPMount(ctx, cfg.Authentication, r, conn) + authenticationHTTPMount(ctx, logger, cfg.Authentication, r, conn) r.Group(func(r chi.Router) { r.Use(func(handler http.Handler) http.Handler { diff --git a/internal/gateway/gateway.go b/internal/gateway/gateway.go index cbbc7bcecf..c25b820c5d 100644 --- a/internal/gateway/gateway.go +++ b/internal/gateway/gateway.go @@ -1,8 +1,11 @@ package gateway import ( + "sync" + "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" "go.flipt.io/flipt/rpc/flipt" + "go.uber.org/zap" "google.golang.org/protobuf/encoding/protojson" ) @@ -13,20 +16,26 @@ import ( // See: rpc/flipt/marshal.go // // See: https://github.com/flipt-io/flipt/issues/664 -var commonMuxOptions = []runtime.ServeMuxOption{ - runtime.WithMarshalerOption(runtime.MIMEWildcard, flipt.NewV1toV2MarshallerAdapter()), - runtime.WithMarshalerOption("application/json+pretty", &runtime.JSONPb{ - MarshalOptions: protojson.MarshalOptions{ - Indent: " ", - Multiline: true, // Optional, implied by presence of "Indent". - }, - UnmarshalOptions: protojson.UnmarshalOptions{ - DiscardUnknown: true, - }, - }), -} +var commonMuxOptions []runtime.ServeMuxOption +var once sync.Once // NewGatewayServeMux builds a new gateway serve mux with common options. -func NewGatewayServeMux(opts ...runtime.ServeMuxOption) *runtime.ServeMux { +func NewGatewayServeMux(logger *zap.Logger, opts ...runtime.ServeMuxOption) *runtime.ServeMux { + once.Do(func() { + commonMuxOptions = []runtime.ServeMuxOption{ + runtime.WithMarshalerOption(runtime.MIMEWildcard, flipt.NewV1toV2MarshallerAdapter(logger)), + runtime.WithMarshalerOption("application/json+pretty", &runtime.JSONPb{ + MarshalOptions: protojson.MarshalOptions{ + Indent: " ", + Multiline: true, // Optional, implied by presence of "Indent". + }, + UnmarshalOptions: protojson.UnmarshalOptions{ + DiscardUnknown: true, + }, + }), + } + + }) + return runtime.NewServeMux(append(commonMuxOptions, opts...)...) } diff --git a/internal/server/auth/method/kubernetes/testing/http.go b/internal/server/auth/method/kubernetes/testing/http.go index 3737a3e03c..1403a794ad 100644 --- a/internal/server/auth/method/kubernetes/testing/http.go +++ b/internal/server/auth/method/kubernetes/testing/http.go @@ -26,7 +26,7 @@ func StartHTTPServer( t.Helper() var ( - mux = gateway.NewGatewayServeMux() + mux = gateway.NewGatewayServeMux(logger) httpServer = &HTTPServer{ GRPCServer: StartGRPCServer(t, ctx, logger, conf), } diff --git a/internal/server/auth/method/oidc/testing/http.go b/internal/server/auth/method/oidc/testing/http.go index 1cdaa0048f..ab4ae20c39 100644 --- a/internal/server/auth/method/oidc/testing/http.go +++ b/internal/server/auth/method/oidc/testing/http.go @@ -34,6 +34,7 @@ func StartHTTPServer( oidcmiddleware = oidc.NewHTTPMiddleware(conf.Session) mux = gateway.NewGatewayServeMux( + logger, runtime.WithMetadata(oidc.ForwardCookies), runtime.WithForwardResponseOption(oidcmiddleware.ForwardResponseOption), ) diff --git a/rpc/flipt/marshaller.go b/rpc/flipt/marshaller.go index 391a83548c..1086411bbe 100644 --- a/rpc/flipt/marshaller.go +++ b/rpc/flipt/marshaller.go @@ -1,10 +1,13 @@ package flipt import ( + "encoding/json" + "errors" "io" grpc_gateway_v1 "github.com/grpc-ecosystem/grpc-gateway/runtime" grpc_gateway_v2 "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" + "go.uber.org/zap" ) var _ grpc_gateway_v2.Marshaler = &V1toV2MarshallerAdapter{} @@ -20,10 +23,11 @@ var _ grpc_gateway_v2.Marshaler = &V1toV2MarshallerAdapter{} // TODO: remove this custom marshaller for Flipt API v2 as we want to use the default v2 marshaller directly. type V1toV2MarshallerAdapter struct { *grpc_gateway_v1.JSONPb + logger *zap.Logger } -func NewV1toV2MarshallerAdapter() *V1toV2MarshallerAdapter { - return &V1toV2MarshallerAdapter{&grpc_gateway_v1.JSONPb{OrigName: false, EmitDefaults: true}} +func NewV1toV2MarshallerAdapter(logger *zap.Logger) *V1toV2MarshallerAdapter { + return &V1toV2MarshallerAdapter{&grpc_gateway_v1.JSONPb{OrigName: false, EmitDefaults: true}, logger} } func (m *V1toV2MarshallerAdapter) ContentType(_ interface{}) string { @@ -34,8 +38,30 @@ func (m *V1toV2MarshallerAdapter) Marshal(v interface{}) ([]byte, error) { return m.JSONPb.Marshal(v) } +// decoderInterceptor intercepts and modifies the outbound error return value for +// inputs that fail to unmarshal against the protobuf. +type decoderInterceptor struct { + grpc_gateway_v1.Decoder + logger *zap.Logger +} + +func (c *decoderInterceptor) Decode(v interface{}) error { + err := c.Decoder.Decode(v) + if err != nil { + c.logger.Debug("JSON decoding failed for inputs", zap.Error(err)) + + if _, ok := err.(*json.UnmarshalTypeError); ok { + return errors.New("invalid values for key(s) in json body") + } + + return err + } + + return nil +} + func (m *V1toV2MarshallerAdapter) NewDecoder(r io.Reader) grpc_gateway_v2.Decoder { - return m.JSONPb.NewDecoder(r) + return &decoderInterceptor{Decoder: m.JSONPb.NewDecoder(r), logger: m.logger} } func (m *V1toV2MarshallerAdapter) NewEncoder(w io.Writer) grpc_gateway_v2.Encoder { diff --git a/test/api.sh b/test/api.sh index 49ce4d3aaa..bd6b07c4b5 100755 --- a/test/api.sh +++ b/test/api.sh @@ -263,6 +263,12 @@ step_5_test_evaluation() status 200 matches "\"flagKey\":\"$flag_key\"" matches "\"match\":false" + + # evaluate returns 400 plus user friendly error message + authedShakedown POST "/api/v1/evaluate" -H 'Content-Type:application/json' -d "{\"flag_key\":\"$flag_key\",\"entity_id\":\"$(uuid_str)\",\"context\":\"hello\"}" + status 400 + matches "\"code\":3" + contains "\"message\":\"invalid values for key(s) in json body\"" } step_6_test_batch_evaluation() From e44a4e6ff11202b8cc1324513eb22a860e6d59b7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Mar 2023 23:13:05 +0000 Subject: [PATCH 32/36] chore(deps): bump google.golang.org/protobuf from 1.29.0 to 1.29.1 (#1400) Bumps [google.golang.org/protobuf](https://github.com/protocolbuffers/protobuf-go) from 1.29.0 to 1.29.1. - [Release notes](https://github.com/protocolbuffers/protobuf-go/releases) - [Changelog](https://github.com/protocolbuffers/protobuf-go/blob/master/release.bash) - [Commits](https://github.com/protocolbuffers/protobuf-go/compare/v1.29.0...v1.29.1) --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index f4e814a4c2..2fc45c144d 100644 --- a/go.mod +++ b/go.mod @@ -55,7 +55,7 @@ require ( golang.org/x/sync v0.1.0 google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 google.golang.org/grpc v1.53.0 - google.golang.org/protobuf v1.29.0 + google.golang.org/protobuf v1.29.1 gopkg.in/segmentio/analytics-go.v3 v3.1.0 gopkg.in/yaml.v2 v2.4.0 ) diff --git a/go.sum b/go.sum index a8626d59d1..5af828a6f8 100644 --- a/go.sum +++ b/go.sum @@ -31,6 +31,7 @@ cloud.google.com/go v0.94.1/go.mod h1:qAlAugsXlC+JWO+Bke5vCtc9ONxjQT3drlTTnAplMW cloud.google.com/go v0.97.0/go.mod h1:GF7l59pYBVlXQIBLx3a761cZ41F9bBH3JUlihCt2Udc= cloud.google.com/go v0.98.0/go.mod h1:ua6Ush4NALrHk5QXDWnjvZHN93OuF0HfuEPq9I1X0cM= cloud.google.com/go v0.99.0/go.mod h1:w0Xx2nLzqWJPuozYQX+hFfCSI8WioryfRDzkoI/Y2ZA= +cloud.google.com/go v0.110.0 h1:Zc8gqp3+a9/Eyph2KDmcGaPtbKRIoqq4YTlL4NMD0Ys= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= @@ -1944,6 +1945,7 @@ google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa/go.mod h1:5CzLGKJ6 google.golang.org/genproto v0.0.0-20220111164026-67b88f271998/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20220314164441-57ef72a4c106/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 h1:DdoeryqhaXp1LtT/emMP1BRJPHHKFi5akj/nbx/zNTA= +google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s= google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= @@ -1994,8 +1996,8 @@ google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp0 google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.29.0 h1:44S3JjaKmLEE4YIkjzexaP+NzZsudE3Zin5Njn/pYX0= -google.golang.org/protobuf v1.29.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.29.1 h1:7QBf+IK2gx70Ap/hDsOmam3GE0v9HicjfEdAxE62UoM= +google.golang.org/protobuf v1.29.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From ac3127ca03216b3dc201be00db490622b7f15754 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Mar 2023 23:19:17 +0000 Subject: [PATCH 33/36] chore(deps): bump google.golang.org/protobuf in /_tools (#1401) Bumps [google.golang.org/protobuf](https://github.com/protocolbuffers/protobuf-go) from 1.29.0 to 1.29.1. - [Release notes](https://github.com/protocolbuffers/protobuf-go/releases) - [Changelog](https://github.com/protocolbuffers/protobuf-go/blob/master/release.bash) - [Commits](https://github.com/protocolbuffers/protobuf-go/compare/v1.29.0...v1.29.1) --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- _tools/go.mod | 2 +- _tools/go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/_tools/go.mod b/_tools/go.mod index b5ca2a8bd2..e216543ce1 100644 --- a/_tools/go.mod +++ b/_tools/go.mod @@ -9,7 +9,7 @@ require ( golang.org/x/tools v0.7.0 golang.org/x/tools/cmd/cover v0.1.0-deprecated google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 - google.golang.org/protobuf v1.29.0 + google.golang.org/protobuf v1.29.1 ) require ( diff --git a/_tools/go.sum b/_tools/go.sum index 20a56af574..b16ec68a70 100644 --- a/_tools/go.sum +++ b/_tools/go.sum @@ -1048,8 +1048,8 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.29.0 h1:44S3JjaKmLEE4YIkjzexaP+NzZsudE3Zin5Njn/pYX0= -google.golang.org/protobuf v1.29.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.29.1 h1:7QBf+IK2gx70Ap/hDsOmam3GE0v9HicjfEdAxE62UoM= +google.golang.org/protobuf v1.29.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From 6510930890f7ec79c09d0542330baea1695a10ad Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Wed, 15 Mar 2023 09:38:35 +0000 Subject: [PATCH 34/36] docs: update README.md [skip ci] --- README.md | 45 +++++++++++++++++++++++---------------------- 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index b1829177f0..748a63b69a 100644 --- a/README.md +++ b/README.md @@ -272,34 +272,35 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - + +
Aaron Raff
Aaron Raff

💻
Rodrigo Chacon
Rodrigo Chacon

💻
Christopher Diehl
Christopher Diehl

💻
Andrew Z Allen
Andrew Z Allen

📖
Sebastien Armand
Sebastien Armand

💻
Dat Tran
Dat Tran

💻
Jon Perl
Jon Perl

⚠️ 💻
Aaron Raff
Aaron Raff

💻
Rodrigo Chacon
Rodrigo Chacon

💻
Christopher Diehl
Christopher Diehl

💻
Andrew Z Allen
Andrew Z Allen

📖
Sebastien Armand
Sebastien Armand

💻
Dat Tran
Dat Tran

💻
Jon Perl
Jon Perl

⚠️ 💻
Or Elimelech
Or Elimelech

💻
giddel
giddel

💻
Eduardo
Eduardo

📖 💻
Itai Schwartz
Itai Schwartz

💻
Ikko Ashimine
Ikko Ashimine

📖
Márk Sági-Kazár
Márk Sági-Kazár

💻
Dan Piet
Dan Piet

💻
Or Elimelech
Or Elimelech

💻
giddel
giddel

💻
Eduardo
Eduardo

📖 💻
Itai Schwartz
Itai Schwartz

💻
Ikko Ashimine
Ikko Ashimine

📖
Márk Sági-Kazár
Márk Sági-Kazár

💻
Dan Piet
Dan Piet

💻
Amay Shah
Amay Shah

💻
kevin-ip
kevin-ip

💻
albertchae
albertchae

💻
Thomas Sickert
Thomas Sickert

📖
Jameel Al-Aziz
Jameel Al-Aziz

📦
George
George

💻
Chase Pierce
Chase Pierce

💻
Amay Shah
Amay Shah

💻
kevin-ip
kevin-ip

💻
albertchae
albertchae

💻
Thomas Sickert
Thomas Sickert

📖
Jameel Al-Aziz
Jameel Al-Aziz

📦
George
George

💻
Chase Pierce
Chase Pierce

💻
ITO Shogo
ITO Shogo

⚠️
ITO Shogo
ITO Shogo

⚠️
Yoofi Quansah
Yoofi Quansah

💻
From 4486e56a14bbf89f9ec95a2c2b8efa46091ae910 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Wed, 15 Mar 2023 09:38:36 +0000 Subject: [PATCH 35/36] docs: update .all-contributorsrc [skip ci] --- .all-contributorsrc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.all-contributorsrc b/.all-contributorsrc index d5a9a0d6c3..ba7cead836 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -204,6 +204,15 @@ "contributions": [ "test" ] + }, + { + "login": "yquansah", + "name": "Yoofi Quansah", + "avatar_url": "https://avatars.githubusercontent.com/u/13950726?v=4", + "profile": "https://github.com/yquansah", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, From 1287cdd2f59990609a70c4a3b35cabcf6c4ab6f0 Mon Sep 17 00:00:00 2001 From: George Date: Wed, 15 Mar 2023 13:33:54 +0000 Subject: [PATCH 36/36] feat(sdk/go): thread client token on RPC calls when provided (#1389) * feat(sdk/go): thread client token on RPC calls when provided * fix(sdk/go): documentation and example corrections --- internal/cmd/protoc-gen-go-flipt-sdk/main.go | 32 ++- sdk/go/auth.sdk.gen.go | 134 +++++++++- sdk/go/flipt.sdk.gen.go | 248 ++++++++++++++++++- sdk/go/meta.sdk.gen.go | 22 +- sdk/go/sdk.gen.go | 15 +- 5 files changed, 431 insertions(+), 20 deletions(-) diff --git a/internal/cmd/protoc-gen-go-flipt-sdk/main.go b/internal/cmd/protoc-gen-go-flipt-sdk/main.go index 37b4aeebd4..f019b371c2 100644 --- a/internal/cmd/protoc-gen-go-flipt-sdk/main.go +++ b/internal/cmd/protoc-gen-go-flipt-sdk/main.go @@ -68,7 +68,10 @@ func generateSDK(gen *protogen.Plugin) { for _, t := range types { g.P("func (s SDK) ", t[0], "() *", t[0], "{") - g.P("return &", t[0], "{transport: s.transport.", t[1], "()}") + g.P("return &", t[0], "{") + g.P("transport: s.transport.", t[1], "(),") + g.P("tokenProvider: s.tokenProvider,") + g.P("}") g.P("}\n") } } @@ -110,7 +113,10 @@ func generateGRPC(gen *protogen.Plugin) { continue } - groupType := variableCase(method) + // the following handles bundling together packages containing more than + // one service definition into a single unexported type which implements + // the combined client interface the SDK generator produces. + groupType := unexport(method) g.P("type ", groupType, " struct {") g.P("cc ", grpc("ClientConnInterface")) g.P("}\n") @@ -161,6 +167,7 @@ func generateSubSDK(gen *protogen.Plugin, file *protogen.File) (typ, client stri g.P("type ", typ, " struct {") g.P("transport ", typ, "Client") + g.P("tokenProvider ", "ClientTokenProvider") g.P("}\n") } @@ -172,11 +179,15 @@ func generateSubSDK(gen *protogen.Plugin, file *protogen.File) (typ, client stri g.P("type ", serviceName, " struct {") g.P("transport ", relativeImport(g, file, srv.GoName+"Client")) + g.P("tokenProvider ", "ClientTokenProvider") g.P("}\n") if !oneServicePackage { g.P("func (s ", typ, ") ", srv.GoName, "()", srv.GoName, "{") - g.P("return ", srv.GoName, "{ transport: s.transport.", srv.GoName+"Client", "()}") + g.P("return ", srv.GoName, "{") + g.P("transport: s.transport.", srv.GoName+"Client", "(),") + g.P("tokenProvider: ", "s.tokenProvider,") + g.P("}") g.P("}") } @@ -195,9 +206,11 @@ func generateSubSDK(gen *protogen.Plugin, file *protogen.File) (typ, client stri if method.Output.GoIdent.GoImportPath != emptyImport { g.P(append(signature, ") (*", method.Output.GoIdent, ", error) {")...) + threadAuth(g, "x", "return nil, err") g.P(append([]any{"return "}, returnStatement...)...) } else { g.P(append(signature, ") error {")...) + threadAuth(g, "x", "return err") g.P(append([]any{"_, err := "}, returnStatement...)...) g.P("return err") } @@ -208,7 +221,18 @@ func generateSubSDK(gen *protogen.Plugin, file *protogen.File) (typ, client stri return } -func variableCase(v string) string { +func threadAuth(g *protogen.GeneratedFile, receiver, returnErr string) { + metadata := importPackage(g, "google.golang.org/grpc/metadata") + g.P("if ", receiver, ".tokenProvider != nil {") + g.P("token, err := ", receiver, ".tokenProvider.ClientToken()") + g.P("if err != nil { ", returnErr, " }") + g.P() + g.P("ctx = ", metadata("AppendToOutgoingContext"), `(ctx, "authorization", "Bearer "+token)`) + g.P("}") + g.P() +} + +func unexport(v string) string { return strings.ToLower(v[:1]) + v[1:] } diff --git a/sdk/go/auth.sdk.gen.go b/sdk/go/auth.sdk.gen.go index 6d6afc176a..d6ba193a08 100644 --- a/sdk/go/auth.sdk.gen.go +++ b/sdk/go/auth.sdk.gen.go @@ -5,6 +5,7 @@ package sdk import ( context "context" auth "go.flipt.io/flipt/rpc/flipt/auth" + metadata "google.golang.org/grpc/metadata" emptypb "google.golang.org/protobuf/types/known/emptypb" ) @@ -17,82 +18,193 @@ type AuthClient interface { } type Auth struct { - transport AuthClient + transport AuthClient + tokenProvider ClientTokenProvider } type PublicAuthenticationService struct { - transport auth.PublicAuthenticationServiceClient + transport auth.PublicAuthenticationServiceClient + tokenProvider ClientTokenProvider } func (s Auth) PublicAuthenticationService() PublicAuthenticationService { - return PublicAuthenticationService{transport: s.transport.PublicAuthenticationServiceClient()} + return PublicAuthenticationService{ + transport: s.transport.PublicAuthenticationServiceClient(), + tokenProvider: s.tokenProvider, + } } func (x *PublicAuthenticationService) ListAuthenticationMethods(ctx context.Context) (*auth.ListAuthenticationMethodsResponse, error) { + if x.tokenProvider != nil { + token, err := x.tokenProvider.ClientToken() + if err != nil { + return nil, err + } + + ctx = metadata.AppendToOutgoingContext(ctx, "authorization", "Bearer "+token) + } + return x.transport.ListAuthenticationMethods(ctx, &emptypb.Empty{}) } type AuthenticationService struct { - transport auth.AuthenticationServiceClient + transport auth.AuthenticationServiceClient + tokenProvider ClientTokenProvider } func (s Auth) AuthenticationService() AuthenticationService { - return AuthenticationService{transport: s.transport.AuthenticationServiceClient()} + return AuthenticationService{ + transport: s.transport.AuthenticationServiceClient(), + tokenProvider: s.tokenProvider, + } } func (x *AuthenticationService) GetAuthenticationSelf(ctx context.Context) (*auth.Authentication, error) { + if x.tokenProvider != nil { + token, err := x.tokenProvider.ClientToken() + if err != nil { + return nil, err + } + + ctx = metadata.AppendToOutgoingContext(ctx, "authorization", "Bearer "+token) + } + return x.transport.GetAuthenticationSelf(ctx, &emptypb.Empty{}) } func (x *AuthenticationService) GetAuthentication(ctx context.Context, v *auth.GetAuthenticationRequest) (*auth.Authentication, error) { + if x.tokenProvider != nil { + token, err := x.tokenProvider.ClientToken() + if err != nil { + return nil, err + } + + ctx = metadata.AppendToOutgoingContext(ctx, "authorization", "Bearer "+token) + } + return x.transport.GetAuthentication(ctx, v) } func (x *AuthenticationService) ListAuthentications(ctx context.Context, v *auth.ListAuthenticationsRequest) (*auth.ListAuthenticationsResponse, error) { + if x.tokenProvider != nil { + token, err := x.tokenProvider.ClientToken() + if err != nil { + return nil, err + } + + ctx = metadata.AppendToOutgoingContext(ctx, "authorization", "Bearer "+token) + } + return x.transport.ListAuthentications(ctx, v) } func (x *AuthenticationService) DeleteAuthentication(ctx context.Context, v *auth.DeleteAuthenticationRequest) error { + if x.tokenProvider != nil { + token, err := x.tokenProvider.ClientToken() + if err != nil { + return err + } + + ctx = metadata.AppendToOutgoingContext(ctx, "authorization", "Bearer "+token) + } + _, err := x.transport.DeleteAuthentication(ctx, v) return err } func (x *AuthenticationService) ExpireAuthenticationSelf(ctx context.Context, v *auth.ExpireAuthenticationSelfRequest) error { + if x.tokenProvider != nil { + token, err := x.tokenProvider.ClientToken() + if err != nil { + return err + } + + ctx = metadata.AppendToOutgoingContext(ctx, "authorization", "Bearer "+token) + } + _, err := x.transport.ExpireAuthenticationSelf(ctx, v) return err } type AuthenticationMethodTokenService struct { - transport auth.AuthenticationMethodTokenServiceClient + transport auth.AuthenticationMethodTokenServiceClient + tokenProvider ClientTokenProvider } func (s Auth) AuthenticationMethodTokenService() AuthenticationMethodTokenService { - return AuthenticationMethodTokenService{transport: s.transport.AuthenticationMethodTokenServiceClient()} + return AuthenticationMethodTokenService{ + transport: s.transport.AuthenticationMethodTokenServiceClient(), + tokenProvider: s.tokenProvider, + } } func (x *AuthenticationMethodTokenService) CreateToken(ctx context.Context, v *auth.CreateTokenRequest) (*auth.CreateTokenResponse, error) { + if x.tokenProvider != nil { + token, err := x.tokenProvider.ClientToken() + if err != nil { + return nil, err + } + + ctx = metadata.AppendToOutgoingContext(ctx, "authorization", "Bearer "+token) + } + return x.transport.CreateToken(ctx, v) } type AuthenticationMethodOIDCService struct { - transport auth.AuthenticationMethodOIDCServiceClient + transport auth.AuthenticationMethodOIDCServiceClient + tokenProvider ClientTokenProvider } func (s Auth) AuthenticationMethodOIDCService() AuthenticationMethodOIDCService { - return AuthenticationMethodOIDCService{transport: s.transport.AuthenticationMethodOIDCServiceClient()} + return AuthenticationMethodOIDCService{ + transport: s.transport.AuthenticationMethodOIDCServiceClient(), + tokenProvider: s.tokenProvider, + } } func (x *AuthenticationMethodOIDCService) AuthorizeURL(ctx context.Context, v *auth.AuthorizeURLRequest) (*auth.AuthorizeURLResponse, error) { + if x.tokenProvider != nil { + token, err := x.tokenProvider.ClientToken() + if err != nil { + return nil, err + } + + ctx = metadata.AppendToOutgoingContext(ctx, "authorization", "Bearer "+token) + } + return x.transport.AuthorizeURL(ctx, v) } func (x *AuthenticationMethodOIDCService) Callback(ctx context.Context, v *auth.CallbackRequest) (*auth.CallbackResponse, error) { + if x.tokenProvider != nil { + token, err := x.tokenProvider.ClientToken() + if err != nil { + return nil, err + } + + ctx = metadata.AppendToOutgoingContext(ctx, "authorization", "Bearer "+token) + } + return x.transport.Callback(ctx, v) } type AuthenticationMethodKubernetesService struct { - transport auth.AuthenticationMethodKubernetesServiceClient + transport auth.AuthenticationMethodKubernetesServiceClient + tokenProvider ClientTokenProvider } func (s Auth) AuthenticationMethodKubernetesService() AuthenticationMethodKubernetesService { - return AuthenticationMethodKubernetesService{transport: s.transport.AuthenticationMethodKubernetesServiceClient()} + return AuthenticationMethodKubernetesService{ + transport: s.transport.AuthenticationMethodKubernetesServiceClient(), + tokenProvider: s.tokenProvider, + } } func (x *AuthenticationMethodKubernetesService) VerifyServiceAccount(ctx context.Context, v *auth.VerifyServiceAccountRequest) (*auth.VerifyServiceAccountResponse, error) { + if x.tokenProvider != nil { + token, err := x.tokenProvider.ClientToken() + if err != nil { + return nil, err + } + + ctx = metadata.AppendToOutgoingContext(ctx, "authorization", "Bearer "+token) + } + return x.transport.VerifyServiceAccount(ctx, v) } diff --git a/sdk/go/flipt.sdk.gen.go b/sdk/go/flipt.sdk.gen.go index 3f0e36e227..967ab548f4 100644 --- a/sdk/go/flipt.sdk.gen.go +++ b/sdk/go/flipt.sdk.gen.go @@ -4,124 +4,370 @@ package sdk import ( context "context" + flipt "go.flipt.io/flipt/rpc/flipt" + metadata "google.golang.org/grpc/metadata" ) type Flipt struct { - transport flipt.FliptClient + transport flipt.FliptClient + tokenProvider ClientTokenProvider } func (x *Flipt) Evaluate(ctx context.Context, v *flipt.EvaluationRequest) (*flipt.EvaluationResponse, error) { + if x.tokenProvider != nil { + token, err := x.tokenProvider.ClientToken() + if err != nil { + return nil, err + } + + ctx = metadata.AppendToOutgoingContext(ctx, "authorization", "Bearer "+token) + } + return x.transport.Evaluate(ctx, v) } func (x *Flipt) BatchEvaluate(ctx context.Context, v *flipt.BatchEvaluationRequest) (*flipt.BatchEvaluationResponse, error) { + if x.tokenProvider != nil { + token, err := x.tokenProvider.ClientToken() + if err != nil { + return nil, err + } + + ctx = metadata.AppendToOutgoingContext(ctx, "authorization", "Bearer "+token) + } + return x.transport.BatchEvaluate(ctx, v) } func (x *Flipt) GetFlag(ctx context.Context, v *flipt.GetFlagRequest) (*flipt.Flag, error) { + if x.tokenProvider != nil { + token, err := x.tokenProvider.ClientToken() + if err != nil { + return nil, err + } + + ctx = metadata.AppendToOutgoingContext(ctx, "authorization", "Bearer "+token) + } + return x.transport.GetFlag(ctx, v) } func (x *Flipt) ListFlags(ctx context.Context, v *flipt.ListFlagRequest) (*flipt.FlagList, error) { + if x.tokenProvider != nil { + token, err := x.tokenProvider.ClientToken() + if err != nil { + return nil, err + } + + ctx = metadata.AppendToOutgoingContext(ctx, "authorization", "Bearer "+token) + } + return x.transport.ListFlags(ctx, v) } func (x *Flipt) CreateFlag(ctx context.Context, v *flipt.CreateFlagRequest) (*flipt.Flag, error) { + if x.tokenProvider != nil { + token, err := x.tokenProvider.ClientToken() + if err != nil { + return nil, err + } + + ctx = metadata.AppendToOutgoingContext(ctx, "authorization", "Bearer "+token) + } + return x.transport.CreateFlag(ctx, v) } func (x *Flipt) UpdateFlag(ctx context.Context, v *flipt.UpdateFlagRequest) (*flipt.Flag, error) { + if x.tokenProvider != nil { + token, err := x.tokenProvider.ClientToken() + if err != nil { + return nil, err + } + + ctx = metadata.AppendToOutgoingContext(ctx, "authorization", "Bearer "+token) + } + return x.transport.UpdateFlag(ctx, v) } func (x *Flipt) DeleteFlag(ctx context.Context, v *flipt.DeleteFlagRequest) error { + if x.tokenProvider != nil { + token, err := x.tokenProvider.ClientToken() + if err != nil { + return err + } + + ctx = metadata.AppendToOutgoingContext(ctx, "authorization", "Bearer "+token) + } + _, err := x.transport.DeleteFlag(ctx, v) return err } func (x *Flipt) CreateVariant(ctx context.Context, v *flipt.CreateVariantRequest) (*flipt.Variant, error) { + if x.tokenProvider != nil { + token, err := x.tokenProvider.ClientToken() + if err != nil { + return nil, err + } + + ctx = metadata.AppendToOutgoingContext(ctx, "authorization", "Bearer "+token) + } + return x.transport.CreateVariant(ctx, v) } func (x *Flipt) UpdateVariant(ctx context.Context, v *flipt.UpdateVariantRequest) (*flipt.Variant, error) { + if x.tokenProvider != nil { + token, err := x.tokenProvider.ClientToken() + if err != nil { + return nil, err + } + + ctx = metadata.AppendToOutgoingContext(ctx, "authorization", "Bearer "+token) + } + return x.transport.UpdateVariant(ctx, v) } func (x *Flipt) DeleteVariant(ctx context.Context, v *flipt.DeleteVariantRequest) error { + if x.tokenProvider != nil { + token, err := x.tokenProvider.ClientToken() + if err != nil { + return err + } + + ctx = metadata.AppendToOutgoingContext(ctx, "authorization", "Bearer "+token) + } + _, err := x.transport.DeleteVariant(ctx, v) return err } func (x *Flipt) GetRule(ctx context.Context, v *flipt.GetRuleRequest) (*flipt.Rule, error) { + if x.tokenProvider != nil { + token, err := x.tokenProvider.ClientToken() + if err != nil { + return nil, err + } + + ctx = metadata.AppendToOutgoingContext(ctx, "authorization", "Bearer "+token) + } + return x.transport.GetRule(ctx, v) } func (x *Flipt) ListRules(ctx context.Context, v *flipt.ListRuleRequest) (*flipt.RuleList, error) { + if x.tokenProvider != nil { + token, err := x.tokenProvider.ClientToken() + if err != nil { + return nil, err + } + + ctx = metadata.AppendToOutgoingContext(ctx, "authorization", "Bearer "+token) + } + return x.transport.ListRules(ctx, v) } func (x *Flipt) CreateRule(ctx context.Context, v *flipt.CreateRuleRequest) (*flipt.Rule, error) { + if x.tokenProvider != nil { + token, err := x.tokenProvider.ClientToken() + if err != nil { + return nil, err + } + + ctx = metadata.AppendToOutgoingContext(ctx, "authorization", "Bearer "+token) + } + return x.transport.CreateRule(ctx, v) } func (x *Flipt) UpdateRule(ctx context.Context, v *flipt.UpdateRuleRequest) (*flipt.Rule, error) { + if x.tokenProvider != nil { + token, err := x.tokenProvider.ClientToken() + if err != nil { + return nil, err + } + + ctx = metadata.AppendToOutgoingContext(ctx, "authorization", "Bearer "+token) + } + return x.transport.UpdateRule(ctx, v) } func (x *Flipt) OrderRules(ctx context.Context, v *flipt.OrderRulesRequest) error { + if x.tokenProvider != nil { + token, err := x.tokenProvider.ClientToken() + if err != nil { + return err + } + + ctx = metadata.AppendToOutgoingContext(ctx, "authorization", "Bearer "+token) + } + _, err := x.transport.OrderRules(ctx, v) return err } func (x *Flipt) DeleteRule(ctx context.Context, v *flipt.DeleteRuleRequest) error { + if x.tokenProvider != nil { + token, err := x.tokenProvider.ClientToken() + if err != nil { + return err + } + + ctx = metadata.AppendToOutgoingContext(ctx, "authorization", "Bearer "+token) + } + _, err := x.transport.DeleteRule(ctx, v) return err } func (x *Flipt) CreateDistribution(ctx context.Context, v *flipt.CreateDistributionRequest) (*flipt.Distribution, error) { + if x.tokenProvider != nil { + token, err := x.tokenProvider.ClientToken() + if err != nil { + return nil, err + } + + ctx = metadata.AppendToOutgoingContext(ctx, "authorization", "Bearer "+token) + } + return x.transport.CreateDistribution(ctx, v) } func (x *Flipt) UpdateDistribution(ctx context.Context, v *flipt.UpdateDistributionRequest) (*flipt.Distribution, error) { + if x.tokenProvider != nil { + token, err := x.tokenProvider.ClientToken() + if err != nil { + return nil, err + } + + ctx = metadata.AppendToOutgoingContext(ctx, "authorization", "Bearer "+token) + } + return x.transport.UpdateDistribution(ctx, v) } func (x *Flipt) DeleteDistribution(ctx context.Context, v *flipt.DeleteDistributionRequest) error { + if x.tokenProvider != nil { + token, err := x.tokenProvider.ClientToken() + if err != nil { + return err + } + + ctx = metadata.AppendToOutgoingContext(ctx, "authorization", "Bearer "+token) + } + _, err := x.transport.DeleteDistribution(ctx, v) return err } func (x *Flipt) GetSegment(ctx context.Context, v *flipt.GetSegmentRequest) (*flipt.Segment, error) { + if x.tokenProvider != nil { + token, err := x.tokenProvider.ClientToken() + if err != nil { + return nil, err + } + + ctx = metadata.AppendToOutgoingContext(ctx, "authorization", "Bearer "+token) + } + return x.transport.GetSegment(ctx, v) } func (x *Flipt) ListSegments(ctx context.Context, v *flipt.ListSegmentRequest) (*flipt.SegmentList, error) { + if x.tokenProvider != nil { + token, err := x.tokenProvider.ClientToken() + if err != nil { + return nil, err + } + + ctx = metadata.AppendToOutgoingContext(ctx, "authorization", "Bearer "+token) + } + return x.transport.ListSegments(ctx, v) } func (x *Flipt) CreateSegment(ctx context.Context, v *flipt.CreateSegmentRequest) (*flipt.Segment, error) { + if x.tokenProvider != nil { + token, err := x.tokenProvider.ClientToken() + if err != nil { + return nil, err + } + + ctx = metadata.AppendToOutgoingContext(ctx, "authorization", "Bearer "+token) + } + return x.transport.CreateSegment(ctx, v) } func (x *Flipt) UpdateSegment(ctx context.Context, v *flipt.UpdateSegmentRequest) (*flipt.Segment, error) { + if x.tokenProvider != nil { + token, err := x.tokenProvider.ClientToken() + if err != nil { + return nil, err + } + + ctx = metadata.AppendToOutgoingContext(ctx, "authorization", "Bearer "+token) + } + return x.transport.UpdateSegment(ctx, v) } func (x *Flipt) DeleteSegment(ctx context.Context, v *flipt.DeleteSegmentRequest) error { + if x.tokenProvider != nil { + token, err := x.tokenProvider.ClientToken() + if err != nil { + return err + } + + ctx = metadata.AppendToOutgoingContext(ctx, "authorization", "Bearer "+token) + } + _, err := x.transport.DeleteSegment(ctx, v) return err } func (x *Flipt) CreateConstraint(ctx context.Context, v *flipt.CreateConstraintRequest) (*flipt.Constraint, error) { + if x.tokenProvider != nil { + token, err := x.tokenProvider.ClientToken() + if err != nil { + return nil, err + } + + ctx = metadata.AppendToOutgoingContext(ctx, "authorization", "Bearer "+token) + } + return x.transport.CreateConstraint(ctx, v) } func (x *Flipt) UpdateConstraint(ctx context.Context, v *flipt.UpdateConstraintRequest) (*flipt.Constraint, error) { + if x.tokenProvider != nil { + token, err := x.tokenProvider.ClientToken() + if err != nil { + return nil, err + } + + ctx = metadata.AppendToOutgoingContext(ctx, "authorization", "Bearer "+token) + } + return x.transport.UpdateConstraint(ctx, v) } func (x *Flipt) DeleteConstraint(ctx context.Context, v *flipt.DeleteConstraintRequest) error { + if x.tokenProvider != nil { + token, err := x.tokenProvider.ClientToken() + if err != nil { + return err + } + + ctx = metadata.AppendToOutgoingContext(ctx, "authorization", "Bearer "+token) + } + _, err := x.transport.DeleteConstraint(ctx, v) return err } diff --git a/sdk/go/meta.sdk.gen.go b/sdk/go/meta.sdk.gen.go index 4287262970..37f0fa8442 100644 --- a/sdk/go/meta.sdk.gen.go +++ b/sdk/go/meta.sdk.gen.go @@ -6,17 +6,37 @@ import ( context "context" meta "go.flipt.io/flipt/rpc/flipt/meta" httpbody "google.golang.org/genproto/googleapis/api/httpbody" + metadata "google.golang.org/grpc/metadata" emptypb "google.golang.org/protobuf/types/known/emptypb" ) type Meta struct { - transport meta.MetadataServiceClient + transport meta.MetadataServiceClient + tokenProvider ClientTokenProvider } func (x *Meta) GetConfiguration(ctx context.Context) (*httpbody.HttpBody, error) { + if x.tokenProvider != nil { + token, err := x.tokenProvider.ClientToken() + if err != nil { + return nil, err + } + + ctx = metadata.AppendToOutgoingContext(ctx, "authorization", "Bearer "+token) + } + return x.transport.GetConfiguration(ctx, &emptypb.Empty{}) } func (x *Meta) GetInfo(ctx context.Context) (*httpbody.HttpBody, error) { + if x.tokenProvider != nil { + token, err := x.tokenProvider.ClientToken() + if err != nil { + return nil, err + } + + ctx = metadata.AppendToOutgoingContext(ctx, "authorization", "Bearer "+token) + } + return x.transport.GetInfo(ctx, &emptypb.Empty{}) } diff --git a/sdk/go/sdk.gen.go b/sdk/go/sdk.gen.go index 0656e6a7cf..c21ec25e31 100644 --- a/sdk/go/sdk.gen.go +++ b/sdk/go/sdk.gen.go @@ -61,13 +61,22 @@ func New(t Transport, opts ...Option) SDK { } func (s SDK) Auth() *Auth { - return &Auth{transport: s.transport.AuthClient()} + return &Auth{ + transport: s.transport.AuthClient(), + tokenProvider: s.tokenProvider, + } } func (s SDK) Flipt() *Flipt { - return &Flipt{transport: s.transport.FliptClient()} + return &Flipt{ + transport: s.transport.FliptClient(), + tokenProvider: s.tokenProvider, + } } func (s SDK) Meta() *Meta { - return &Meta{transport: s.transport.MetaClient()} + return &Meta{ + transport: s.transport.MetaClient(), + tokenProvider: s.tokenProvider, + } }