mirror of
https://github.com/hasura/graphql-engine.git
synced 2024-12-15 01:12:56 +03:00
433 lines
15 KiB
Plaintext
433 lines
15 KiB
Plaintext
cabal-version: 2.2
|
|
|
|
name: graphql-engine
|
|
version: 1.0.0
|
|
synopsis: GraphQL API over Postgres
|
|
homepage: https://www.hasura.io
|
|
license: Apache-2.0
|
|
author: Vamshi Surabhi
|
|
maintainer: vamshi@hasura.io
|
|
copyright: Hasura Inc.
|
|
category: Database
|
|
build-type: Simple
|
|
|
|
source-repository head
|
|
type: git
|
|
location: https://github.com/hasura/graphql-engine
|
|
|
|
flag developer
|
|
description: operate in developer mode
|
|
default: False
|
|
manual: True
|
|
|
|
flag profile
|
|
description: compile with profile options set
|
|
default: False
|
|
manual: True
|
|
|
|
common common-all
|
|
ghc-options:
|
|
-O2 -fmax-simplifier-iterations=20 -foptimal-applicative-do
|
|
-Wall -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns -Wredundant-constraints
|
|
-fdefer-typed-holes
|
|
|
|
if flag(profile)
|
|
ghc-prof-options: -fprof-auto -fno-prof-count-entries
|
|
if flag(developer)
|
|
cpp-options: -DDeveloperAPIs
|
|
|
|
default-language: Haskell2010
|
|
default-extensions:
|
|
ApplicativeDo BangPatterns BlockArguments ConstraintKinds DefaultSignatures DeriveDataTypeable
|
|
DeriveFoldable DeriveFunctor DeriveGeneric DeriveLift DeriveTraversable DerivingVia EmptyCase
|
|
FlexibleContexts FlexibleInstances FunctionalDependencies GeneralizedNewtypeDeriving
|
|
InstanceSigs LambdaCase MultiParamTypeClasses MultiWayIf NamedFieldPuns NoImplicitPrelude
|
|
OverloadedStrings QuantifiedConstraints QuasiQuotes RankNTypes ScopedTypeVariables
|
|
StandaloneDeriving TemplateHaskell TupleSections TypeApplications TypeFamilies TypeOperators
|
|
|
|
common common-exe
|
|
ghc-options:
|
|
-threaded -rtsopts
|
|
-- Re. `-I2` see #2565
|
|
"-with-rtsopts=-N -I2"
|
|
|
|
if flag(profile)
|
|
ghc-prof-options: -rtsopts
|
|
|
|
library
|
|
import: common-all
|
|
hs-source-dirs: src-lib
|
|
build-depends: base
|
|
, lifted-base
|
|
, pg-client
|
|
, text
|
|
, text-builder >= 0.6
|
|
, bytestring
|
|
, postgresql-libpq
|
|
, mtl
|
|
, aeson
|
|
, aeson-casing
|
|
, unordered-containers
|
|
, template-haskell
|
|
, hashable
|
|
, transformers
|
|
, transformers-base
|
|
, http-types
|
|
, attoparsec
|
|
, attoparsec-iso8601 >= 1.0
|
|
, time
|
|
, scientific
|
|
, Spock-core
|
|
, split
|
|
, optparse-applicative
|
|
, containers
|
|
, monad-control
|
|
, monad-time
|
|
, monad-validate
|
|
, fast-logger
|
|
, wai
|
|
, postgresql-binary
|
|
, process
|
|
, http-client-tls
|
|
, profunctors
|
|
, deepseq
|
|
, dependent-map >=0.2.4 && <0.4
|
|
, dependent-sum >=0.4 && <0.5
|
|
|
|
-- `these >=1` is split into several different packages, but our current stack
|
|
-- resolver has `these <1`; when we upgrade we just need to add an extra
|
|
-- dependency on `semialign`
|
|
, these >=0.7.1 && <0.8
|
|
|
|
-- Encoder related
|
|
, uuid
|
|
, vector
|
|
|
|
-- Logging related
|
|
, network
|
|
, byteorder
|
|
|
|
-- for parsing RSA keys
|
|
, cryptonite
|
|
|
|
-- for jwt verification
|
|
, jose
|
|
, pem
|
|
, x509
|
|
, asn1-encoding
|
|
, asn1-types
|
|
|
|
-- Server related
|
|
, warp
|
|
, th-lift-instances
|
|
, lens
|
|
|
|
-- GraphQL related
|
|
, graphql-parser
|
|
|
|
-- URL parser related
|
|
, network-uri
|
|
|
|
-- String related
|
|
, case-insensitive
|
|
, string-conversions
|
|
, text-conversions
|
|
|
|
-- Http client
|
|
, wreq
|
|
, http-client
|
|
|
|
-- ordered map
|
|
, insert-ordered-containers
|
|
|
|
-- Parsing SemVer
|
|
, semver
|
|
|
|
-- Templating
|
|
, mustache
|
|
, file-embed
|
|
, shakespeare >= 2.0.22
|
|
|
|
--
|
|
, data-has
|
|
-- for src-exec
|
|
, yaml
|
|
, template-haskell >= 2.11
|
|
|
|
-- websockets interface related
|
|
, websockets
|
|
, wai-websockets
|
|
, stm
|
|
, stm-containers
|
|
, list-t
|
|
, async
|
|
, lifted-async
|
|
|
|
-- logging related
|
|
, base64-bytestring >= 1.0
|
|
, auto-update
|
|
|
|
-- regex related
|
|
, regex-tdfa >= 1.2
|
|
|
|
-- pretty printer
|
|
, ansi-wl-pprint
|
|
|
|
-- for capturing various metrics
|
|
, ekg-core
|
|
, ekg-json
|
|
|
|
-- metrics for CI integration
|
|
, ci-info
|
|
|
|
-- serve static files
|
|
, filepath >= 1.4
|
|
, mime-types >= 0.1
|
|
|
|
-- for handling posix signals for graceful shutdown
|
|
, unix
|
|
-- HTTP compression
|
|
, zlib
|
|
|
|
-- caching
|
|
, psqueues >= 0.2
|
|
|
|
-- testing
|
|
, QuickCheck
|
|
, generic-arbitrary
|
|
|
|
exposed-modules: Control.Arrow.Extended
|
|
, Control.Arrow.Trans
|
|
, Control.Monad.Stateless
|
|
, Control.Monad.Unique
|
|
|
|
, Hasura.Prelude
|
|
, Hasura.App
|
|
, Hasura.Db
|
|
-- Exposed for benchmark:
|
|
, Hasura.Cache.Bounded
|
|
, Hasura.Cache.Unbounded
|
|
, Hasura.Cache
|
|
, Hasura.Logging
|
|
, Hasura.HTTP
|
|
, Hasura.Incremental
|
|
|
|
, Hasura.Server.App
|
|
, Hasura.Server.Auth
|
|
, Hasura.Server.Init
|
|
, Hasura.Server.Query
|
|
, Hasura.Server.Utils
|
|
, Hasura.Server.Version
|
|
, Hasura.Server.Logging
|
|
, Hasura.Server.Context
|
|
, Hasura.Server.Migrate
|
|
, Hasura.Server.Compression
|
|
, Hasura.Server.PGDump
|
|
|
|
, Hasura.RQL.Types
|
|
, Hasura.RQL.Types.Run
|
|
, Hasura.RQL.DDL.Metadata
|
|
, Hasura.RQL.DDL.Metadata.Types
|
|
, Hasura.RQL.DDL.Metadata.Generator
|
|
, Hasura.RQL.DDL.Schema
|
|
, Hasura.EncJSON
|
|
|
|
, Data.Aeson.Ordered
|
|
|
|
other-modules: Hasura.Incremental.Select
|
|
, Hasura.Incremental.Internal.Cache
|
|
, Hasura.Incremental.Internal.Dependency
|
|
, Hasura.Incremental.Internal.Rule
|
|
|
|
, Hasura.Server.Auth.JWT
|
|
, Hasura.Server.Middleware
|
|
, Hasura.Server.Cors
|
|
, Hasura.Server.CheckUpdates
|
|
, Hasura.Server.Telemetry
|
|
, Hasura.Server.SchemaUpdate
|
|
, Hasura.Server.Config
|
|
, Hasura.Server.Migrate.Version
|
|
, Hasura.Server.Auth.JWT.Internal
|
|
, Hasura.Server.Auth.JWT.Logging
|
|
|
|
, Hasura.RQL.Instances
|
|
, Hasura.RQL.Types.SchemaCache
|
|
, Hasura.RQL.Types.SchemaCache.Build
|
|
, Hasura.RQL.Types.SchemaCacheTypes
|
|
, Hasura.RQL.Types.BoolExp
|
|
, Hasura.RQL.Types.Function
|
|
, Hasura.RQL.Types.Catalog
|
|
, Hasura.RQL.Types.Column
|
|
, Hasura.RQL.Types.Common
|
|
, Hasura.RQL.Types.ComputedField
|
|
, Hasura.RQL.Types.DML
|
|
, Hasura.RQL.Types.Error
|
|
, Hasura.RQL.Types.EventTrigger
|
|
, Hasura.RQL.Types.Metadata
|
|
, Hasura.RQL.Types.Permission
|
|
, Hasura.RQL.Types.QueryCollection
|
|
, Hasura.RQL.Types.RemoteSchema
|
|
, Hasura.RQL.DDL.ComputedField
|
|
, Hasura.RQL.DDL.Relationship
|
|
, Hasura.RQL.DDL.Deps
|
|
, Hasura.RQL.DDL.Permission.Internal
|
|
, Hasura.RQL.DDL.Permission.Triggers
|
|
, Hasura.RQL.DDL.Permission
|
|
, Hasura.RQL.DDL.Relationship.Rename
|
|
, Hasura.RQL.DDL.Relationship.Types
|
|
, Hasura.RQL.DDL.Schema.Cache
|
|
, Hasura.RQL.DDL.Schema.Cache.Common
|
|
, Hasura.RQL.DDL.Schema.Cache.Dependencies
|
|
, Hasura.RQL.DDL.Schema.Cache.Fields
|
|
, Hasura.RQL.DDL.Schema.Cache.Permission
|
|
, Hasura.RQL.DDL.Schema.Catalog
|
|
, Hasura.RQL.DDL.Schema.Diff
|
|
, Hasura.RQL.DDL.Schema.Enum
|
|
, Hasura.RQL.DDL.Schema.Function
|
|
, Hasura.RQL.DDL.Schema.Rename
|
|
, Hasura.RQL.DDL.Schema.Table
|
|
, Hasura.RQL.DDL.Utils
|
|
, Hasura.RQL.DDL.EventTrigger
|
|
, Hasura.RQL.DDL.Headers
|
|
, Hasura.RQL.DDL.RemoteSchema
|
|
, Hasura.RQL.DDL.QueryCollection
|
|
, Hasura.RQL.DML.Delete
|
|
, Hasura.RQL.DML.Internal
|
|
, Hasura.RQL.DML.Insert
|
|
, Hasura.RQL.DML.Mutation
|
|
, Hasura.RQL.DML.Returning
|
|
, Hasura.RQL.DML.Select.Internal
|
|
, Hasura.RQL.DML.Select.Types
|
|
, Hasura.RQL.DML.Select
|
|
, Hasura.RQL.DML.Update
|
|
, Hasura.RQL.DML.Count
|
|
, Hasura.RQL.GBoolExp
|
|
|
|
, Hasura.GraphQL.Transport.HTTP.Protocol
|
|
, Hasura.GraphQL.Transport.HTTP
|
|
, Hasura.GraphQL.Transport.WebSocket.Protocol
|
|
, Hasura.GraphQL.Transport.WebSocket.Server
|
|
, Hasura.GraphQL.Transport.WebSocket
|
|
, Hasura.GraphQL.Schema.BoolExp
|
|
, Hasura.GraphQL.Schema.Common
|
|
, Hasura.GraphQL.Schema.Function
|
|
, Hasura.GraphQL.Schema.OrderBy
|
|
, Hasura.GraphQL.Schema.Select
|
|
, Hasura.GraphQL.Schema.Merge
|
|
, Hasura.GraphQL.Schema.Mutation.Common
|
|
, Hasura.GraphQL.Schema.Mutation.Insert
|
|
, Hasura.GraphQL.Schema.Mutation.Update
|
|
, Hasura.GraphQL.Schema.Mutation.Delete
|
|
, Hasura.GraphQL.Schema
|
|
, Hasura.GraphQL.Utils
|
|
, Hasura.GraphQL.Validate
|
|
, Hasura.GraphQL.Validate.Types
|
|
, Hasura.GraphQL.Validate.Context
|
|
, Hasura.GraphQL.Validate.Field
|
|
, Hasura.GraphQL.Validate.InputValue
|
|
, Hasura.GraphQL.Explain
|
|
, Hasura.GraphQL.Execute
|
|
, Hasura.GraphQL.Execute.Plan
|
|
, Hasura.GraphQL.Execute.Query
|
|
, Hasura.GraphQL.Execute.LiveQuery
|
|
, Hasura.GraphQL.Execute.LiveQuery.Options
|
|
, Hasura.GraphQL.Execute.LiveQuery.Plan
|
|
, Hasura.GraphQL.Execute.LiveQuery.Poll
|
|
, Hasura.GraphQL.Execute.LiveQuery.State
|
|
, Hasura.GraphQL.Execute.LiveQuery.TMap
|
|
, Hasura.GraphQL.Resolve
|
|
, Hasura.GraphQL.Resolve.Types
|
|
, Hasura.GraphQL.Resolve.Context
|
|
, Hasura.GraphQL.Resolve.BoolExp
|
|
, Hasura.GraphQL.Resolve.InputValue
|
|
, Hasura.GraphQL.Resolve.Introspect
|
|
, Hasura.GraphQL.Resolve.Insert
|
|
, Hasura.GraphQL.Resolve.Mutation
|
|
, Hasura.GraphQL.Resolve.Select
|
|
, Hasura.GraphQL.RemoteServer
|
|
, Hasura.GraphQL.Context
|
|
, Hasura.GraphQL.Logging
|
|
|
|
, Hasura.Events.Lib
|
|
, Hasura.Events.HTTP
|
|
|
|
, Control.Concurrent.Extended
|
|
, Control.Lens.Extended
|
|
, Data.Aeson.Extended
|
|
, Data.HashMap.Strict.Extended
|
|
, Data.HashMap.Strict.InsOrd.Extended
|
|
, Data.Parser.JSONPath
|
|
, Data.Sequence.NonEmpty
|
|
, Data.TByteString
|
|
, Data.Text.Extended
|
|
, Data.Time.Clock.Units
|
|
|
|
, Hasura.SQL.DML
|
|
, Hasura.SQL.Error
|
|
, Hasura.SQL.GeoJSON
|
|
, Hasura.SQL.Rewrite
|
|
, Hasura.SQL.Time
|
|
, Hasura.SQL.Types
|
|
, Hasura.SQL.Value
|
|
, Network.URI.Extended
|
|
|
|
executable graphql-engine
|
|
import: common-all, common-exe
|
|
main-is: Main.hs
|
|
hs-source-dirs: src-exec
|
|
build-depends: base
|
|
, graphql-engine
|
|
, pg-client
|
|
, text
|
|
, bytestring
|
|
|
|
test-suite graphql-engine-tests
|
|
import: common-all, common-exe
|
|
type: exitcode-stdio-1.0
|
|
build-depends:
|
|
, aeson
|
|
, base
|
|
, bytestring
|
|
, graphql-engine
|
|
, hspec >=2.6.1 && <3
|
|
, hspec-core >=2.6.1 && <3
|
|
, hspec-expectations-lifted
|
|
, http-client
|
|
, http-client-tls
|
|
, lifted-base
|
|
, monad-control
|
|
, mtl
|
|
, natural-transformation >=0.4 && <0.5
|
|
, optparse-applicative
|
|
, pg-client
|
|
, QuickCheck
|
|
, time
|
|
, transformers-base
|
|
, unordered-containers
|
|
hs-source-dirs: src-test
|
|
main-is: Main.hs
|
|
other-modules:
|
|
Hasura.IncrementalSpec
|
|
Hasura.RQL.MetadataSpec
|
|
Hasura.Server.MigrateSpec
|
|
|
|
-- Benchmarks related to caching (e.g. the plan cache).
|
|
--
|
|
-- NOTE: Some of these are very slow and can only be reasonably run with `cache -n 1` for now.
|
|
benchmark cache
|
|
import: common-all, common-exe
|
|
type: exitcode-stdio-1.0
|
|
main-is: Main.hs
|
|
hs-source-dirs: src-bench-cache
|
|
build-depends: base
|
|
, criterion
|
|
, mwc-random
|
|
, mwc-probability
|
|
, vector
|
|
, deepseq
|
|
, graphql-engine
|
|
, split
|
|
, async
|
|
, text
|
|
, bytestring
|