From ee56b741d81a7d0f0fc4de8816889497601fb37a Mon Sep 17 00:00:00 2001 From: Sameer Kolhar Date: Thu, 4 Mar 2021 21:51:27 +0530 Subject: [PATCH] server: add is_remote_schema_permissions_enabled to config API GitOrigin-RevId: 7129d0fba25edc2450c74140335df9398154ce52 --- docs/graphql/core/api-reference/config.rst | 1 + server/src-lib/Hasura/Server/API/Config.hs | 30 +++++++++++----------- server/src-lib/Hasura/Server/App.hs | 2 +- 3 files changed, 17 insertions(+), 16 deletions(-) diff --git a/docs/graphql/core/api-reference/config.rst b/docs/graphql/core/api-reference/config.rst index ac25a2702aa..e5480ca649f 100644 --- a/docs/graphql/core/api-reference/config.rst +++ b/docs/graphql/core/api-reference/config.rst @@ -47,6 +47,7 @@ Sample response { "version": "v1.0.0-beta.3", "is_function_permissions_inferred": true, + "is_remote_schema_permissions_enabled": false, "is_admin_secret_set": true, "is_auth_hook_set": false, "is_jwt_set": true, diff --git a/server/src-lib/Hasura/Server/API/Config.hs b/server/src-lib/Hasura/Server/API/Config.hs index 3215b067771..00a4c885d95 100644 --- a/server/src-lib/Hasura/Server/API/Config.hs +++ b/server/src-lib/Hasura/Server/API/Config.hs @@ -11,40 +11,40 @@ import Data.Aeson.TH import qualified Hasura.GraphQL.Execute.LiveQuery.Options as LQ -import Hasura.RQL.Types (FunctionPermissionsCtx) +import Hasura.RQL.Types (FunctionPermissionsCtx, + RemoteSchemaPermsCtx) import Hasura.Server.Auth import Hasura.Server.Auth.JWT import Hasura.Server.Version (HasVersion, Version, currentVersion) - data JWTInfo = JWTInfo { jwtiClaimsNamespace :: !JWTNamespace , jwtiClaimsFormat :: !JWTClaimsFormat , jwtiClaimsMap :: !(Maybe JWTCustomClaimsMap) } deriving (Show, Eq) - $(deriveToJSON hasuraJSON ''JWTInfo) data ServerConfig = ServerConfig - { scfgVersion :: !Version - , scfgIsFunctionPermissionsInferred :: !FunctionPermissionsCtx - , scfgIsAdminSecretSet :: !Bool - , scfgIsAuthHookSet :: !Bool - , scfgIsJwtSet :: !Bool - , scfgJwt :: !(Maybe JWTInfo) - , scfgIsAllowListEnabled :: !Bool - , scfgLiveQueries :: !LQ.LiveQueriesOptions - , scfgConsoleAssetsDir :: !(Maybe Text) + { scfgVersion :: !Version + , scfgIsFunctionPermissionsInferred :: !FunctionPermissionsCtx + , scfgIsRemoteSchemaPermissionsEnabled :: !RemoteSchemaPermsCtx + , scfgIsAdminSecretSet :: !Bool + , scfgIsAuthHookSet :: !Bool + , scfgIsJwtSet :: !Bool + , scfgJwt :: !(Maybe JWTInfo) + , scfgIsAllowListEnabled :: !Bool + , scfgLiveQueries :: !LQ.LiveQueriesOptions + , scfgConsoleAssetsDir :: !(Maybe Text) } deriving (Show, Eq) - $(deriveToJSON hasuraJSON ''ServerConfig) -runGetConfig :: HasVersion => FunctionPermissionsCtx -> AuthMode -> Bool -> LQ.LiveQueriesOptions -> Maybe Text -> ServerConfig -runGetConfig functionPermsCtx am isAllowListEnabled liveQueryOpts consoleAssetsDir = ServerConfig +runGetConfig :: HasVersion => FunctionPermissionsCtx -> RemoteSchemaPermsCtx -> AuthMode -> Bool -> LQ.LiveQueriesOptions -> Maybe Text -> ServerConfig +runGetConfig functionPermsCtx remoteSchemaPermsCtx am isAllowListEnabled liveQueryOpts consoleAssetsDir = ServerConfig currentVersion functionPermsCtx + remoteSchemaPermsCtx (isAdminSecretSet am) (isAuthHookSet am) (isJWTSet am) diff --git a/server/src-lib/Hasura/Server/App.hs b/server/src-lib/Hasura/Server/App.hs index 9fc1f0b45a0..abac4e8e65b 100644 --- a/server/src-lib/Hasura/Server/App.hs +++ b/server/src-lib/Hasura/Server/App.hs @@ -696,7 +696,7 @@ configApiGetHandler serverCtx@ServerCtx{..} consoleAssetsDir = Spock.get "v1alpha1/config" $ mkSpockAction serverCtx encodeQErr id $ mkGetHandler $ do onlyAdmin - let res = runGetConfig scFunctionPermsCtx scAuthMode scEnableAllowlist + let res = runGetConfig scFunctionPermsCtx scRemoteSchemaPermsCtx scAuthMode scEnableAllowlist (EL._lqsOptions $ scLQState) consoleAssetsDir return $ JSONResp $ HttpResponse (encJFromJValue res) []