mirror of
https://github.com/hasura/graphql-engine.git
synced 2024-12-15 09:22:43 +03:00
Extract Network
and Net
into hasura-extras
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8855 Co-authored-by: Daniel Harvey <4729125+danieljharvey@users.noreply.github.com> GitOrigin-RevId: 5bde8ff821739c37a2e4435b57a5a623bc66de42
This commit is contained in:
parent
6ed9f36125
commit
eac27bbf13
@ -811,7 +811,6 @@ library
|
|||||||
, Hasura.RQL.Types.Metadata.Instances
|
, Hasura.RQL.Types.Metadata.Instances
|
||||||
, Hasura.RQL.Types.Metadata.Object
|
, Hasura.RQL.Types.Metadata.Object
|
||||||
, Hasura.RQL.Types.Metadata.Serialization
|
, Hasura.RQL.Types.Metadata.Serialization
|
||||||
, Hasura.RQL.Types.Network
|
|
||||||
, Hasura.RQL.Types.OpenTelemetry
|
, Hasura.RQL.Types.OpenTelemetry
|
||||||
, Hasura.RQL.Types.Permission
|
, Hasura.RQL.Types.Permission
|
||||||
, Hasura.RQL.Types.QueryCollection
|
, Hasura.RQL.Types.QueryCollection
|
||||||
@ -1006,20 +1005,6 @@ library
|
|||||||
, Hasura.SQL.WKT
|
, Hasura.SQL.WKT
|
||||||
, Hasura.QueryTags
|
, Hasura.QueryTags
|
||||||
, Hasura.QueryTags.Types
|
, Hasura.QueryTags.Types
|
||||||
, Network.HTTP.Client.Transformable
|
|
||||||
, Network.HTTP.Client.DynamicTlsPermissions
|
|
||||||
, Network.HTTP.Client.Restricted
|
|
||||||
, Network.HTTP.Client.Blocklisting
|
|
||||||
, Network.HTTP.Client.CreateManager
|
|
||||||
, Network.URI.Extended
|
|
||||||
, Network.Wai.Extended
|
|
||||||
, Network.Wai.Handler.WebSockets.Custom
|
|
||||||
|
|
||||||
-- Our vendored bits of the 'ip' package, to avoid dependencies and ease 9.2 migration
|
|
||||||
-- We might see if maintainer is willing to split their package up so we can remove these:
|
|
||||||
, Net.IPv4
|
|
||||||
, Net.IPv6
|
|
||||||
|
|
||||||
|
|
||||||
executable graphql-engine
|
executable graphql-engine
|
||||||
import: common-all, common-exe
|
import: common-all, common-exe
|
||||||
|
@ -43,16 +43,33 @@ library
|
|||||||
, autodocodec
|
, autodocodec
|
||||||
, base
|
, base
|
||||||
, base64-bytestring
|
, base64-bytestring
|
||||||
|
, byteorder
|
||||||
, bytestring
|
, bytestring
|
||||||
, case-insensitive
|
, case-insensitive
|
||||||
|
, connection
|
||||||
, containers
|
, containers
|
||||||
|
, data-default
|
||||||
|
, data-default-class
|
||||||
, deepseq
|
, deepseq
|
||||||
|
, exceptions
|
||||||
, graphql-parser
|
, graphql-parser
|
||||||
, hashable
|
, hashable
|
||||||
, hasura-prelude
|
, hasura-prelude
|
||||||
|
, http-client
|
||||||
|
, http-client-tls
|
||||||
|
, http-conduit
|
||||||
|
, http-types
|
||||||
, insert-ordered-containers
|
, insert-ordered-containers
|
||||||
, kriti-lang
|
, kriti-lang
|
||||||
|
, lens
|
||||||
, mtl
|
, mtl
|
||||||
|
, network
|
||||||
|
, network-bsd
|
||||||
|
, network-uri
|
||||||
|
, odbc
|
||||||
|
, pg-client
|
||||||
|
, refined
|
||||||
|
, safe-exceptions
|
||||||
, pg-client
|
, pg-client
|
||||||
, refined
|
, refined
|
||||||
, scientific
|
, scientific
|
||||||
@ -62,11 +79,21 @@ library
|
|||||||
, text-builder
|
, text-builder
|
||||||
, text-conversions
|
, text-conversions
|
||||||
, time
|
, time
|
||||||
|
, tls
|
||||||
, unordered-containers
|
, unordered-containers
|
||||||
, uri-encode
|
, uri-encode
|
||||||
|
, wai
|
||||||
|
, websockets
|
||||||
|
, wide-word
|
||||||
, witherable
|
, witherable
|
||||||
|
, x509
|
||||||
|
, x509-store
|
||||||
|
, x509-system
|
||||||
|
, x509-validation
|
||||||
|
|
||||||
|
|
||||||
default-extensions:
|
default-extensions:
|
||||||
|
BlockArguments
|
||||||
DerivingStrategies
|
DerivingStrategies
|
||||||
FunctionalDependencies
|
FunctionalDependencies
|
||||||
ImportQualifiedPost
|
ImportQualifiedPost
|
||||||
@ -74,6 +101,7 @@ library
|
|||||||
NoImplicitPrelude
|
NoImplicitPrelude
|
||||||
QuasiQuotes
|
QuasiQuotes
|
||||||
OverloadedStrings
|
OverloadedStrings
|
||||||
|
RecordWildCards
|
||||||
TypeFamilies
|
TypeFamilies
|
||||||
|
|
||||||
exposed-modules:
|
exposed-modules:
|
||||||
@ -95,3 +123,17 @@ library
|
|||||||
Data.Text.NonEmpty
|
Data.Text.NonEmpty
|
||||||
Data.Trie
|
Data.Trie
|
||||||
Data.URL.Template
|
Data.URL.Template
|
||||||
|
Network.HTTP.Client.Blocklisting
|
||||||
|
Network.HTTP.Client.CreateManager
|
||||||
|
Network.HTTP.Client.DynamicTlsPermissions
|
||||||
|
Network.HTTP.Client.Restricted
|
||||||
|
Network.HTTP.Client.Transformable
|
||||||
|
Network.Types.Extended
|
||||||
|
Network.URI.Extended
|
||||||
|
Network.Wai.Extended
|
||||||
|
Network.Wai.Handler.WebSockets.Custom
|
||||||
|
|
||||||
|
-- Our vendored bits of the 'ip' package, to avoid dependencies and ease 9.2 migration
|
||||||
|
-- We might see if maintainer is willing to split their package up so we can remove these:
|
||||||
|
Net.IPv4
|
||||||
|
Net.IPv6
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
module Autodocodec.Extended
|
module Autodocodec.Extended
|
||||||
( baseUrlCodec,
|
( baseUrlCodec,
|
||||||
|
boundedEnumCodec,
|
||||||
caseInsensitiveHashMapCodec,
|
caseInsensitiveHashMapCodec,
|
||||||
caseInsensitiveTextCodec,
|
caseInsensitiveTextCodec,
|
||||||
graphQLEnumValueCodec,
|
graphQLEnumValueCodec,
|
||||||
@ -40,6 +41,7 @@ import Data.CaseInsensitive qualified as CI
|
|||||||
import Data.Char (isAlphaNum)
|
import Data.Char (isAlphaNum)
|
||||||
import Data.HashMap.Strict qualified as M
|
import Data.HashMap.Strict qualified as M
|
||||||
import Data.HashSet qualified as HashSet
|
import Data.HashSet qualified as HashSet
|
||||||
|
import Data.List.NonEmpty qualified as NE
|
||||||
import Data.Maybe (fromJust)
|
import Data.Maybe (fromJust)
|
||||||
import Data.Scientific (Scientific (base10Exponent), floatingOrInteger)
|
import Data.Scientific (Scientific (base10Exponent), floatingOrInteger)
|
||||||
import Data.Scientific qualified as Scientific
|
import Data.Scientific qualified as Scientific
|
||||||
@ -345,3 +347,26 @@ disjointMatchChoicesNECodec l = go l
|
|||||||
disjointMatchChoiceCodec c (go l') $ \i -> case m i of
|
disjointMatchChoiceCodec c (go l') $ \i -> case m i of
|
||||||
Just j -> Left j
|
Just j -> Left j
|
||||||
Nothing -> Right i
|
Nothing -> Right i
|
||||||
|
|
||||||
|
-- | A codec for a 'Bounded' 'Enum' that maps to literal strings using
|
||||||
|
-- a provided function.
|
||||||
|
--
|
||||||
|
--
|
||||||
|
-- === Example usage
|
||||||
|
--
|
||||||
|
-- >>> data Fruit = FruitApple | FruitOrange deriving (Show, Eq, Enum, Bounded)
|
||||||
|
-- >>> let c = boundedEnumCodec (snakeCase . drop 5)
|
||||||
|
-- >>> toJSONVia c Apple
|
||||||
|
-- String "apple"
|
||||||
|
-- >>> JSON.parseMaybe (parseJSONVia c) (String "orange") :: Maybe Fruit
|
||||||
|
-- Just Orange
|
||||||
|
boundedEnumCodec ::
|
||||||
|
forall enum.
|
||||||
|
(Eq enum, Enum enum, Bounded enum) =>
|
||||||
|
(enum -> String) ->
|
||||||
|
JSONCodec enum
|
||||||
|
boundedEnumCodec display =
|
||||||
|
let ls = [minBound .. maxBound]
|
||||||
|
in case NE.nonEmpty ls of
|
||||||
|
Nothing -> error "0 enum values ?!"
|
||||||
|
Just ne -> stringConstCodec (NE.map (\v -> (v, T.pack (display v))) ne)
|
||||||
|
@ -4,11 +4,11 @@ module Network.HTTP.Client.CreateManager
|
|||||||
where
|
where
|
||||||
|
|
||||||
import Hasura.Prelude
|
import Hasura.Prelude
|
||||||
import Hasura.RQL.Types.Network (TlsAllow)
|
|
||||||
import Network.HTTP.Client qualified as HTTP
|
import Network.HTTP.Client qualified as HTTP
|
||||||
import Network.HTTP.Client.Blocklisting (Blocklist, block)
|
import Network.HTTP.Client.Blocklisting (Blocklist, block)
|
||||||
import Network.HTTP.Client.DynamicTlsPermissions qualified as HTTP
|
import Network.HTTP.Client.DynamicTlsPermissions qualified as HTTP
|
||||||
import Network.HTTP.Client.Restricted qualified as Restricted
|
import Network.HTTP.Client.Restricted qualified as Restricted
|
||||||
|
import Network.Types.Extended (TlsAllow)
|
||||||
|
|
||||||
-- | This mkHttpManager function takes a mechanism for finding the current allowlist,
|
-- | This mkHttpManager function takes a mechanism for finding the current allowlist,
|
||||||
-- | Thus allowing it to be coupled from any ref type such as AppStateRef.
|
-- | Thus allowing it to be coupled from any ref type such as AppStateRef.
|
@ -11,10 +11,10 @@ import Data.X509.CertificateStore qualified as HTTP
|
|||||||
import Data.X509.Validation qualified as HTTP
|
import Data.X509.Validation qualified as HTTP
|
||||||
import GHC.Exception (Exception (displayException))
|
import GHC.Exception (Exception (displayException))
|
||||||
import Hasura.Prelude
|
import Hasura.Prelude
|
||||||
import Hasura.RQL.Types.Network (TlsAllow (TlsAllow), TlsPermission (SelfSigned))
|
|
||||||
import Network.Connection qualified as HTTP
|
import Network.Connection qualified as HTTP
|
||||||
import Network.TLS qualified as HTTP
|
import Network.TLS qualified as HTTP
|
||||||
import Network.TLS.Extra qualified as TLS
|
import Network.TLS.Extra qualified as TLS
|
||||||
|
import Network.Types.Extended (TlsAllow (TlsAllow), TlsPermission (SelfSigned))
|
||||||
import System.X509 qualified as HTTP
|
import System.X509 qualified as HTTP
|
||||||
|
|
||||||
newtype TlsServiceDefinitionError = TlsServiceDefinitionError
|
newtype TlsServiceDefinitionError = TlsServiceDefinitionError
|
@ -1,4 +1,4 @@
|
|||||||
module Hasura.RQL.Types.Network
|
module Network.Types.Extended
|
||||||
( AddHostToTLSAllowlist,
|
( AddHostToTLSAllowlist,
|
||||||
DropHostFromTLSAllowlist (..),
|
DropHostFromTLSAllowlist (..),
|
||||||
Network (..),
|
Network (..),
|
||||||
@ -10,9 +10,9 @@ where
|
|||||||
|
|
||||||
import Autodocodec (HasCodec, optionalField', optionalFieldWithDefault', requiredField')
|
import Autodocodec (HasCodec, optionalField', optionalFieldWithDefault', requiredField')
|
||||||
import Autodocodec qualified as AC
|
import Autodocodec qualified as AC
|
||||||
|
import Autodocodec.Extended (boundedEnumCodec)
|
||||||
import Data.Aeson as A
|
import Data.Aeson as A
|
||||||
import Data.Text qualified as T
|
import Data.Text qualified as T
|
||||||
import Hasura.Metadata.DTO.Utils (boundedEnumCodec)
|
|
||||||
import Hasura.Prelude
|
import Hasura.Prelude
|
||||||
|
|
||||||
data Network = Network
|
data Network = Network
|
||||||
@ -24,7 +24,8 @@ instance HasCodec Network where
|
|||||||
codec =
|
codec =
|
||||||
AC.object "Network" $
|
AC.object "Network" $
|
||||||
Network
|
Network
|
||||||
<$> optionalFieldWithDefault' "tls_allowlist" [] AC..= networkTlsAllowlist
|
<$> optionalFieldWithDefault' "tls_allowlist" []
|
||||||
|
AC..= networkTlsAllowlist
|
||||||
|
|
||||||
instance FromJSON Network where
|
instance FromJSON Network where
|
||||||
parseJSON = withObject "Network" $ \o -> Network <$> o .:? "tls_allowlist" .!= []
|
parseJSON = withObject "Network" $ \o -> Network <$> o .:? "tls_allowlist" .!= []
|
||||||
@ -46,9 +47,12 @@ instance HasCodec TlsAllow where
|
|||||||
codec =
|
codec =
|
||||||
AC.object "TlsAllow" $
|
AC.object "TlsAllow" $
|
||||||
TlsAllow
|
TlsAllow
|
||||||
<$> requiredField' "host" AC..= taHost
|
<$> requiredField' "host"
|
||||||
<*> optionalField' "suffix" AC..= taSuffix
|
AC..= taHost
|
||||||
<*> optionalField' "permissions" AC..= taPermit
|
<*> optionalField' "suffix"
|
||||||
|
AC..= taSuffix
|
||||||
|
<*> optionalField' "permissions"
|
||||||
|
AC..= taPermit
|
||||||
|
|
||||||
instance FromJSON TlsAllow where
|
instance FromJSON TlsAllow where
|
||||||
parseJSON j = aString j <|> anObject j
|
parseJSON j = aString j <|> anObject j
|
@ -128,7 +128,6 @@ import Hasura.RQL.Types.Common
|
|||||||
import Hasura.RQL.Types.EECredentials
|
import Hasura.RQL.Types.EECredentials
|
||||||
import Hasura.RQL.Types.Eventing.Backend
|
import Hasura.RQL.Types.Eventing.Backend
|
||||||
import Hasura.RQL.Types.Metadata
|
import Hasura.RQL.Types.Metadata
|
||||||
import Hasura.RQL.Types.Network
|
|
||||||
import Hasura.RQL.Types.ResizePool
|
import Hasura.RQL.Types.ResizePool
|
||||||
import Hasura.RQL.Types.Roles (adminRoleName)
|
import Hasura.RQL.Types.Roles (adminRoleName)
|
||||||
import Hasura.RQL.Types.SchemaCache
|
import Hasura.RQL.Types.SchemaCache
|
||||||
@ -161,6 +160,7 @@ import Hasura.ShutdownLatch
|
|||||||
import Hasura.Tracing
|
import Hasura.Tracing
|
||||||
import Network.HTTP.Client qualified as HTTP
|
import Network.HTTP.Client qualified as HTTP
|
||||||
import Network.HTTP.Client.CreateManager (mkHttpManager)
|
import Network.HTTP.Client.CreateManager (mkHttpManager)
|
||||||
|
import Network.Types.Extended
|
||||||
import Network.Wai (Application)
|
import Network.Wai (Application)
|
||||||
import Network.Wai.Handler.Warp qualified as Warp
|
import Network.Wai.Handler.Warp qualified as Warp
|
||||||
import Options.Applicative
|
import Options.Applicative
|
||||||
|
@ -75,6 +75,7 @@ where
|
|||||||
|
|
||||||
import Autodocodec (HasCodec (codec), dimapCodec, object, optionalField', requiredField', (.=))
|
import Autodocodec (HasCodec (codec), dimapCodec, object, optionalField', requiredField', (.=))
|
||||||
import Autodocodec qualified as AC
|
import Autodocodec qualified as AC
|
||||||
|
import Autodocodec.Extended (boundedEnumCodec)
|
||||||
import Data.Aeson (FromJSON, FromJSONKey, ToJSON, ToJSONKey)
|
import Data.Aeson (FromJSON, FromJSONKey, ToJSON, ToJSONKey)
|
||||||
import Data.Aeson qualified as J
|
import Data.Aeson qualified as J
|
||||||
import Data.Aeson.Casing qualified as J
|
import Data.Aeson.Casing qualified as J
|
||||||
@ -98,7 +99,6 @@ import Hasura.Base.Error
|
|||||||
import Hasura.Base.ErrorValue qualified as ErrorValue
|
import Hasura.Base.ErrorValue qualified as ErrorValue
|
||||||
import Hasura.Base.ToErrorValue
|
import Hasura.Base.ToErrorValue
|
||||||
import Hasura.Function.Cache (FunctionArgName)
|
import Hasura.Function.Cache (FunctionArgName)
|
||||||
import Hasura.Metadata.DTO.Utils (boundedEnumCodec)
|
|
||||||
import Hasura.NativeQuery.Metadata (InterpolatedQuery, NativeQueryName)
|
import Hasura.NativeQuery.Metadata (InterpolatedQuery, NativeQueryName)
|
||||||
import Hasura.Prelude hiding (state)
|
import Hasura.Prelude hiding (state)
|
||||||
import Hasura.RQL.IR.BoolExp
|
import Hasura.RQL.IR.BoolExp
|
||||||
|
@ -26,13 +26,13 @@ import Hasura.RQL.Types.CustomTypes (CustomTypes, emptyCustomTypes)
|
|||||||
import Hasura.RQL.Types.Endpoint (_ceName)
|
import Hasura.RQL.Types.Endpoint (_ceName)
|
||||||
import Hasura.RQL.Types.GraphqlSchemaIntrospection (SetGraphqlIntrospectionOptions)
|
import Hasura.RQL.Types.GraphqlSchemaIntrospection (SetGraphqlIntrospectionOptions)
|
||||||
import Hasura.RQL.Types.Metadata.Common (Actions, BackendConfigWrapper, CronTriggers, Endpoints, InheritedRoles, QueryCollections, RemoteSchemas, Sources, sourcesCodec)
|
import Hasura.RQL.Types.Metadata.Common (Actions, BackendConfigWrapper, CronTriggers, Endpoints, InheritedRoles, QueryCollections, RemoteSchemas, Sources, sourcesCodec)
|
||||||
import Hasura.RQL.Types.Network (Network, emptyNetwork)
|
|
||||||
import Hasura.RQL.Types.OpenTelemetry (OpenTelemetryConfig, emptyOpenTelemetryConfig)
|
import Hasura.RQL.Types.OpenTelemetry (OpenTelemetryConfig, emptyOpenTelemetryConfig)
|
||||||
import Hasura.RQL.Types.QueryCollection qualified as QC
|
import Hasura.RQL.Types.QueryCollection qualified as QC
|
||||||
import Hasura.RQL.Types.Roles (Role (_rRoleName))
|
import Hasura.RQL.Types.Roles (Role (_rRoleName))
|
||||||
import Hasura.RQL.Types.ScheduledTrigger (CronTriggerMetadata (ctName))
|
import Hasura.RQL.Types.ScheduledTrigger (CronTriggerMetadata (ctName))
|
||||||
import Hasura.RemoteSchema.Metadata.Core (RemoteSchemaMetadataG (_rsmName))
|
import Hasura.RemoteSchema.Metadata.Core (RemoteSchemaMetadataG (_rsmName))
|
||||||
import Hasura.SQL.BackendMap (BackendMap)
|
import Hasura.SQL.BackendMap (BackendMap)
|
||||||
|
import Network.Types.Extended (Network, emptyNetwork)
|
||||||
|
|
||||||
-- | Revision 3 of the Metadata export format. Note that values of the types,
|
-- | Revision 3 of the Metadata export format. Note that values of the types,
|
||||||
-- 'PlaceholderArray' and 'PlaceholderObject' will eventually be expanded to represent more detail.
|
-- 'PlaceholderArray' and 'PlaceholderObject' will eventually be expanded to represent more detail.
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
-- | Utility functions for use defining autodocodec codecs.
|
-- | Utility functions for use defining autodocodec codecs.
|
||||||
module Hasura.Metadata.DTO.Utils
|
module Hasura.Metadata.DTO.Utils
|
||||||
( boolConstCodec,
|
( boolConstCodec,
|
||||||
boundedEnumCodec,
|
|
||||||
codecNamePrefix,
|
codecNamePrefix,
|
||||||
discriminatorField,
|
discriminatorField,
|
||||||
discriminatorBoolField,
|
discriminatorBoolField,
|
||||||
@ -12,7 +11,6 @@ module Hasura.Metadata.DTO.Utils
|
|||||||
where
|
where
|
||||||
|
|
||||||
import Autodocodec
|
import Autodocodec
|
||||||
import Data.List.NonEmpty qualified as NE
|
|
||||||
import Data.Scientific (Scientific)
|
import Data.Scientific (Scientific)
|
||||||
import Data.Text qualified as T
|
import Data.Text qualified as T
|
||||||
import Data.Text.Extended qualified as T
|
import Data.Text.Extended qualified as T
|
||||||
@ -29,29 +27,6 @@ boolConstCodec trueCase falseCase =
|
|||||||
(== trueCase)
|
(== trueCase)
|
||||||
$ codec @Bool
|
$ codec @Bool
|
||||||
|
|
||||||
-- | A codec for a 'Bounded' 'Enum' that maps to literal strings using
|
|
||||||
-- a provided function.
|
|
||||||
--
|
|
||||||
--
|
|
||||||
-- === Example usage
|
|
||||||
--
|
|
||||||
-- >>> data Fruit = FruitApple | FruitOrange deriving (Show, Eq, Enum, Bounded)
|
|
||||||
-- >>> let c = boundedEnumCodec (snakeCase . drop 5)
|
|
||||||
-- >>> toJSONVia c Apple
|
|
||||||
-- String "apple"
|
|
||||||
-- >>> JSON.parseMaybe (parseJSONVia c) (String "orange") :: Maybe Fruit
|
|
||||||
-- Just Orange
|
|
||||||
boundedEnumCodec ::
|
|
||||||
forall enum.
|
|
||||||
(Eq enum, Enum enum, Bounded enum) =>
|
|
||||||
(enum -> String) ->
|
|
||||||
JSONCodec enum
|
|
||||||
boundedEnumCodec display =
|
|
||||||
let ls = [minBound .. maxBound]
|
|
||||||
in case NE.nonEmpty ls of
|
|
||||||
Nothing -> error "0 enum values ?!"
|
|
||||||
Just ne -> stringConstCodec (NE.map (\v -> (v, T.pack (display v))) ne)
|
|
||||||
|
|
||||||
-- | Defines a required object field named @version@ that must have the given
|
-- | Defines a required object field named @version@ that must have the given
|
||||||
-- integer value. On serialization the field will have the given value
|
-- integer value. On serialization the field will have the given value
|
||||||
-- automatically. On deserialization parsing will fail unless the field has the
|
-- automatically. On deserialization parsing will fail unless the field has the
|
||||||
|
@ -73,7 +73,6 @@ import Hasura.RQL.Types.Eventing.Backend (BackendEventTrigger (..))
|
|||||||
import Hasura.RQL.Types.Metadata
|
import Hasura.RQL.Types.Metadata
|
||||||
import Hasura.RQL.Types.Metadata.Backend
|
import Hasura.RQL.Types.Metadata.Backend
|
||||||
import Hasura.RQL.Types.Metadata.Object
|
import Hasura.RQL.Types.Metadata.Object
|
||||||
import Hasura.RQL.Types.Network
|
|
||||||
import Hasura.RQL.Types.OpenTelemetry
|
import Hasura.RQL.Types.OpenTelemetry
|
||||||
import Hasura.RQL.Types.QueryCollection
|
import Hasura.RQL.Types.QueryCollection
|
||||||
import Hasura.RQL.Types.ScheduledTrigger
|
import Hasura.RQL.Types.ScheduledTrigger
|
||||||
@ -86,6 +85,7 @@ import Hasura.SQL.Backend (BackendType (..))
|
|||||||
import Hasura.SQL.BackendMap qualified as BackendMap
|
import Hasura.SQL.BackendMap qualified as BackendMap
|
||||||
import Hasura.Server.Logging (MetadataLog (..))
|
import Hasura.Server.Logging (MetadataLog (..))
|
||||||
import Network.HTTP.Client.Transformable qualified as HTTP
|
import Network.HTTP.Client.Transformable qualified as HTTP
|
||||||
|
import Network.Types.Extended
|
||||||
|
|
||||||
-- | Helper function to run the post drop source hook
|
-- | Helper function to run the post drop source hook
|
||||||
postDropSourceHookHelper ::
|
postDropSourceHookHelper ::
|
||||||
|
@ -14,8 +14,8 @@ import Hasura.Metadata.Class ()
|
|||||||
import Hasura.Prelude
|
import Hasura.Prelude
|
||||||
import Hasura.RQL.Types.Common
|
import Hasura.RQL.Types.Common
|
||||||
import Hasura.RQL.Types.Metadata
|
import Hasura.RQL.Types.Metadata
|
||||||
import Hasura.RQL.Types.Network
|
|
||||||
import Hasura.RQL.Types.SchemaCache.Build
|
import Hasura.RQL.Types.SchemaCache.Build
|
||||||
|
import Network.Types.Extended
|
||||||
|
|
||||||
runAddHostToTLSAllowlist ::
|
runAddHostToTLSAllowlist ::
|
||||||
(QErrM m, CacheRWM m, MetadataM m) =>
|
(QErrM m, CacheRWM m, MetadataM m) =>
|
||||||
|
@ -79,7 +79,6 @@ import Hasura.RQL.Types.Eventing.Backend
|
|||||||
import Hasura.RQL.Types.Metadata hiding (tmTable)
|
import Hasura.RQL.Types.Metadata hiding (tmTable)
|
||||||
import Hasura.RQL.Types.Metadata.Backend
|
import Hasura.RQL.Types.Metadata.Backend
|
||||||
import Hasura.RQL.Types.Metadata.Object
|
import Hasura.RQL.Types.Metadata.Object
|
||||||
import Hasura.RQL.Types.Network
|
|
||||||
import Hasura.RQL.Types.OpenTelemetry
|
import Hasura.RQL.Types.OpenTelemetry
|
||||||
import Hasura.RQL.Types.QueryCollection
|
import Hasura.RQL.Types.QueryCollection
|
||||||
import Hasura.RQL.Types.Relationships.Remote
|
import Hasura.RQL.Types.Relationships.Remote
|
||||||
@ -106,6 +105,7 @@ import Hasura.Services
|
|||||||
import Hasura.Session
|
import Hasura.Session
|
||||||
import Hasura.Tracing qualified as Tracing
|
import Hasura.Tracing qualified as Tracing
|
||||||
import Language.GraphQL.Draft.Syntax qualified as G
|
import Language.GraphQL.Draft.Syntax qualified as G
|
||||||
|
import Network.Types.Extended
|
||||||
|
|
||||||
{- Note [Roles Inheritance]
|
{- Note [Roles Inheritance]
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
@ -57,7 +57,7 @@ where
|
|||||||
|
|
||||||
import Autodocodec (HasCodec, dimapCodec, disjointEitherCodec, optionalField', optionalFieldWith', optionalFieldWithDefault', optionalFieldWithOmittedDefault', requiredField')
|
import Autodocodec (HasCodec, dimapCodec, disjointEitherCodec, optionalField', optionalFieldWith', optionalFieldWithDefault', optionalFieldWithOmittedDefault', requiredField')
|
||||||
import Autodocodec qualified as AC
|
import Autodocodec qualified as AC
|
||||||
import Autodocodec.Extended (graphQLFieldDescriptionCodec, graphQLFieldNameCodec, typeableName)
|
import Autodocodec.Extended (boundedEnumCodec, graphQLFieldDescriptionCodec, graphQLFieldNameCodec, typeableName)
|
||||||
import Control.Lens (makeLenses)
|
import Control.Lens (makeLenses)
|
||||||
import Data.Aeson qualified as J
|
import Data.Aeson qualified as J
|
||||||
import Data.Aeson.Casing qualified as J
|
import Data.Aeson.Casing qualified as J
|
||||||
@ -70,7 +70,7 @@ import Data.UUID qualified as UUID
|
|||||||
import Database.PG.Query qualified as PG
|
import Database.PG.Query qualified as PG
|
||||||
import Database.PG.Query.PTI qualified as PTI
|
import Database.PG.Query.PTI qualified as PTI
|
||||||
import Hasura.Base.Error
|
import Hasura.Base.Error
|
||||||
import Hasura.Metadata.DTO.Utils (boundedEnumCodec, discriminatorField)
|
import Hasura.Metadata.DTO.Utils (discriminatorField)
|
||||||
import Hasura.Prelude
|
import Hasura.Prelude
|
||||||
import Hasura.RQL.DDL.Headers
|
import Hasura.RQL.DDL.Headers
|
||||||
import Hasura.RQL.DDL.Webhook.Transform (MetadataResponseTransform, RequestTransform)
|
import Hasura.RQL.DDL.Webhook.Transform (MetadataResponseTransform, RequestTransform)
|
||||||
|
@ -30,7 +30,7 @@ where
|
|||||||
|
|
||||||
import Autodocodec (HasCodec (codec), dimapCodec, optionalField', requiredField')
|
import Autodocodec (HasCodec (codec), dimapCodec, optionalField', requiredField')
|
||||||
import Autodocodec qualified as AC
|
import Autodocodec qualified as AC
|
||||||
import Autodocodec.Extended (typeableName)
|
import Autodocodec.Extended (boundedEnumCodec, typeableName)
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
import Data.Aeson
|
import Data.Aeson
|
||||||
import Data.Aeson.Casing
|
import Data.Aeson.Casing
|
||||||
@ -41,7 +41,6 @@ import Data.Text.Extended
|
|||||||
import Data.Text.NonEmpty
|
import Data.Text.NonEmpty
|
||||||
import Data.Trie qualified as T
|
import Data.Trie qualified as T
|
||||||
import Data.Typeable (Typeable)
|
import Data.Typeable (Typeable)
|
||||||
import Hasura.Metadata.DTO.Utils (boundedEnumCodec)
|
|
||||||
import Hasura.Prelude
|
import Hasura.Prelude
|
||||||
import Hasura.RQL.Types.Endpoint.Trie as Trie
|
import Hasura.RQL.Types.Endpoint.Trie as Trie
|
||||||
import Hasura.RQL.Types.QueryCollection (CollectionName, QueryName)
|
import Hasura.RQL.Types.QueryCollection (CollectionName, QueryName)
|
||||||
|
@ -74,7 +74,6 @@ import Hasura.RQL.Types.EventTrigger
|
|||||||
import Hasura.RQL.Types.GraphqlSchemaIntrospection
|
import Hasura.RQL.Types.GraphqlSchemaIntrospection
|
||||||
import Hasura.RQL.Types.Metadata.Common
|
import Hasura.RQL.Types.Metadata.Common
|
||||||
import Hasura.RQL.Types.Metadata.Serialization
|
import Hasura.RQL.Types.Metadata.Serialization
|
||||||
import Hasura.RQL.Types.Network
|
|
||||||
import Hasura.RQL.Types.OpenTelemetry
|
import Hasura.RQL.Types.OpenTelemetry
|
||||||
import Hasura.RQL.Types.Permission
|
import Hasura.RQL.Types.Permission
|
||||||
import Hasura.RQL.Types.Roles (RoleName)
|
import Hasura.RQL.Types.Roles (RoleName)
|
||||||
@ -85,6 +84,7 @@ import Hasura.SQL.BackendMap (BackendMap)
|
|||||||
import Hasura.SQL.BackendMap qualified as BackendMap
|
import Hasura.SQL.BackendMap qualified as BackendMap
|
||||||
import Hasura.Tracing (TraceT)
|
import Hasura.Tracing (TraceT)
|
||||||
import Language.GraphQL.Draft.Syntax qualified as G
|
import Language.GraphQL.Draft.Syntax qualified as G
|
||||||
|
import Network.Types.Extended
|
||||||
|
|
||||||
-- | Versioning the @'Metadata' JSON structure to track backwards incompatible changes.
|
-- | Versioning the @'Metadata' JSON structure to track backwards incompatible changes.
|
||||||
-- This value is included in the metadata JSON object at top level 'version' key.
|
-- This value is included in the metadata JSON object at top level 'version' key.
|
||||||
|
@ -72,7 +72,6 @@ import Hasura.RQL.Types.Metadata.Common
|
|||||||
TableMetadata (..),
|
TableMetadata (..),
|
||||||
getSourceName,
|
getSourceName,
|
||||||
)
|
)
|
||||||
import Hasura.RQL.Types.Network (Network, emptyNetwork)
|
|
||||||
import Hasura.RQL.Types.OpenTelemetry
|
import Hasura.RQL.Types.OpenTelemetry
|
||||||
( OpenTelemetryConfig (..),
|
( OpenTelemetryConfig (..),
|
||||||
emptyOpenTelemetryConfig,
|
emptyOpenTelemetryConfig,
|
||||||
@ -106,6 +105,7 @@ import Hasura.SQL.BackendMap (BackendMap)
|
|||||||
import Hasura.SQL.BackendMap qualified as BackendMap
|
import Hasura.SQL.BackendMap qualified as BackendMap
|
||||||
import Hasura.SQL.Tag (HasTag (backendTag), reify)
|
import Hasura.SQL.Tag (HasTag (backendTag), reify)
|
||||||
import Language.GraphQL.Draft.Syntax qualified as G
|
import Language.GraphQL.Draft.Syntax qualified as G
|
||||||
|
import Network.Types.Extended (Network, emptyNetwork)
|
||||||
|
|
||||||
sourcesToOrdJSONList :: Sources -> AO.Array
|
sourcesToOrdJSONList :: Sources -> AO.Array
|
||||||
sourcesToOrdJSONList sources =
|
sourcesToOrdJSONList sources =
|
||||||
|
@ -38,6 +38,7 @@ where
|
|||||||
|
|
||||||
import Autodocodec (HasCodec, optionalField, optionalFieldWithDefault, optionalFieldWithDefault', requiredField', (<?>))
|
import Autodocodec (HasCodec, optionalField, optionalFieldWithDefault, optionalFieldWithDefault', requiredField', (<?>))
|
||||||
import Autodocodec qualified as AC
|
import Autodocodec qualified as AC
|
||||||
|
import Autodocodec.Extended (boundedEnumCodec)
|
||||||
import Control.Lens.TH (makeLenses)
|
import Control.Lens.TH (makeLenses)
|
||||||
import Data.Aeson (FromJSON, ToJSON (..), (.!=), (.:), (.:?), (.=))
|
import Data.Aeson (FromJSON, ToJSON (..), (.!=), (.:), (.:?), (.=))
|
||||||
import Data.Aeson qualified as Aeson
|
import Data.Aeson qualified as Aeson
|
||||||
@ -50,7 +51,6 @@ import Data.Set qualified as Set
|
|||||||
import Data.Text qualified as Text
|
import Data.Text qualified as Text
|
||||||
import GHC.Generics
|
import GHC.Generics
|
||||||
import Hasura.Base.Error (Code (InvalidParams), QErr, err400)
|
import Hasura.Base.Error (Code (InvalidParams), QErr, err400)
|
||||||
import Hasura.Metadata.DTO.Utils (boundedEnumCodec)
|
|
||||||
import Hasura.Prelude hiding (first)
|
import Hasura.Prelude hiding (first)
|
||||||
import Hasura.RQL.DDL.Headers
|
import Hasura.RQL.DDL.Headers
|
||||||
import Language.Haskell.TH.Syntax (Lift)
|
import Language.Haskell.TH.Syntax (Lift)
|
||||||
|
@ -145,7 +145,6 @@ import Hasura.RQL.Types.EventTrigger
|
|||||||
import Hasura.RQL.Types.GraphqlSchemaIntrospection
|
import Hasura.RQL.Types.GraphqlSchemaIntrospection
|
||||||
import Hasura.RQL.Types.Metadata
|
import Hasura.RQL.Types.Metadata
|
||||||
import Hasura.RQL.Types.Metadata.Object
|
import Hasura.RQL.Types.Metadata.Object
|
||||||
import Hasura.RQL.Types.Network (TlsAllow)
|
|
||||||
import Hasura.RQL.Types.OpenTelemetry (OpenTelemetryInfo)
|
import Hasura.RQL.Types.OpenTelemetry (OpenTelemetryInfo)
|
||||||
import Hasura.RQL.Types.QueryCollection
|
import Hasura.RQL.Types.QueryCollection
|
||||||
import Hasura.RQL.Types.Relationships.Local
|
import Hasura.RQL.Types.Relationships.Local
|
||||||
@ -165,6 +164,7 @@ import Hasura.SQL.Tag (HasTag (backendTag), reify)
|
|||||||
import Hasura.Session (UserInfoM)
|
import Hasura.Session (UserInfoM)
|
||||||
import Hasura.Tracing (TraceT)
|
import Hasura.Tracing (TraceT)
|
||||||
import Language.GraphQL.Draft.Syntax qualified as G
|
import Language.GraphQL.Draft.Syntax qualified as G
|
||||||
|
import Network.Types.Extended (TlsAllow)
|
||||||
import System.Cron.Types
|
import System.Cron.Types
|
||||||
|
|
||||||
newtype MetadataResourceVersion = MetadataResourceVersion
|
newtype MetadataResourceVersion = MetadataResourceVersion
|
||||||
|
@ -35,13 +35,13 @@ import Hasura.RQL.Types.Endpoint
|
|||||||
import Hasura.RQL.Types.EventTrigger
|
import Hasura.RQL.Types.EventTrigger
|
||||||
import Hasura.RQL.Types.GraphqlSchemaIntrospection
|
import Hasura.RQL.Types.GraphqlSchemaIntrospection
|
||||||
import Hasura.RQL.Types.Metadata (GetCatalogState, SetCatalogState)
|
import Hasura.RQL.Types.Metadata (GetCatalogState, SetCatalogState)
|
||||||
import Hasura.RQL.Types.Network
|
|
||||||
import Hasura.RQL.Types.OpenTelemetry
|
import Hasura.RQL.Types.OpenTelemetry
|
||||||
import Hasura.RQL.Types.QueryCollection
|
import Hasura.RQL.Types.QueryCollection
|
||||||
import Hasura.RQL.Types.Roles
|
import Hasura.RQL.Types.Roles
|
||||||
import Hasura.RQL.Types.ScheduledTrigger
|
import Hasura.RQL.Types.ScheduledTrigger
|
||||||
import Hasura.RemoteSchema.MetadataAPI
|
import Hasura.RemoteSchema.MetadataAPI
|
||||||
import Hasura.SQL.AnyBackend
|
import Hasura.SQL.AnyBackend
|
||||||
|
import Network.Types.Extended
|
||||||
|
|
||||||
data RQLMetadataV1
|
data RQLMetadataV1
|
||||||
= -- Sources
|
= -- Sources
|
||||||
|
@ -37,10 +37,10 @@ import Hasura.Prelude hiding (get, put)
|
|||||||
import Hasura.RQL.DDL.Schema
|
import Hasura.RQL.DDL.Schema
|
||||||
import Hasura.RQL.Types.Common (MetricsConfig)
|
import Hasura.RQL.Types.Common (MetricsConfig)
|
||||||
import Hasura.RQL.Types.Metadata.Object
|
import Hasura.RQL.Types.Metadata.Object
|
||||||
import Hasura.RQL.Types.Network
|
|
||||||
import Hasura.RQL.Types.SchemaCache
|
import Hasura.RQL.Types.SchemaCache
|
||||||
import Hasura.Server.Logging
|
import Hasura.Server.Logging
|
||||||
import Hasura.Server.Metrics
|
import Hasura.Server.Metrics
|
||||||
|
import Network.Types.Extended
|
||||||
import System.Metrics.Gauge (Gauge)
|
import System.Metrics.Gauge (Gauge)
|
||||||
import System.Metrics.Gauge qualified as Gauge
|
import System.Metrics.Gauge qualified as Gauge
|
||||||
|
|
||||||
|
@ -48,7 +48,6 @@ import Hasura.RQL.Types.Backend
|
|||||||
import Hasura.RQL.Types.Common
|
import Hasura.RQL.Types.Common
|
||||||
import Hasura.RQL.Types.CustomTypes
|
import Hasura.RQL.Types.CustomTypes
|
||||||
import Hasura.RQL.Types.Metadata
|
import Hasura.RQL.Types.Metadata
|
||||||
import Hasura.RQL.Types.Network
|
|
||||||
import Hasura.RQL.Types.OpenTelemetry (emptyOpenTelemetryConfig)
|
import Hasura.RQL.Types.OpenTelemetry (emptyOpenTelemetryConfig)
|
||||||
import Hasura.RQL.Types.SchemaCache
|
import Hasura.RQL.Types.SchemaCache
|
||||||
import Hasura.RQL.Types.SourceCustomization
|
import Hasura.RQL.Types.SourceCustomization
|
||||||
@ -62,6 +61,7 @@ import Hasura.Server.Migrate.Version
|
|||||||
import Hasura.Server.Types (MaintenanceMode (..))
|
import Hasura.Server.Types (MaintenanceMode (..))
|
||||||
import Language.Haskell.TH.Lib qualified as TH
|
import Language.Haskell.TH.Lib qualified as TH
|
||||||
import Language.Haskell.TH.Syntax qualified as TH
|
import Language.Haskell.TH.Syntax qualified as TH
|
||||||
|
import Network.Types.Extended
|
||||||
import System.Directory (doesFileExist)
|
import System.Directory (doesFileExist)
|
||||||
|
|
||||||
data MigrationResult
|
data MigrationResult
|
||||||
|
@ -25,8 +25,8 @@ import Hasura.RQL.Types.ApiLimit (emptyApiLimit)
|
|||||||
import Hasura.RQL.Types.Common (emptyMetricsConfig)
|
import Hasura.RQL.Types.Common (emptyMetricsConfig)
|
||||||
import Hasura.RQL.Types.CustomTypes (emptyCustomTypes)
|
import Hasura.RQL.Types.CustomTypes (emptyCustomTypes)
|
||||||
import Hasura.RQL.Types.Metadata (Metadata, MetadataDefaults, metadataToDTO, overrideMetadataDefaults)
|
import Hasura.RQL.Types.Metadata (Metadata, MetadataDefaults, metadataToDTO, overrideMetadataDefaults)
|
||||||
import Hasura.RQL.Types.Network (emptyNetwork)
|
|
||||||
import Hasura.RQL.Types.OpenTelemetry (emptyOpenTelemetryConfig)
|
import Hasura.RQL.Types.OpenTelemetry (emptyOpenTelemetryConfig)
|
||||||
|
import Network.Types.Extended (emptyNetwork)
|
||||||
import Test.Hspec
|
import Test.Hspec
|
||||||
import Test.Hspec.Expectations.Json (shouldBeJson)
|
import Test.Hspec.Expectations.Json (shouldBeJson)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user