server: remove the execute command from the graphql-engine

https://github.com/hasura/graphql-engine-mono/pull/2318

GitOrigin-RevId: a07b39469fa84a1ae3c913955872dcaade689c6e
This commit is contained in:
Karthikeyan Chinnakonda 2021-09-08 18:36:24 +05:30 committed by hasura-bot
parent dd88ad9631
commit 81df199169
4 changed files with 19 additions and 81 deletions

View File

@ -5,39 +5,32 @@ module Main where
import Hasura.Prelude import Hasura.Prelude
import qualified Control.Concurrent.Extended as C import qualified Control.Concurrent.Extended as C
import qualified Data.ByteString.Char8 as BC import qualified Data.ByteString.Char8 as BC
import qualified Data.ByteString.Lazy as BL import qualified Data.Environment as Env
import qualified Data.ByteString.Lazy.Char8 as BLC import qualified Database.PG.Query as Q
import qualified Data.Environment as Env import qualified System.Exit as Sys
import qualified Database.PG.Query as Q import qualified System.Metrics as EKG
import qualified System.Exit as Sys import qualified System.Posix.Signals as Signals
import qualified System.Metrics as EKG
import qualified System.Posix.Signals as Signals
import Control.Exception import Control.Exception
import Control.Monad.Trans.Managed (ManagedT (..), lowerManagedT) import Control.Monad.Trans.Managed (ManagedT (..), lowerManagedT)
import Data.Int (Int64) import Data.Int (Int64)
import Data.Kind (Type) import Data.Kind (Type)
import Data.Text.Conversions (convertText) import Data.Text.Conversions (convertText)
import Data.Time.Clock (getCurrentTime) import Data.Time.Clock (getCurrentTime)
import Data.Time.Clock.POSIX (getPOSIXTime) import Data.Time.Clock.POSIX (getPOSIXTime)
import GHC.TypeLits (Symbol) import GHC.TypeLits (Symbol)
import qualified Hasura.GC as GC import qualified Hasura.GC as GC
import qualified Hasura.Tracing as Tracing
import Hasura.App import Hasura.App
import Hasura.Logging (Hasura, LogLevel (..), import Hasura.Logging (Hasura, LogLevel (..), defaultEnabledEngineLogTypes)
defaultEnabledEngineLogTypes)
import Hasura.Metadata.Class
import Hasura.RQL.DDL.Schema import Hasura.RQL.DDL.Schema
import Hasura.RQL.DDL.Schema.Cache.Common
import Hasura.RQL.Types import Hasura.RQL.Types
import Hasura.Server.Init import Hasura.Server.Init
import Hasura.Server.Metrics (ServerMetricsSpec, createServerMetrics) import Hasura.Server.Metrics (ServerMetricsSpec, createServerMetrics)
import Hasura.Server.Migrate (downgradeCatalog) import Hasura.Server.Migrate (downgradeCatalog)
import Hasura.Server.Types (MaintenanceMode (..))
import Hasura.Server.Version import Hasura.Server.Version
import Hasura.Server.Version.TH import Hasura.Server.Version.TH
@ -111,32 +104,6 @@ runApp env (HGEOptionsG rci metadataDbUrl hgeCmd) = do
let cleanSuccessMsg = "successfully cleaned graphql-engine related data" let cleanSuccessMsg = "successfully cleaned graphql-engine related data"
either (printErrJExit MetadataCleanError) (const $ liftIO $ putStrLn cleanSuccessMsg) res either (printErrJExit MetadataCleanError) (const $ liftIO $ putStrLn cleanSuccessMsg) res
HCExecute -> do
queryBs <- liftIO BL.getContents
let sqlGenCtx = SQLGenCtx False False
remoteSchemaPermsCtx = RemoteSchemaPermsDisabled
pgLogger = print
pgSourceResolver = mkPgSourceResolver pgLogger
functionPermsCtx = FunctionPermissionsInferred
maintenanceMode = MaintenanceModeDisabled
serverConfigCtx =
ServerConfigCtx functionPermsCtx remoteSchemaPermsCtx sqlGenCtx maintenanceMode mempty
cacheBuildParams =
CacheBuildParams _gcHttpManager pgSourceResolver serverConfigCtx
runManagedT (mkMinimalPool _gcMetadataDbConnInfo) $ \metadataDbPool -> do
res <- flip runPGMetadataStorageAppT (metadataDbPool, pgLogger) $
runMetadataStorageT $ liftEitherM do
(metadata, _) <- fetchMetadata
runAsAdmin _gcHttpManager serverConfigCtx $ do
schemaCache <- runCacheBuild cacheBuildParams $
buildRebuildableSchemaCache env metadata
execQuery env queryBs
& Tracing.runTraceTWithReporter Tracing.noReporter "execute"
& runMetadataT metadata
& runCacheRWT schemaCache
& fmap (\((res, _), _, _) -> res)
either (printErrJExit ExecuteProcessError) (liftIO . BLC.putStrLn) res
HCDowngrade opts -> do HCDowngrade opts -> do
let defaultSourceConfig = maybeDefaultPgConnInfo <&> \(dbUrlConf, _) -> let defaultSourceConfig = maybeDefaultPgConnInfo <&> \(dbUrlConf, _) ->
let pgSourceConnInfo = PostgresSourceConnInfo dbUrlConf let pgSourceConnInfo = PostgresSourceConnInfo dbUrlConf

View File

@ -57,7 +57,6 @@ import qualified Hasura.Tracing as Tracing
import Data.IORef (readIORef) import Data.IORef (readIORef)
import Hasura.Backends.Postgres.Connection import Hasura.Backends.Postgres.Connection
import Hasura.Base.Error import Hasura.Base.Error
import Hasura.EncJSON
import Hasura.Eventing.Common import Hasura.Eventing.Common
import Hasura.Eventing.EventTrigger import Hasura.Eventing.EventTrigger
import Hasura.Eventing.ScheduledTrigger import Hasura.Eventing.ScheduledTrigger
@ -77,7 +76,7 @@ import Hasura.RQL.DDL.Schema.Cache.Common
import Hasura.RQL.DDL.Schema.Catalog import Hasura.RQL.DDL.Schema.Catalog
import Hasura.RQL.Types import Hasura.RQL.Types
import Hasura.RQL.Types.Run import Hasura.RQL.Types.Run
import Hasura.Server.API.Query (requiresAdmin, runQueryM) import Hasura.Server.API.Query (requiresAdmin)
import Hasura.Server.App import Hasura.Server.App
import Hasura.Server.Auth import Hasura.Server.Auth
import Hasura.Server.CheckUpdates (checkForUpdates) import Hasura.Server.CheckUpdates (checkForUpdates)
@ -132,8 +131,6 @@ parseHGECommand =
( progDesc "Export graphql-engine's metadata to stdout" )) ( progDesc "Export graphql-engine's metadata to stdout" ))
<> command "clean" (info (pure HCClean) <> command "clean" (info (pure HCClean)
( progDesc "Clean graphql-engine's metadata to start afresh" )) ( progDesc "Clean graphql-engine's metadata to start afresh" ))
<> command "execute" (info (pure HCExecute)
( progDesc "Execute a query" ))
<> command "downgrade" (info (HCDowngrade <$> downgradeOptionsParser) <> command "downgrade" (info (HCDowngrade <$> downgradeOptionsParser)
(progDesc "Downgrade the GraphQL Engine schema to the specified version")) (progDesc "Downgrade the GraphQL Engine schema to the specified version"))
<> command "version" (info (pure HCVersion) <> command "version" (info (pure HCVersion)
@ -826,30 +823,6 @@ runAsAdmin httpManager serverConfigCtx m = do
let runCtx = RunCtx adminUserInfo httpManager serverConfigCtx let runCtx = RunCtx adminUserInfo httpManager serverConfigCtx
runExceptT $ peelRun runCtx m runExceptT $ peelRun runCtx m
execQuery
:: ( HasVersion
, CacheRWM m
, MonadIO m
, MonadBaseControl IO m
, MonadUnique m
, HasHttpManagerM m
, UserInfoM m
, Tracing.MonadTrace m
, HasServerConfigCtx m
, MetadataM m
, MonadMetadataStorageQueryAPI m
, EB.MonadQueryTags m
)
=> Env.Environment
-> BLC.ByteString
-> m BLC.ByteString
execQuery env queryBs = do
query <- case A.decode queryBs of
Just jVal -> decodeValue jVal
Nothing -> throw400 InvalidJSON "invalid json"
buildSchemaCacheStrict
encJToLBS <$> runQueryM env query
instance (Monad m) => Tracing.HasReporter (PGMetadataStorageAppT m) instance (Monad m) => Tracing.HasReporter (PGMetadataStorageAppT m)
instance (Monad m) => HasResourceLimits (PGMetadataStorageAppT m) where instance (Monad m) => HasResourceLimits (PGMetadataStorageAppT m) where

View File

@ -113,7 +113,6 @@ mkHGEOptions (HGEOptionsG rawDbUrl rawMetadataDbUrl rawCmd) =
HCServe rso -> HCServe <$> mkServeOptions rso HCServe rso -> HCServe <$> mkServeOptions rso
HCExport -> return HCExport HCExport -> return HCExport
HCClean -> return HCClean HCClean -> return HCClean
HCExecute -> return HCExecute
HCVersion -> return HCVersion HCVersion -> return HCVersion
HCDowngrade tgt -> return (HCDowngrade tgt) HCDowngrade tgt -> return (HCDowngrade tgt)

View File

@ -230,7 +230,6 @@ data HGECommandG a
= HCServe !a = HCServe !a
| HCExport | HCExport
| HCClean | HCClean
| HCExecute
| HCVersion | HCVersion
| HCDowngrade !DowngradeOptions | HCDowngrade !DowngradeOptions
deriving (Show, Eq) deriving (Show, Eq)