From 94593c9ccef13356d7f8d317e31d18d0246cefa4 Mon Sep 17 00:00:00 2001 From: Vikram Rangnekar Date: Fri, 29 Nov 2019 22:29:31 -0500 Subject: [PATCH] Add a CONTRIBUTING.md guide for contributors --- CONTRIBUTING.md | 75 +++++++++++++++++++++++ README.md | 28 +++++++-- docs/.vuepress/components/HomeLayout.vue | 10 +-- docs/.vuepress/public/super-graph.png | Bin 0 -> 14281 bytes docs/guide.md | 9 ++- 5 files changed, 107 insertions(+), 15 deletions(-) create mode 100644 CONTRIBUTING.md create mode 100644 docs/.vuepress/public/super-graph.png diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..63d89ad --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,75 @@ +# Contributing to Super Graph + +Super Graph is a very approchable code-base and a project that is easy for almost +anyone with basic GO knowledge to start contributing to. It is also a young project +so a lot of high value work is there for the taking. + +Even the GraphQL to SQL compiler that is at the heart of Super Graph is essentially a text book compiler with clean and easy to read code. The data structures used by the lexer, parser and sql generator are easy to understand and modify. + +Finally we do have a lot of test for critical parts of the codebase which makes it easy for you to modify with confidence. I'm always available for questions or any sort of guidance so feel fee to reach out over twitter or discord. + +* [Getting Started](#get-started) +* [Setting Up the Development Environment](#get-setup) + * [Prerequisites](#prerequisites) + * [Get the Super Graph source](#get-source) + * [Start the development envoirnment ](#start-dev) + * [Testing](#testing) +* [Contributing](#contributing) + * [Guidelines](#guidelines) + * [Code style](#code-style) + +## Getting Started {#get-started} + +- Read the [Getting Started Guide](https://supergraph.dev/guide.html#get-started) + +## Setting Up the Development Environment {#get-setup} + +### Prerequisites + +- Install [Git](https://git-scm.com/) (may be already installed on your system, or available through your OS package manager) +- Install [Go 1.13 or above](https://golang.org/doc/install) +- Install [Docker](https://docs.docker.com/v17.09/engine/installation/) + +### Get the Super Graph source {#get-source} + +The entire build flow uses `Makefile` there is a whole list of sub-commands you +can use to build, test, install, lint, etc. + +```bash +git clone https://github.com/dosco/super-graph +cd ./super-graph +make help +``` + +### Start the development envoirnment {#start-dev} + +The entire development flow is packaged into a `docker-compose` work flow. The below `up` command will launch A Postgres database, a example e-commerce app in Rails and Super Graph in development mode. The `db:seed` Rails task will insert sample data into Postgres. + +```bash +docker-compose -f demo.yml run rails_app rake db:create db:migrate db:seed +docker-compose up +``` + +### Testing and Linting {#testing} + +``` +make lint test +``` + +## Contributing + +- **Pull requests are welcome**, as long as you're willing to put in the effort to meet the guidelines. +- Aim for clear, well written, maintainable code. +- Simple and minimal approach to features, like Go. +- Refactoring existing code now for better performance, better readability or better testability wins over adding a new feature. +- Don't add a function to a module that you don't use right now, or doesn't clearly enable a planned functionality. +- Don't ship a half done feature, which would require significant alterations to work fully. +- Avoid [Technical debt](https://en.wikipedia.org/wiki/Technical_debt) like cancer. +- Leave the code cleaner than when you began. + +### Code style +- We're following [Go Code Review](https://github.com/golang/go/wiki/CodeReviewComments). +- Use `go fmt` to format your code before committing. +- If you see *any code* which clearly violates the style guide, please fix it and send a pull request. No need to ask for permission. +- Avoid unnecessary vertical spaces. Use your judgment or follow the code review comments. +- Wrap your code and comments to 100 characters, unless doing so makes the code less legible. \ No newline at end of file diff --git a/README.md b/README.md index aea9dbe..f395f34 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,24 @@ - + -# Super Graph + -### Build web products faster. Instant GraphQL API without writing any code. Works with Postgres. Also supports Rails apps. +### Build web products faster. Secure high performance GraphQL ![Apache Public License 2.0](https://img.shields.io/github/license/dosco/super-graph.svg) ![Docker build](https://img.shields.io/docker/cloud/build/dosco/super-graph.svg) ![Cloud native](https://img.shields.io/badge/cloud--native-enabled-blue.svg) [![Discord Chat](https://img.shields.io/discord/628796009539043348.svg)](https://discord.gg/6pSWCTZ) + +## What is Super Graph + +Super Graph is a micro-service that instantly and without code gives you a high performance and secure GraphQL API. Your GraphQL queries are auto translated into a single fast SQL query. No more writing API code as you develop your web frontend just make the query you need and Super Graph will do the rest. + +Super Graph has a rich feature set like integrating with your existing Ruby on Rails apps, joining your DB with data from remote APIs, Role and Attribute based access control, Supoport for JWT tokens, Built-in DB mutations and seeding and a lot more. + ![GraphQL](docs/.vuepress/public/graphql.png?raw=true "") + ## The story of Super Graph? After working on several products through my career I find that we spend way too much time on building API backends. Most APIs also require constant updating, this costs real time and money. @@ -25,8 +33,8 @@ This compiler is what sits at the heart of Super Graph with layers of useful fun ## Features -- Role based access control -- Works with Ruby-On-Rails databases +- Role and Attribute based access control +- Works with existing Ruby-On-Rails apps - Automatically learns database schemas and relationships - Full text search and aggregations - Rails authentication supported (Redis, Memcache, Cookie) @@ -41,6 +49,16 @@ This compiler is what sits at the heart of Super Graph with layers of useful fun - Database migrations tool - Database seeding tool +## Get started + +``` +git clone https://github.com/dosco/super-graph +cd ./super-graph +make install + +super-graph new +``` + ## Documentation [supergraph.dev](https://supergraph.dev) diff --git a/docs/.vuepress/components/HomeLayout.vue b/docs/.vuepress/components/HomeLayout.vue index 0dc164d..2a4858b 100644 --- a/docs/.vuepress/components/HomeLayout.vue +++ b/docs/.vuepress/components/HomeLayout.vue @@ -8,15 +8,11 @@

- {{ data.heroText || $title || 'Hello' }} +

-

- {{ data.tagline || $description || 'Welcome to your VuePress site' }} -

- -

- {{ data.longTagline }} +

+ Build web products faster. Secure high performance GraphQL

>J}|2f-Gs`;a0b)DnqSqwELnj~3R{pa$?@npye`Wz!R%OOV^78MPm z1wU%$eo;+~$QQ=;?o3Lw;wBrxCKJV`=D-m3u$*Be1$;4+6K`4m?fBkvG8s0$R%!g@ zx9`h_@crxhv9AhK>!c2s)}eNeYjh+uMK6dI5c}!>A6~FfNiNEhzuEI10{qCAcPz=h zL2_(_m$=wnlmUN8ljlO(j3{k*a-AzoR^ktlBo}pNbN-sRi;obwp%>cX+p()` z8AN;K0o`EVCcD2h$Uc=IsXhUBVPS6+>dlO5);A7#)Q%@VcgvjLeb&o=KZNd9YZWQe%}5rLl0# z<<=m~N#V@ucw5{+1=c*m81bRI>U`byusG)(p}XMLkz^!F0E6v>`8bz9?UHj|!o2Bm z3`6!zWPi+Kk7#6`s_Xj1Yu>s`%E?F3)5AkHKgxOMI@5%GwYAz6_h6jI&}-d!dyt9W z@u6Ic@poia6c~~dMnR?@O0@1=VQurc86?W~yO=PWLwh$?a5!o1oLuwW`}rNIs{Y-9X`w(%j^jiSeZ5OCFLH8 znQlwrthm`-LS0q0DN?wPjQp-3Fp_6l#CTX{n_y4p-Qs$cZZ`(Og*+cSDtALycAGWK zhfPUiUi_ zcvxXkhAQEE>eF#8KVb1nsR-ix4y#+7Ev7UW)QW*M=@rg+sQLpJ={ zIWLUk>uVH>o)&Gb3~VT{2a4FDZt-bB%eN%Xg{A2xs*C1-2sbO-H&=z7DIz=?omOnH z9IsNITg^3mY@*Hv$Y5aw*G4@>p+&}g@@TO9T>E{{0=FMS1-h&)lz9q1bI6f9kceJEjWSYFu{%@vPQw z;vJiEC4IXZYUK)}R{?o>0ZLF|uX-yFi4TTMIZ;uhy{>lTv{s}_<_u3MUr4^oIY7Z$ z+-qf-qWU(hKf`OU@R+Z!Nr&QE~z7d#T0-b|-Z zTcFd_noly_=f$Jgk`$GvYVwb;d=hxdFcS0j-n6(!q*3HkO1iO()o5F(D@eYns%SWv z$sVG>J1DZt;hEh?TOL^mbtdNKmL##L27_*4nAa5Wx>}v;LNZn6tj=GxZV{z4nb>;n zoYdq;3uvF=PkOcZEdX3|V2Ybs!{^<3;hy~ggqg5JAx^RB@Tc+)_8Pn1%tfF0L07vx zZd*U79$qilIb7mF(q)k^N~vnqm@18{O@I6DK_IKEIp|AlbblE{NfW%Vx2Nz{YIl~uixjeyIm+im zj;hXAI-F)(OcftqKhy)Xbm}y^1w`t)295>kr!K*wy8UAZ){nM>S=EhmHxB#44^k)hW~)Fmc{_7MIS5K{HA z!?)5|)T4cNWdb5@?a||oiNM^KV|A$~WCrvkaD!n^bj*$nS7ppmxE>W(+ z=$_q5;S>GQ`3E;R*1+b4$kwMVWqK-t!WLzGEtmVr2h` zLb2VtDpBUwFpLld2XLs{Jrx?BHMbBUnISSiuvQ@O!}=dFplyo~^V%h*yHRvCGssFc zGUp#qo$gx6k$*@Ttyo`l8_Q@nv1E{A8j%i0KPnnlzDBs5uKuzh4DZL7UXU>#R*Pei z*){$gbj_A}!?^b+!gSdX_h8-&_E3{eo%0m6aC*JonwQ~Q655pQPMu9?*~oWQ5uX(V zITrMv#^^?0)xkX{>aO_TKb7ZTr{_cxl<$2uw6p#`?plc26SFsVM{;pnA!CTQIQmeS z0V6Z-w#Kqm_8V+@nT_Ab=gKxKn1Pj=16}Ykg?n{pP$6E9H9&A&9?VnbeII2T?tf<+KS2NV3ja!vt|$Smam&LrDlZ!Xp!**qqXH#G;wl`L+Ub5fY@LhQsm!D zY#t%x527w?FAz_cd(fcTmbD?O)_e}?e`RTm~Jpj=R1*F~VI)@o$g zUFILWXvp0W#5o@<9#OE(+%;~GjxW-9((ckR_d3}a*|N6eN@_d!;%DFUqGAy(F2mHOMs&kP4HklMK3K!t|?sjG@ z9)ts%V1#<(@Ej5OTPEa>54GMgm4xl>OBtykOq}57m5_vDb3fJ`nYiXUf`3*DVd~au zRWG^sp(JoNjt|f9NQ;-|5eGcV{DfR?XHW4dlRw%(SK0VDg>E!Q^jkPn{Kzj6izg=Z zxg|4)aL=N2Li~#NAi&Aotmwxv?pdmFt+1>&vL+k#DaFqdZ(!yL7%{yE=MUUB@=63@~=(X8$5Q)&}>tSwmfpeNyub!Bzr;3DoptXNmn2E+M^yPIwUDF^`Z=x+n?+fgS% z7WnZa-+-OdhpEmr%(~q&vdg5P>sSi?S)OvY12$xS40M^G!@0o*d9%?eAm+YU5Mu2( zqc;PWrsq9-Qop>DTCC^-S-v0);#E#C6iGy*ZOBc1z1@ISCNA|pJV1U6&2oBTXqm|4 zC@nk4e4oE$g>`f`yLKJogl%Nt+S;MgQ1eMA%xV3QKT^HsDr&*i|GGH^ zq?_;PmeB570|HJjY<0UlUpjP{$6p?MxTG$3&2ga~Nv|~TBc6`lQyco#huA1N5B5NH zq@>lSqP@glGP&bgEZx94Z(ROh`)i{sYAl2hwP| zbK80UxEbU9{UPf>h~WwyT$(vyde_rDF70<1^8_bo%h3^3?iZ%;%50$oGZ7I{*%5b5 zxUCFaTRl8HhHCxcqsPfP7Z5~{6F1_t(rlCy)mP983A_~pAjTvK)>SHUN%7wm!?Za^ zJzETpB(y7B09t~YZV6X7YK}v+xlcT4B1sTx%)FgL{nSkIx-z8Q59GJVJ2t``0EM8o zKcrh5|K9VEZnX&4xgC`-x;aq{e!=HBuc&n^(CJ9w{S+s02}!`_M_g)Mam`+nW;B|9 zacfPSFx?^wjySXtJmB|7FoN5)!Tp<$SGe{Rt40S!J>(XGYJ*g(_2(z&dw|I!V{IU^ zLmPa*kTTXHQ0!78AfFJ-p`1XOxu@tt2KaV*TTpMzn_f7yEodp(^EyM$G^w3b!fE?p z2I;BE(vZ+9COeh;ULM49&Nei@pxO*G5sWrs1WeO9hq--0F``qDZ3pcoo`M(`0r|*t z&o)1oJ7T#t(lBDa5QV@LoZdHU9zs8rrJ#S}^CE)syn8NpK3DX&c*?1|PuS={Fi=IY zn?^=?_J?6*O1llJMbZ%9Ev zLHN1&nrQn<*CLyNLflh)T@0+oaHMZn`%%TPydzH&5oGWJDQN#@Ox%YqSY}uLIG+4$ z$qosmEXY=p7mAahhlph^EZQMji%oc8JfPnSJ_U;m8=yTj2(g-zo#BtH1)#-D|wvh+tUql58ti*u?A;m>4?e=x#tq?EJ!Crt?P;UFU}Z zBqx*q%gH@91$G(D-d5V`37S1oi1v*YttDgS-6K4Ev>+Af0jD{-U<8-05TSy^^$$wU z3s6K?x6m=N4L;WRyL48U_$1vV@_6tTla~}iYkVy1rPh9D#yUJ(8c=-uD|wZjiKs6m z-{A-0nKhc$}w84C1DZd>k4_h?`2x_CL1^ z@GHJNJ4YYbNcY-=7%d67LM@o=J3&r9AmI@kpaDwl|ZG$)GMta zBwoWuhXP*%8zZb-xutszK%nJPD_Q)nx=m3(kIaDIPrWf#@7!?I1{MhCT0{*j#&+g? znOOP6#&?8S4)OF&gM%+9QCPe_{hA@R1`^3v@f@MR%~O6!hJttuskit$A=VWE_BJZX zb9Rd?9m~w@&k@ibJ|J1R%u27mm5zy-PlmJ7&cRa%b2hhhUu-(7snq8ucYG9IkZ9V& zbMh|>GYr@0Mkpucflr(0H0z>j!q?$`q6GE|4^ee6)StTW*!=w}&? zV#vKWI++4ph@nF1;}Z>Bh%*i0NKXh14($m>mM)C@63P!FQ|^_%GVNj5-;a3ZW={AE ze?3*HrSkcaTlvBIw`Hd4Se7p?n#JmVoU-pMGy8C^)~op8_!HD->#S~*k`C@JZwT55 z46sz^z%1RqK23}6sS^b8h$Nz;CPtU>qVcpqtu#61r1&QIYwb~g?AN245tQ~&(Uym2 zSB96}B8@t~g z$XUx9LgFtDLCq1v4eLsU;E^CC&G62Y{2JLeR2xah7!y=huLIC@Qf0u zK`<~#DBerDrJycQbb$o65gIDb{LLfa>3NR)hl z|0D+gC6>siebRC&7GW8*Uca>aX7yy_`VRBj%@ewNp7HhkmU>rTjG^57uWy$fCIamK zZ_}7#&UW)i=4e~C|3o6SU{}H!{Z`e@!ray#_bJU#Ar%r?7IERu787Q3ArJLFNV*pT zq?pNtoz*yO>)lW-)8s~dfDTC2{{qvcQdBBj8t00jmMqqb(=p;XIQGpf^z^3-kiMDf z!74Ao){r5Yr}lhuYZ^*^z)Z)J-J|VAWA!3GWfGGD5;^zd356O9N8kBR z)LFI=va|XHbY8wZ@^cxycFwe=2^WSA39X!d(bI0mv05u*lKGVxkBx(obf}5JPFHdY z<98oj1Pep9H@u*yQ6*sZj2o+%`@Qasj;;m|X9#2o4UiIh;!X#b)I?)el|%H@f0c?P z`1tWPvcKmaJN=Qy$z|2-Paw^u|v{*%u9 zof`~|8{|5iepkC8{UydN9W8fN*LN$_o51K5o9bbd@}gpO_*E5kvnwomdIa^so@1zM zzcEl7PVn>52Sw97&J8uB1#QTP%8O-@e2B2ZQ)nuos=6wEh!QD@`OB))qo@bS89T~B~JKvdtqzR?(;MwSv}*}91D@rd+vlR*f+{&#W^(h@$M0nXN5RI^B%O55!0vpHo53vASiUNSpxunB+xI8Nynj zhgXY3+4=%eWnBrP&d)ihUd#}G4C>oetM&JE3_PsE1w*}W8>v531YLeJHPU~rzPKfO z|Jw{OuEwtd=c*5uG|QUgA|}7k9+*O8iY5oQZR9nL<`<21ih6X%{DpNMb0)Aas?Uxe z?nqL`TL9ob2i#lvA)gIs&5%y;i%k3IrYd-JCYR2yL!)iKGd-~}_}+c-Mxu6t^ZX7r zVX1oJGWvkf6mZf*{Pfa=Gc^257jxLrk@6q85pro+=d3)2G zZ1+`PTWj-b_lm%sH-0rV4>qM@_;U=5Uu&yl;r-Nua9!BRdB+&i+1*B4i*FxPWht_A zs06Y)vg{9{Pcu6gdQW(u;y`63o7Qm`9znfVaiq=(lhxjD*;rE%K1tt73Uuqh;^DNfB5E9!6*`) z9V4^&KmurqoO6foAZp*w5UKD?)WOo9aV*%L<}~XPXmYYX$2}MDN$(2`w!oAVXLF(* zO)$*cMX#l)^7+T;)6`A>lkHlfI0K6$J+U>F@qnSkeaxKZtNYhAILjKnHh2XFH;%#% zB=t^MdI}~y5`_6ScbFR;(KRy>Fg%r#`gevn_75Sr@!Wf7-O(( zexF6)%oIfY$7dCvf`0YV8B3n7X7oS#iP9ul}F=i^%gvckdV0EEz#j>8gWRznxLfT`h5}t6M5XHfN#)M>xTb=hQCL~(9&H~IhY_q(Oqk- z7YpJ&tCYqQ^#s?O#2E#5)Jt3~1lMi(N|QQ(B#k^KLY=@G<$I>-f3K*;R7BfE^6;^n z@zq(ECqT49yGjXt<@~@^&}-FFfgp58oQ$L%yL+_kR}2`*#JQHP#gN#Bki5K2Pll(G z^t&<4xj?V23TNFxcz5s3ptr~4zc3d%YB!R3Jot;<()M;HN3-85{8Vp6)#{0*`l%ay z6FIi!uFB|KCziXOz6KufaoOvaKLP@17?ikJb{{%8-!tuPP8SfIR?bVFe&+x)j}*~g zdB_cof(3PYugtiB?^&jut?VAe@m4^epdfy!Iw3z|;LEMEQkZH2I22br8+FWfI`Y=` znaDxN%RpRj>t5x(ZhCofW38@c-FBJRMzqf$t)8FQ&c|6s9Oeu2%qGVpeP>0YLS3sGN=LW*|C)E@O`C2fS=s-t*4$T z#U+3yF$DD>T z6S2Lm`c=%Fa{AW(eg-Y_rDAgLW%0`FY&5z1E2+A#U&G zV6-uSf6jsEL^Sz{Bv*~BHu+8F4TY&r@lmv1p6&6e25h@?O^XG!yY_U?ow^0{yBK^# zL?G`nJWtmv6Cgl>PTvkAbjXbU%%gGJpAdP1KDsw5nYL!u)PQt}2bd3?D5;@c;V*e%>8=perje^%I<>PPCT6xG!^Qeu zen*@t=3qObddE?c4-{C`Nqg}fAz@Lbc4td2Lv!qE>WWA(fuHr~wec(u>Lac8UDgOr zTQq)pr@7)7+JK>9EA)cvq0 z1o;mrsaL0T@+UGlG}Ij-CnJ^q-*K6C+=n2*YMh^kE`A-=&>Z2mH1Jo~6hu(b{k|gg z08jYqq!*QO${{4(W6OBRrO0{5+v?ucQZWAm=4x=nc`bCZbOAnszjDtDB@7?hzPyWs zY`Jp->&M7`U&&TCl zEtrP>QjUkLzydF$`7QIbR9&o(4D~KBIEo_}i|uJnN4j&>QwTu}Jcd`x)iXH;0@+EB z7|N$z65b?$*=ww}H^wG%SRF$awj?g$SYJ%CT>HBKbSfD-VlWLsc}_AeYT}D`-d+O# zB3jL^Hu4kXp_|QSut!)`Y!uRN)ERB4e+5-cT-ZUXtKN*?dJjK`K}Gq;zdBRr01k&0 z*3htb3ct@JIF0D^#?vuZMIxb@C%Lgd(XgB|%7B`Feh+TA1QNegg zrq7g$)PLEI;C6}dDAz0?_#75W#GGV1@{ykmvll*Kskda^lb$~}g;Z6fdlKK3wsv2h9pO!^r1OsM(C}U|qbRQs_3_Or$B(@c347%4EFq6X z*L0Mk^&~Mn-}<@wzEv)}-gG_-@+ zgUfKwJd>@q@$6tFUTQ2l;w(Q+G&CXIgL`>h2n=71Pqz%2I6K>4>8Bmt2fcIhh3()& zJFd2O1+U~mWvsjIf}MkT5batnn&;LubhJI-ks#o8XT+^NPZne?|BkEhBo3qrbfp3M z$>gxI_#;>Y<1RD?{BkvN&XXyAoS|O{h}Bg$Is5XYrqvZE8X=LHI4Ty+Dm*I?BE1uG zY1dthPxdfN=jU&&{HUA$jf-6C^Bom;;WE9cM$7vdzs7r)<>-#joo|^1#vy`nAM=Xp zbj$uFszdhM*)3bF{b8;F|J-4t6E5Fi#JD#GcI8Zu`{?J;y6&!(Wr$SK9#uds(0+ZT zhR{8pHtRkEj{DSA4s8NE?%AW;=&Mb52}5{W1T|x?{sMl*UW=w{MN1$qlr$+Z;6IKf z9^5x9tX*%QpHq9alX@KGRl(DgdZUnQ%98%m$trJ=VDW`)X)4P@znF`Oq0t=41L5e3 zg;3Ijk5E{msjnMRJYY{k^gnP(ssyrp5GkNhq^%RMKMjzwGy;m5)SR96)2^)E(9qY6 zPZE7Lii6BLAbdGoRKo!&?5%l4UJkD~*))oKa!itLWBwP-QE~P?Y9Y*Ei6qbcGaW}k zEyI|*Y@W%DJO1nQHtzuIZ7F+>HHtCsHKox!<~eI7@2RE+5 zANOa9vxReK+ecgS|8J+m8SQGcQ$v?pH zh`c-oX$I;g6roIV( zWJtR`JB9s@Qt`sA@8MQE3mK=B4PY#qUvQySy|Yae9WDbs)MCBtImTzsR^Uiv6tk>(l!sWv%5?p<_Raa5i3P z=VFB$tVqV1PokWMnRjGDQ&;xyAbxh(JCWbzP2p+FcHV{hI7{CLHgeQeZbd?EnS!O} z)f%?#Z-|biZypO0al*XsIlA}y8-s~9NW5OB)}4R-)G+7bBiK_(m3&bLyMH||>m?24PWJU%B* z=Nb}Ry?$_g#1zeMXUNw__z-P7waD76JZ4Si>8L$fw4FGeYqQWpGQuO4=tb+TT*WUn z7Mdav4Y)?L#h@#FXAq0U{SM#gV3JL~cgNs0`w$;wq81$Lzh_Eg{L3}bO`0wIKTbqV z;*6qQYqIdm?jIvP-4xOGLUpMtuF_9F^%yja^@#ttP^5E>Q7Lp2g(b@;f5F-c-G&~5 zo|B+)1m~{r3^h=fz9@@)ZQllCY6tFx@~kEX+Mu2#3E~U-f2B0DL6UDaC`bV2t=zW` zUx;{zRY*v#@`n$UNunq4t<_=TM92yK&Nlx!m+!pvF!bEDqv~-_Xpk)MytP%FLW>n;L3O$WQl07C`B_N$oMdmD{zWJ-`IA%!h>({#?qhEP`4hibQ?j!kmZ#Hq#6?{eD!FUDv{qO4i1Nq^(Hk$*Hg# zCe}p^pBHR!_1UdQII&4XHol$6^zc2|{c)zdE|op!+*aX_5t{G)KgU6YkwLyNe(0AZ zBeLnQIZPHEf{%NB#i1&*0f^xT^!_E;8oZQUQ zmfhzG=B7zFxqr5^)f)+|Is4a+n-qyk{=(m#ne-M&UWpkckbuWJ*Hmj`-y9WE@f)`H z6~6!rL2Wv{INgu2akwo$BHK&mRRw-ER6S%49w`G4K!2F<4O!W|jEdMGPc&WkDedYV z9ei9uWun5%_G*_HqdfK=xcjaZE0w zrqc97x6drY?DxL_*BG`8LdO}N)E|s{A7OImxvPsUj+^v+=CK{Vf2AH(mpISmnTB{{ zj~LKR0l9p>rv+d0aWCyBSByz+VMZ47>UjBJF8m z&53h#kIVQF9stww6;?p(*_}Su-LOSF=X9UwKg<6{v^hhKS>_5iz`H!mek3U`0-2@Q zbJ)x?(?+uBB`fl;&{fTD5TMo`DJo$V$+(&7vp^+H;9Yiz^euJOP=R^c;!{U4QHM3b zPR1ETeE!dJO*+r`>qn3=40Tq08e6Ob-C)(z@|-qtO-u~T8xmZB5@Olt3wK#*mt|-- z;qGXwus6553KL1fe9}yOWko{fcd1MMBSi@B#S0!fnSa_csSFn#O|hB(%?C+*H2>#T zv%z_m+$A@xA&dd9Gb&V<$aLY$TbEp7hlYMES4~$WLwEQAJaoHJk2l{p&(w>wtkeAUSn2pGjuaqQXWxiF;CLkljIxNx!57GEIZ*?PaES%7}mHBZU6A zDy8@~J>(rlJLnj9Ci`N-?@;U68H;MM$m_kb6yA~xI}NPusF2bT_xx69Ia{GHzVU%n1ro196pA7 z>&H@MC9;DiH~M@*wq)R}w$fLd- zrN&CnD~}uVFz0otZYfRMQB!B0<%KLz1`!AEdp7lj4$rU1$_f7xxVYAq(Ls<|2Bawd_ZE(;BAi!DbX&gDsEZsf14bQ5*WCVJyrGm3e-CeI zd$)rK+#;ihONOZGj-D;)AxgtdtXIYktEUUW0UYYjp;U|e3p^9U^Fi@}AU>uqWbZ^o zUx6)Y4fuI<+YoC{7o$=ew;4d)np<=Wz`FCjylHoWJhM<6PKhD#>(RwVtqX*OZ~cRn}U3 zkiJ~gh@}&Mw7#eBD_HJX?h&C}9oK_LE}jxEAcPvG=jfsI;N?<+6vKbR#!z9^X8KB` zqlF0;b8aiNP0Juqth%%a=6h6^RId@>11}vZA_(4W6*a7yZSXFBt=+50)P1ywGu z%;_}LZ6Wn}<>@O~+7A^f$k^sL=^(pZrMDi=A5Q5YG*(j8tsb#Thet2EXTZO&Yhst67>Y9@vp^=Q|SSLq(16Du`S6e<(2_$T>q^ARn{&t zC%S#N$Nsz?9T>l`Dg@}}$23=oLEpOnwgh~Sd)sx+_Q@0nf3%vj2TrNJEZQs%d*bc9 z`VlM>=UrPk+0*$AHWE42cy~g5a{s$3&{ydFp<>tfzc#7HJ!f_QWO4Tim1) zL4;$8L4O-B7%bSpe3f2J9kRqp;mw8tHy0*hGUzW7T8p1-)Y(Ghv(~wXxxP9{8HEN3 z0N)_hS)<$^Py2F;os>aN|5nz4pp2oM#mOwkaqUYACtS)BN#i%F9!@X8=2aE^PIS}# ziA*V_X2%i)Zsv5fD^5UM^W%17yVzKfOQ?<}_8g>I;NrqrLl@4BB)=??`JG`-=!*Vh zxQ#vL?I!{i*G)m@Us!jDHAZix0=-dcW2Glti6n~B{jN)0UlGrED`h~IJwbJ`^DXB- z{pA9+OW4|2H8uXVG9bzny2_zKk}&f9-u?O7gvIG%J&P1NZU@^`rx~)mzCF9?P^{aE z_J@L|t~`Vs`uqMe!5csU0f>LyN#N;Bw}w?Bpw<6=%9 z8V7^S7d$}4#VuO;znfEi=I|Kh+IjZ+1lq8$pgNwG)EiX&c4ztOGs0mIWlWHi#+UeF z$S@&!A|vT8ybqz=DqY_wo{cOrZV$y$`A>2Cx6daQ8$RiGNOq@Q6)H4r^SR-Dn@LUf zYKs5|gU=0^{qIPSi3B?!R&)o%so4Xyt?gJO!TG(V^@IGn-!RkV_|m|}Vf_!PDScnC zF^x$B^}ZY?JdgTztn|^rZc$Ju1DdRRUhDZ-GcV}n$9LpT6M{o&bK^eqSS+HIN(JBA zv`Ik6QF~uonj{fZ)ygTJ?7UcVNE+VLPkcQmE=l&EXtLPB<u#v($@~%{ zn4}A?d1i?_2xf74V>g}egaK&!Hpe9UOa+P@*yI_Z`H+Gc z*ieZYqu-}!mk__gqWKr?&T$n#=(Y&+PUQ1gHWTg3<5}f@Kumz$ykphKhSwR^cih@L z9%a?U4IoiDRFgRp#QnJ~DWH!Ou$bt0q#sROIN!)$C1FXKy0eZ!*L3l9ZTR62$voPJ zid`+(Xv%n`eKuCKgdTjbVx`mE)Pi*SQR@ts5Wv0l*t{!ok-onBYp*>u^CTdL%KbRY zj&q(#{B?W)yu(9?rFy7R&LNn2n#RA=DQi<6fYu^QqvkvO-n;vwjZwZIIifRMd`WZd z?uyy;9#Jkf1)FPDY}YuyB=y{ROqM$MX7o$Ml{1sUA0>&ORBTy=LSU#e2yNdQ41rGv3Dd_9g`fUhM!7!3f)YD=MDD>viIQ-ZIJFN5>P7xT7kONYSJEUCVz0UZDCC$C$15eB&fFm3!#fSFHAoI6NQ_xEF

3-^TV%7jQ26&8GdxoB(wMOD+9NiXp2K9S~l%UHRZUUNvA={14)toVUvg_ z*S)XMv%{TQkhL@Py+(T*rS(R(lmmTB$Cu9KHV+<6xldTE;Xc4oET;~m3X{zEb9*{lHlnEDi;msWuWO~u$`h)sOOw48F~u4sU(DYLAH4& zc>OVe&1USCg+W}xJIf*AuidtA0rua>P4~fw;6R^&z^nj7F;7Efz(3tb-XYoY0bOh8 zyu(IfXfl1ZsS@0=ve_AE84KrQczunj{;t|>pV>nTg2fFP2q#l`q*s~7$LUT8xGxS) zM=%5P&i#+dm;o8>DtjUT&qb_>6aD?S6i-^e_x(xcw%Ph|iu)*r%+=e-_W3i8cU0R^ z>}yeW!p1)Lx{$G+%Pv-B@53WTE->|;EA%451Z|Mh{$5B;L>msv!tiP@1A>R zf1bG|48J8VE-)v6UWCE6xD;j>l*WJDw_JQlw)0PdeuJC^+`v6bp@Xz@x8$*hW960f zp}Srr4Vzhu55-f%?6p*zB)%F%o_ky`k1YABGCu{pw)DSn0MxK@%Cr93X*Olf>9~8* zxOJXm6dZa1=FF7`xo2_yO@`^aQ(xn6%!^{`icTmjl)dL1`-xes!(xiS@wbW;q+L;N z=|*?$X|P?>)C!Q)1*i?^;Xb1)kKA(2)^|#))cFh!gzn-6e-$$w_XZ<)HmC1`*NG!CEdi} zU1$+P63eB1m*0Bhmd}45yt58$t7wiK=L~DkbUTUOcGJ{`f7h6zpG>ZY#Fjt37Z9Y9 z-~|_>M%FRZMr(v#ZfJvEAt*9Fm{gemrOIzkVShpjZ|q?Jt3$A)g?xUYS#x!9wL$#` z`iY>|skfI>(k6ZF70E-)JS zo7$Ahn9n=03C?w#_)R=A*>U&7fifV=&xK-A#hbu_hENK!4+VKhZx+Z6i`sY0LP{#A zCG2HpGR?0%`i^2OPsKyPPxNtBLV|3`SFfzLb*bWQ6nra#f>fkx%G)X4q}nshjlHD- z#hBg)p{=7#eAcA-r8u%gNh-xY;O R{5S8DoRqR;t+;8({{idt&D;P0 literal 0 HcmV?d00001 diff --git a/docs/guide.md b/docs/guide.md index 9cb3a75..ca298b1 100644 --- a/docs/guide.md +++ b/docs/guide.md @@ -4,13 +4,15 @@ sidebar: auto # Guide to Super Graph -Get an instant high performance GraphQL API for Postgres. No code needed. GraphQL is automatically transformed into efficient database queries. Also Designed to integrate with your Rails apps. +Super Graph is a micro-service that instantly and without code gives you a high performance and secure GraphQL API. Your GraphQL queries are auto translated into a single fast SQL query. No more writing API code as you develop your web frontend just make the query you need and Super Graph will do the rest. + +Super Graph has a rich feature set like integrating with your existing Ruby on Rails apps, joining your DB with data from remote APIs, Role and Attribute based access control, Supoport for JWT tokens, Built-in DB mutations and seeding and a lot more. ## Features -- Role based access control -- Works with Ruby-On-Rails databases +- Role and Attribute based access control +- Works with existing Ruby-On-Rails apps - Automatically learns database schemas and relationships - Full text search and aggregations - Rails authentication supported (Redis, Memcache, Cookie) @@ -25,6 +27,7 @@ Get an instant high performance GraphQL API for Postgres. No code needed. GraphQ - Database migrations tool - Database seeding tool + ## Try the demo app ```bash