1"use strict";(globalThis.webpackChunkstackql_io||=[]).push([[4807],{94199(e,r,t){t.r(r),t.d(r,{default:()=>o,metadata:()=>a});var a=t(82101),l=t(74848),s=t(28453);const n={authorsImageUrls:[void 0]};function i(e){const r={a:"a",blockquote:"blockquote",code:"code",h2:"h2",h3:"h3",p:"p",strong:"strong",...(0,s.R)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(r.p,{children:"Proud to announce the release of the first version of our middleware server and playground for StackQL."}),"\n",(0,l.jsxs)(r.blockquote,{children:["\n",(0,l.jsx)(r.p,{children:"StackQL allows you to query and interact with cloud services and APIs using SQL grammar and an ORM which is a direct reflection of a provider API, no database is required or implemented"}),"\n"]}),"\n",(0,l.jsx)(r.h2,{id:"stackql-middleware-server",children:"StackQL Middleware Server"}),"\n",(0,l.jsxs)(r.p,{children:["Our ",(0,l.jsx)(r.a,{href:"https://github.com/stackql/stackql-middleware",children:(0,l.jsx)(r.strong,{children:"middleware solution"})})," allows you to use StackQL as a query language to interact with APIs, much like GraphQL - however, the query DSL is SQL, providing a friendlier, more data-centric experience for developers. As shown in the example below, developers can ",(0,l.jsx)(r.code,{children:"POST"})," queries to a ",(0,l.jsx)(r.code,{children:"/stackql"})," endpoint; the queries are parsed and executed by a StackQL runner via the middleware server."]}),"\n",(0,l.jsx)("iframe",{width:"560",height:"315",src:"https://www.youtube.com/embed/IQ5UdKDsizQ",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:!0}),"\n",(0,l.jsx)(r.p,{children:"As the StackQL middleware API server and runner are stateless, the solution is horizontally scalable. With cache and authorization to be implemented, the solution provides a flexible, robust, scalable, performant back end for applications."}),"\n",(0,l.jsx)(r.p,{children:"Furthermore, using SQL semantics, developers can JOIN data between API providers and perform projections, filtering, aggregation, windowing operations, and more on simple or complex data types."}),"\n",(0,l.jsx)(r.h2,{id:"stackql-playground",children:"StackQL Playground"}),"\n",(0,l.jsxs)(r.p,{children:["The ",(0,l.jsx)(r.a,{href:"https://github.com/stackql/stackql-playground",children:(0,l.jsx)(r.strong,{children:"StackQL Playground"})})," is a TypeScript app that connects to a StackQL Middleware Server, which provides access to backend APIs using SQL. Features of the playground include..."]}),"\n",(0,l.jsx)(r.h3,{id:"explore-api-providers",children:"Explore API Providers"}),"\n",(0,l.jsx)(r.p,{children:"The StackQL Playground allows you to explore and query providers, services, resources, fields, and methods."}),"\n",(0,l.jsx)(r.h3,{id:"submit-queries",children:"Submit Queries"}),"\n",(0,l.jsxs)(r.p,{children:["Using the Playground you can submit queries to the ",(0,l.jsx)(r.code,{children:"/stackql"})," endpoint of the StackQL Middleware Server."]}),"\n",(0,l.jsx)(r.h3,{id:"view-sort-and-filter-results",children:"View, Sort, and Filter Results"}),"\n",(0,l.jsx)(r.p,{children:"Query results can be sorted or filtered in the grid result set in the StackQL Playground app, JSON results can also be viewed or copied from the JSON results tab."}),"\n",(0,l.jsx)(r.h3,{id:"save-results-as-csv-or-json",children:"Save Results as CSV or JSON"}),"\n",(0,l.jsxs)(r.p,{children:["Users can save results to local ",(0,l.jsx)(r.code,{children:"CSV"})," or ",(0,l.jsx)(r.code,{children:"JSON"})," files as well."]}),"\n",(0,l.jsx)(r.h3,{id:"generate-types",children:"Generate Types"}),"\n",(0,l.jsxs)(r.p,{children:["Furthermore, after modeling a query you can export the TypeScript types using the ",(0,l.jsx)(r.strong,{children:"Get Types"})," button."]}),"\n",(0,l.jsxs)(r.p,{children:["Huge thanks to ",(0,l.jsx)(r.a,{href:"https://github.com/FabioYyc",children:(0,l.jsx)(r.strong,{children:"Yuncheng Yang"})})," for the work he put in on this!"]}),"\n",(0,l.jsxs)(r.p,{children:["You can find the complete code ",(0,l.jsx)(r.a,{href:"https://github.com/stackql/stackql-middleware/blob/main/demo.sh",children:"here"})," to launch an environment using ",(0,l.jsx)(r.code,{children:"docker-compose"}),", which includes the StackQL Middleware Server, a StackQL runner (runs the queries on the back end), and the StackQL Playground app."]}),"\n",(0,l.jsx)(r.p,{children:"Let us know what you think."})]})}function o(e={}){const{wrapper:r}={...(0,s.R)(),...e.components};return r?(0,l.jsx)(r,{...e,children:(0,l.jsx)(i,{...e})}):i(e)}t.d(r,["assets",0,n,"contentTitle",0,void 0,"frontMatter",0,{slug:"stackql-middleware-and-playground-available",title:"StackQL Middleware and Playground Available",hide_table_of_contents:!1,authors:["jeffreyaven"],image:"/img/stackql-cover.png",description:"The StackQL Middleware Server along with the StackQL Playground App allow users to explore and query resources from API providers using SQL.",keywords:["stackql","stackql middleware","stackql playground","middleware","stackql provider registry","multicloud","asset management","cloud security"],tags:["stackql","stackql middleware","stackql playground","middleware","stackql provider registry","multicloud","asset management","cloud security"]},"toc",0,[{value:"StackQL Middleware Server",id:"stackql-middleware-server",level:2},{value:"StackQL Playground",id:"stackql-playground",level:2},{value:"Explore API Providers",id:"explore-api-providers",level:3},{value:"Submit Queries",id:"submit-queries",level:3},{value:"View, Sort, and Filter Results",id:"view-sort-and-filter-results",level:3},{value:"Save Results as CSV or JSON",id:"save-results-as-csv-or-json",level:3},{value:"Generate Types",id:"generate-types",level:3}]])},28453(e,r,t){t.d(r,{R:()=>n,x:()=>i});var a=t(96540);const l={},s=a.createContext(l);function n(e){const r=a.useContext(s);return a.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:n(e.components),a.createElement(s.Provider,{value:r},e.children)}},82101(e){e.exports=JSON.parse('{"permalink":"/blog/product/stackql-middleware-and-playground-available","editUrl":"https://github.com/stackql/stackql.io/edit/main/blog/product/2022-11-13-stackql-middleware-and-playground-available.md","source":"@site/blog/product/2022-11-13-stackql-middleware-and-playground-available.md","title":"StackQL Middleware and Playground Available","description":"The StackQL Middleware Server along with the StackQL Playground App allow users to explore and query resources from API providers using SQL.","date":"2022-11-13T00:00:00.000Z","tags":[{"inline":true,"label":"stackql","permalink":"/blog/product/tags/stackql"},{"inline":true,"label":"stackql middleware","permalink":"/blog/product/tags/stackql-middleware"},{"inline":true,"label":"stackql playground","permalink":"/blog/product/tags/stackql-playground"},{"inline":true,"label":"middleware","permalink":"/blog/product/tags/middleware"},{"inline":true,"label":"stackql provider registry","permalink":"/blog/product/tags/stackql-provider-registry"},{"inline":true,"label":"multicloud","permalink":"/blog/product/tags/multicloud"},{"inline":true,"label":"asset management","permalink":"/blog/product/tags/asset-management"},{"inline":true,"label":"cloud security","permalink":"/blog/product/tags/cloud-security"}],"readingTime":2.08,"hasTruncateMarker":false,"authors":[{"name":"Jeffrey Aven","title":"Technologist and Cloud Consultant","url":"https://www.linkedin.com/in/jeffreyaven/","key":"jeffreyaven","page":null}],"frontMatter":{"slug":"stackql-middleware-and-playground-available","t
1itle":"StackQL Middleware and Playground Available","hide_table_of_contents":false,"authors":["jeffreyaven"],"image":"/img/stackql-cover.png","description":"The StackQL Middleware Server along with the StackQL Playground App allow users to explore and query resources from API providers using SQL.","keywords":["stackql","stackql middleware","stackql playground","middleware","stackql provider registry","multicloud","asset management","cloud security"],"tags":["stackql","stackql middleware","stackql playground","middleware","stackql provider registry","multicloud","asset management","cloud security"]},"unlisted":false,"prevItem":{"title":"Using the setup-stackql Github Action","permalink":"/blog/product/setup-stackql-github-action"},"nextItem":{"title":"Introducing the StackQL Provider Registry","permalink":"/blog/product/introducing-the-stackql-provider-registry"}}')}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.