From 7f1a69b1f2e9735f8f0e9f440f40fb6a944dff11 Mon Sep 17 00:00:00 2001 From: Vamshi Surabhi Date: Thu, 20 Dec 2018 19:25:39 +0530 Subject: [PATCH 1/2] console now works on local builds of the server 1. local console assets can be served at /static/ by a build time flag 'local-console'. This can be set with stack as follows: `stack build --flag graphql-engine:local-console` 2. the --root-dir option is removed which was used as a temporary hack for serving graphiql --- server/graphql-engine.cabal | 8 ++++- server/src-exec/Main.hs | 5 ++- server/src-lib/Hasura/Server/App.hs | 50 +++++++++++++++++++--------- server/src-lib/Hasura/Server/Init.hs | 21 ++---------- server/src-rsr/console.html | 6 ++-- 5 files changed, 48 insertions(+), 42 deletions(-) diff --git a/server/graphql-engine.cabal b/server/graphql-engine.cabal index f70153ce569f4..c21b6a5698a56 100644 --- a/server/graphql-engine.cabal +++ b/server/graphql-engine.cabal @@ -22,6 +22,11 @@ flag developer default: False manual: True +flag local-console + description: embeds resources needed by console and serves them at /static/ + default: False + manual: True + library hs-source-dirs: src-lib , src-exec @@ -82,7 +87,6 @@ library -- GraphQL related , graphql-parser - , wai-middleware-static -- URL parser related , network-uri @@ -255,6 +259,8 @@ library if flag(developer) ghc-prof-options: -rtsopts -fprof-auto -fno-prof-count-entries + if flag(local-console) + cpp-options: -DLocalConsole ghc-options: -O2 -Wall diff --git a/server/src-exec/Main.hs b/server/src-exec/Main.hs index afd450c222085..07a64a2f994bd 100644 --- a/server/src-exec/Main.hs +++ b/server/src-exec/Main.hs @@ -63,7 +63,6 @@ parseHGECommand = <$> parseServerPort <*> parseConnParams <*> parseTxIsolation - <*> parseRootDir <*> parseAccessKey <*> parseWebHook <*> parseJwtSecret @@ -112,7 +111,7 @@ main = do -- global http manager httpManager <- HTTP.newManager HTTP.tlsManagerSettings case hgeCmd of - HCServe (ServeOptions port cp isoL mRootDir mAccessKey mAuthHook mJwtSecret + HCServe (ServeOptions port cp isoL mAccessKey mAuthHook mJwtSecret mUnAuthRole corsCfg enableConsole) -> do loggerCtx <- mkLoggerCtx $ defaultLoggerSettings True hloggerCtx <- mkLoggerCtx $ defaultLoggerSettings False @@ -128,7 +127,7 @@ main = do prepareEvents ci pool <- Q.initPGPool ci cp putStrLn $ "server: running on port " ++ show port - (app, cacheRef) <- mkWaiApp isoL mRootDir loggerCtx pool httpManager + (app, cacheRef) <- mkWaiApp isoL loggerCtx pool httpManager am corsCfg enableConsole let warpSettings = Warp.setPort port Warp.defaultSettings -- Warp.setHost "*" Warp.defaultSettings diff --git a/server/src-lib/Hasura/Server/App.hs b/server/src-lib/Hasura/Server/App.hs index 23dde4eed3dde..19539d4ce304e 100644 --- a/server/src-lib/Hasura/Server/App.hs +++ b/server/src-lib/Hasura/Server/App.hs @@ -1,3 +1,4 @@ +{-# LANGUAGE CPP #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE RankNTypes #-} @@ -14,13 +15,15 @@ import Network.Wai (requestHeaders, import Web.Spock.Core import qualified Data.ByteString.Lazy as BL +#ifdef LocalConsole +import qualified Data.FileEmbed as FE +#endif import qualified Data.HashMap.Strict as M import qualified Data.Text as T import qualified Network.HTTP.Client as HTTP import qualified Network.HTTP.Types as N import qualified Network.Wai as Wai import qualified Network.Wai.Handler.WebSockets as WS -import qualified Network.Wai.Middleware.Static as MS import qualified Network.WebSockets as WS import qualified Text.Mustache as M import qualified Text.Mustache.Compile as M @@ -49,8 +52,6 @@ import Hasura.Server.Utils import Hasura.Server.Version import Hasura.SQL.Types - - consoleTmplt :: M.Template consoleTmplt = $(M.embedSingleTemplate "src-rsr/console.html") @@ -58,15 +59,24 @@ isAccessKeySet :: AuthMode -> T.Text isAccessKeySet AMNoAuth = "false" isAccessKeySet _ = "true" +#ifdef LocalConsole +consoleAssetsLoc :: Text +consoleAssetsLoc = "/static" +#else +consoleAssetsLoc :: Text +consoleAssetsLoc = + "https://storage.googleapis.com/hasura-graphql-engine/console/" <> consoleVersion +#endif + mkConsoleHTML :: T.Text -> AuthMode -> Either String T.Text mkConsoleHTML path authMode = bool (Left errMsg) (Right res) $ null errs where (errs, res) = M.checkedSubstitute consoleTmplt $ - object [ "version" .= consoleVersion - , "isAccessKeySet" .= isAccessKeySet authMode - , "consolePath" .= consolePath - ] + object [ "consoleAssetsLoc" .= consoleAssetsLoc + , "isAccessKeySet" .= isAccessKeySet authMode + , "consolePath" .= consolePath + ] consolePath = case path of "" -> "/console" r -> "/console/" <> r @@ -268,7 +278,6 @@ legacyQueryHandler tn queryType = mkWaiApp :: Q.TxIsolation - -> Maybe String -> L.LoggerCtx -> Q.PGPool -> HTTP.Manager @@ -276,7 +285,7 @@ mkWaiApp -> CorsConfig -> Bool -> IO (Wai.Application, IORef SchemaCache) -mkWaiApp isoLevel mRootDir loggerCtx pool httpManager mode corsCfg enableConsole = do +mkWaiApp isoLevel loggerCtx pool httpManager mode corsCfg enableConsole = do cacheRef <- do pgResp <- runExceptT $ peelRun emptySchemaCache adminUserInfo httpManager pool Q.Serializable $ do @@ -291,7 +300,7 @@ mkWaiApp isoLevel mRootDir loggerCtx pool httpManager mode corsCfg enableConsole cacheLock mode httpManager spockApp <- spockAsApp $ spockT id $ - httpApp mRootDir corsCfg serverCtx enableConsole + httpApp corsCfg serverCtx enableConsole let runTx tx = runExceptT $ runLazyTx pool isoLevel tx @@ -299,8 +308,8 @@ mkWaiApp isoLevel mRootDir loggerCtx pool httpManager mode corsCfg enableConsole let wsServerApp = WS.createWSServerApp mode wsServerEnv return (WS.websocketsOr WS.defaultConnectionOptions wsServerApp spockApp, cacheRef) -httpApp :: Maybe String -> CorsConfig -> ServerCtx -> Bool -> SpockT IO () -httpApp mRootDir corsCfg serverCtx enableConsole = do +httpApp :: CorsConfig -> ServerCtx -> Bool -> SpockT IO () +httpApp corsCfg serverCtx enableConsole = do liftIO $ putStrLn "HasuraDB is now waiting for connections" -- cors middleware @@ -308,7 +317,7 @@ httpApp mRootDir corsCfg serverCtx enableConsole = do middleware $ corsMiddleware (mkDefaultCorsPolicy $ ccDomain corsCfg) -- API Console and Root Dir - bool serveRootDir serveApiConsole enableConsole + when enableConsole serveApiConsole get "v1/version" $ do uncurry setHeader jsonHeader @@ -370,11 +379,20 @@ httpApp mRootDir corsCfg serverCtx enableConsole = do setStatus $ qeStatus qErr lazyBytes $ encode qErr - serveRootDir = - maybe (return ()) (middleware . MS.staticPolicy . MS.addBase) mRootDir - serveApiConsole = do get root $ redirect "console" get ("console" wildcard) $ \path -> either (raiseGenericApiError . err500 Unexpected . T.pack) html $ mkConsoleHTML path $ scAuthMode serverCtx + +#ifdef LocalConsole + get "static/main.js" $ do + setHeader "Content-Type" "text/javascript;charset=UTF-8" + bytes $(FE.embedFile "../console/static/dist/main.js") + get "static/main.css" $ do + setHeader "Content-Type" "text/css;charset=UTF-8" + bytes $(FE.embedFile "../console/static/dist/main.css") + get "static/vendor.js" $ do + setHeader "Content-Type" "text/javascript;charset=UTF-8" + bytes $(FE.embedFile "../console/static/dist/vendor.js") +#endif diff --git a/server/src-lib/Hasura/Server/Init.hs b/server/src-lib/Hasura/Server/Init.hs index a1f213e9bd257..c37cc9cab78ac 100644 --- a/server/src-lib/Hasura/Server/Init.hs +++ b/server/src-lib/Hasura/Server/Init.hs @@ -35,7 +35,6 @@ data RawServeOptions { rsoPort :: !(Maybe Int) , rsoConnParams :: !RawConnParams , rsoTxIso :: !(Maybe Q.TxIsolation) - , rsoRootDir :: !(Maybe String) , rsoAccessKey :: !(Maybe AccessKey) , rsoAuthHook :: !RawAuthHook , rsoJwtSecret :: !(Maybe Text) @@ -58,7 +57,6 @@ data ServeOptions { soPort :: !Int , soConnParams :: !Q.ConnParams , soTxIso :: !Q.TxIsolation - , soRootDir :: !(Maybe String) , soAccessKey :: !(Maybe AccessKey) , soAuthHook :: !(Maybe AuthHook) , soJwtSecret :: !(Maybe Text) @@ -204,7 +202,6 @@ mkServeOptions rso = do connParams <- mkConnParams $ rsoConnParams rso txIso <- fromMaybe Q.ReadCommitted <$> withEnv (rsoTxIso rso) (fst txIsoEnv) - rootDir <- withEnv (rsoRootDir rso) $ fst rootDirEnv accKey <- withEnv (rsoAccessKey rso) $ fst accessKeyEnv authHook <- mkAuthHook $ rsoAuthHook rso jwtSecr <- withEnv (rsoJwtSecret rso) $ fst jwtSecretEnv @@ -212,7 +209,7 @@ mkServeOptions rso = do corsCfg <- mkCorsConfig $ rsoCorsConfig rso enableConsole <- withEnvBool (rsoEnableConsole rso) $ fst enableConsoleEnv - return $ ServeOptions port connParams txIso rootDir accKey authHook + return $ ServeOptions port connParams txIso accKey authHook jwtSecr unAuthRole corsCfg enableConsole where mkConnParams (RawConnParams s c i) = do @@ -303,7 +300,7 @@ serveCmdFooter = envVarDoc = mkEnvVarDoc $ envVars <> eventEnvs envVars = [ servePortEnv, pgStripesEnv, pgConnsEnv, pgTimeoutEnv - , txIsoEnv, rootDirEnv, accessKeyEnv, authHookEnv , authHookTypeEnv + , txIsoEnv, accessKeyEnv, authHookEnv , authHookTypeEnv , jwtSecretEnv , unAuthRoleEnv, corsDomainEnv , enableConsoleEnv ] @@ -345,11 +342,6 @@ txIsoEnv = , "transaction isolation. read-committed / repeatable-read / serializable (default: read-commited)" ) -rootDirEnv :: (String, String) -rootDirEnv = - ( "HASURA_GRAPHQL_ROOT_DIR" - , "this static dir is served at / and takes precedence over all routes") - accessKeyEnv :: (String, String) accessKeyEnv = ( "HASURA_GRAPHQL_ACCESS_KEY" @@ -465,15 +457,6 @@ parseTxIsolation = optional $ help (snd txIsoEnv) ) -parseRootDir :: Parser (Maybe String) -parseRootDir = - optional (strOption - ( long "root-dir" <> - metavar "STATIC-DIR" <> - help (snd rootDirEnv) - ) - ) - parseConnParams :: Parser RawConnParams parseConnParams = RawConnParams <$> stripes <*> conns <*> timeout diff --git a/server/src-rsr/console.html b/server/src-rsr/console.html index 898efb59ca0fe..f233858d082d8 100644 --- a/server/src-rsr/console.html +++ b/server/src-rsr/console.html @@ -44,8 +44,8 @@
- - - + + + From 328f85ffa88593d855c0c6ce01ce36a782c55e50 Mon Sep 17 00:00:00 2001 From: Vamshi Surabhi Date: Thu, 20 Dec 2018 19:31:05 +0530 Subject: [PATCH 2/2] remove server's graphiql source code --- server/graphiql/.env | 1 - server/graphiql/.gitignore | 21 ------ server/graphiql/package.json | 21 ------ server/graphiql/public/favicon.ico | Bin 3870 -> 0 bytes server/graphiql/public/index.html | 40 ----------- server/graphiql/public/manifest.json | 15 ---- server/graphiql/src/App.js | 38 ---------- server/graphiql/src/graphiql-vars-live.js | 53 -------------- server/graphiql/src/graphiql-vars.js | 80 ---------------------- server/graphiql/src/index.css | 10 --- server/graphiql/src/index.js | 6 -- server/graphiql/src/logo.svg | 7 -- 12 files changed, 292 deletions(-) delete mode 100644 server/graphiql/.env delete mode 100644 server/graphiql/.gitignore delete mode 100644 server/graphiql/package.json delete mode 100644 server/graphiql/public/favicon.ico delete mode 100644 server/graphiql/public/index.html delete mode 100644 server/graphiql/public/manifest.json delete mode 100644 server/graphiql/src/App.js delete mode 100644 server/graphiql/src/graphiql-vars-live.js delete mode 100644 server/graphiql/src/graphiql-vars.js delete mode 100644 server/graphiql/src/index.css delete mode 100644 server/graphiql/src/index.js delete mode 100644 server/graphiql/src/logo.svg diff --git a/server/graphiql/.env b/server/graphiql/.env deleted file mode 100644 index 4f79a0f8e2c45..0000000000000 --- a/server/graphiql/.env +++ /dev/null @@ -1 +0,0 @@ -GENERATE_SOURCEMAP=false \ No newline at end of file diff --git a/server/graphiql/.gitignore b/server/graphiql/.gitignore deleted file mode 100644 index d30f40ef4422f..0000000000000 --- a/server/graphiql/.gitignore +++ /dev/null @@ -1,21 +0,0 @@ -# See https://help.github.com/ignore-files/ for more about ignoring files. - -# dependencies -/node_modules - -# testing -/coverage - -# production -/build - -# misc -.DS_Store -.env.local -.env.development.local -.env.test.local -.env.production.local - -npm-debug.log* -yarn-debug.log* -yarn-error.log* diff --git a/server/graphiql/package.json b/server/graphiql/package.json deleted file mode 100644 index a78484795a55b..0000000000000 --- a/server/graphiql/package.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "graphiql", - "version": "0.1.0", - "private": true, - "dependencies": { - "apollo-link": "^1.2.2", - "apollo-link-ws": "^1.0.8", - "graphiql": "^0.11.11", - "graphql": "^0.13.2", - "react": "^16.4.1", - "react-dom": "^16.4.1", - "react-scripts": "1.1.4", - "subscriptions-transport-ws": "^0.9.12" - }, - "scripts": { - "start": "react-scripts start", - "build": "react-scripts build", - "test": "react-scripts test --env=jsdom", - "eject": "react-scripts eject" - } -} diff --git a/server/graphiql/public/favicon.ico b/server/graphiql/public/favicon.ico deleted file mode 100644 index a11777cc471a4344702741ab1c8a588998b1311a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3870 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ diff --git a/server/graphiql/public/index.html b/server/graphiql/public/index.html deleted file mode 100644 index ed0ebafa1b7c3..0000000000000 --- a/server/graphiql/public/index.html +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - React App - - - -
- - - diff --git a/server/graphiql/public/manifest.json b/server/graphiql/public/manifest.json deleted file mode 100644 index ef19ec243e739..0000000000000 --- a/server/graphiql/public/manifest.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "short_name": "React App", - "name": "Create React App Sample", - "icons": [ - { - "src": "favicon.ico", - "sizes": "64x64 32x32 24x24 16x16", - "type": "image/x-icon" - } - ], - "start_url": "./index.html", - "display": "standalone", - "theme_color": "#000000", - "background_color": "#ffffff" -} diff --git a/server/graphiql/src/App.js b/server/graphiql/src/App.js deleted file mode 100644 index 9e73ed192f786..0000000000000 --- a/server/graphiql/src/App.js +++ /dev/null @@ -1,38 +0,0 @@ -import React, { Component } from 'react'; -import '../node_modules/graphiql/graphiql.css'; - -import GraphiQL from 'graphiql'; -import {query, variables} from './graphiql-vars-live'; - -import { parse } from 'graphql'; -import { execute } from 'apollo-link'; -import { WebSocketLink } from "apollo-link-ws"; -import { SubscriptionClient } from "subscriptions-transport-ws"; - -class App extends Component { - - render() { - - const GRAPHQL_ENDPOINT = 'ws://' + window.location.host + "/v1alpha1/graphql"; - - const client = new SubscriptionClient( - GRAPHQL_ENDPOINT, {} - ); - - const link = new WebSocketLink(client); - const fetcher = (operation) => { - operation.query = parse(operation.query); - return execute(link, operation); - }; - - var content = ; - - return ( -
- {content} -
- ); - } -} - -export default App; diff --git a/server/graphiql/src/graphiql-vars-live.js b/server/graphiql/src/graphiql-vars-live.js deleted file mode 100644 index b43be1dcb3a15..0000000000000 --- a/server/graphiql/src/graphiql-vars-live.js +++ /dev/null @@ -1,53 +0,0 @@ -var query = ` -subscription live_reaction { - country { - name - votes { - count: vote_count - } - comments { - comment - } - } -} - -mutation vote_for_france { - insert_country_vote (objects: {country: "France"}) { - affected_rows - } -} - -mutation vote_for_croatia { - insert_country_vote (objects: {country: "Croatia"}) { - affected_rows - } -} - -mutation comment_on_france { - insert_comment ( - objects: { - country: "France" - comment: "rot in hell" - } - ) { - affected_rows - } -} - -mutation comment_on_croatia { - insert_comment ( - objects: { - country: "Croatia" - comment: "beautiful football" - } - ) { - affected_rows - } -} -`; -var variables=` -{ -} -`; -exports.query = query; -exports.variables = variables; diff --git a/server/graphiql/src/graphiql-vars.js b/server/graphiql/src/graphiql-vars.js deleted file mode 100644 index 07d14d52f7e05..0000000000000 --- a/server/graphiql/src/graphiql-vars.js +++ /dev/null @@ -1,80 +0,0 @@ -var query = ` -query albums_tracks_genre_all { - albums { - id - title - tracks { - id - name - genre { - name - } - } - } -} - -query albums_tracks_genre_some { - albums (where: {artist_id: {_eq: 127}}){ - id - title - tracks { - id - name - genre { - name - } - } - } -} - -query tracks_media_all { - tracks { - id - name - media_type { - name - } - } -} - -query tracks_media_some { - tracks (where: {composer: {_eq: "Kurt Cobain"}}){ - id - name - album { - id - title - } - media_type { - name - } - } -} - -query artists_collaboration { - artists(where: { - albums: { - tracks: { - composer: {_eq: "Ludwig van Beethoven"} - } - } - }) - { - id - name - } -} - -query artistByArtistId { - artists(where: {id: {_eq: 3}}) { - id - name - } -} -`; -var variables=` -{ -} -`; -exports.query = query; -exports.variables = variables; diff --git a/server/graphiql/src/index.css b/server/graphiql/src/index.css deleted file mode 100644 index f3ec83d7fdee6..0000000000000 --- a/server/graphiql/src/index.css +++ /dev/null @@ -1,10 +0,0 @@ -body { - height: 100%; - margin: 0; - width: 100%; - overflow: hidden; -} - -.react-container-graphql { - height: 100vh; -} diff --git a/server/graphiql/src/index.js b/server/graphiql/src/index.js deleted file mode 100644 index 849824bee6e95..0000000000000 --- a/server/graphiql/src/index.js +++ /dev/null @@ -1,6 +0,0 @@ -import React from 'react'; -import ReactDOM from 'react-dom'; -import './index.css'; -import App from './App'; - -ReactDOM.render(, document.getElementById('root')); diff --git a/server/graphiql/src/logo.svg b/server/graphiql/src/logo.svg deleted file mode 100644 index 6b60c1042f58d..0000000000000 --- a/server/graphiql/src/logo.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - -