2019-10-21 19:01:05 +03:00
|
|
|
|
cabal-version: 2.2
|
|
|
|
|
|
2018-06-27 16:11:32 +03:00
|
|
|
|
name: graphql-engine
|
|
|
|
|
version: 1.0.0
|
|
|
|
|
synopsis: GraphQL API over Postgres
|
|
|
|
|
homepage: https://www.hasura.io
|
2019-07-04 13:58:02 +03:00
|
|
|
|
license: Apache-2.0
|
2018-06-27 16:11:32 +03:00
|
|
|
|
author: Vamshi Surabhi
|
|
|
|
|
maintainer: vamshi@hasura.io
|
2019-07-04 13:58:02 +03:00
|
|
|
|
copyright: Hasura Inc.
|
2018-06-27 16:11:32 +03:00
|
|
|
|
category: Database
|
|
|
|
|
build-type: Simple
|
|
|
|
|
|
|
|
|
|
source-repository head
|
|
|
|
|
type: git
|
|
|
|
|
location: https://github.com/hasura/graphql-engine
|
|
|
|
|
|
|
|
|
|
flag developer
|
2020-01-18 01:07:15 +03:00
|
|
|
|
description: Enable support for development-only APIs
|
2019-04-17 12:48:41 +03:00
|
|
|
|
default: False
|
|
|
|
|
manual: True
|
|
|
|
|
|
2019-10-21 19:01:05 +03:00
|
|
|
|
common common-all
|
|
|
|
|
ghc-options:
|
2020-01-18 01:07:15 +03:00
|
|
|
|
-fmax-simplifier-iterations=20 -foptimal-applicative-do
|
2019-10-21 19:01:05 +03:00
|
|
|
|
-Wall -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns -Wredundant-constraints
|
|
|
|
|
|
|
|
|
|
if flag(developer)
|
|
|
|
|
cpp-options: -DDeveloperAPIs
|
|
|
|
|
|
|
|
|
|
default-language: Haskell2010
|
|
|
|
|
default-extensions:
|
2020-05-13 15:33:16 +03:00
|
|
|
|
ApplicativeDo BangPatterns BlockArguments ConstraintKinds DataKinds DefaultSignatures DeriveDataTypeable
|
2019-11-20 21:21:30 +03:00
|
|
|
|
DeriveFoldable DeriveFunctor DeriveGeneric DeriveLift DeriveTraversable DerivingVia EmptyCase
|
|
|
|
|
FlexibleContexts FlexibleInstances FunctionalDependencies GeneralizedNewtypeDeriving
|
|
|
|
|
InstanceSigs LambdaCase MultiParamTypeClasses MultiWayIf NamedFieldPuns NoImplicitPrelude
|
2020-05-13 15:33:16 +03:00
|
|
|
|
OverloadedStrings QuantifiedConstraints QuasiQuotes RankNTypes RecordWildCards ScopedTypeVariables
|
2019-11-20 21:21:30 +03:00
|
|
|
|
StandaloneDeriving TemplateHaskell TupleSections TypeApplications TypeFamilies TypeOperators
|
2020-05-27 18:02:58 +03:00
|
|
|
|
RecordWildCards
|
2019-10-21 19:01:05 +03:00
|
|
|
|
|
|
|
|
|
common common-exe
|
|
|
|
|
ghc-options:
|
|
|
|
|
-threaded -rtsopts
|
2020-07-09 04:25:36 +03:00
|
|
|
|
-- `-I0` disables idle GC. We do this in application code now. See 'ourIdleGC' for details.
|
|
|
|
|
-- `-T` is required to collect the stats we use in 'ourIdleGC'.
|
2020-01-09 02:19:02 +03:00
|
|
|
|
--
|
|
|
|
|
-- `-qn2` limits the parallel GC to at most 2 capabilities. This came up in #3354/#3394, as the
|
|
|
|
|
-- parallel GC was causing significant performance overhead. Folks in #ghc on freenode advised
|
|
|
|
|
-- limiting the parallel GC to 2 or 3 capabilities as a very conservative choice, since more
|
|
|
|
|
-- than that is highly unlikely to ever be helpful. More benchmarking would be useful to know if
|
|
|
|
|
-- this is the right decision. It’s possible it would better to just turn it off completely.
|
2020-06-24 03:35:36 +03:00
|
|
|
|
--
|
|
|
|
|
-- `-kc8K` helps limit memory consumption in websockets (perhaps elsewhere) by making the
|
|
|
|
|
-- cost of a thread's first (and probably only) stack overflow less severe.
|
|
|
|
|
-- See:https://github.com/hasura/graphql-engine/issues/5190
|
2020-07-05 05:53:19 +03:00
|
|
|
|
--
|
|
|
|
|
-- `--disable-delayed-os-memory-return` seems to help lower reported residency, in particular
|
|
|
|
|
-- in situations where we seem to be dealing with haskell heap fragmentation. This is more a
|
|
|
|
|
-- workaround for limitations in monitoring tools than anything...
|
2020-07-09 04:25:36 +03:00
|
|
|
|
"-with-rtsopts=-N -I0 -T -qn2 -kc8K --disable-delayed-os-memory-return"
|
2019-10-21 19:01:05 +03:00
|
|
|
|
|
2018-06-27 16:11:32 +03:00
|
|
|
|
library
|
2019-10-21 19:01:05 +03:00
|
|
|
|
import: common-all
|
2018-06-27 16:11:32 +03:00
|
|
|
|
hs-source-dirs: src-lib
|
|
|
|
|
build-depends: base
|
2020-05-27 18:02:58 +03:00
|
|
|
|
, bifunctors
|
|
|
|
|
, witherable
|
|
|
|
|
, validation
|
2019-12-11 04:04:49 +03:00
|
|
|
|
, lifted-base
|
2018-06-27 16:11:32 +03:00
|
|
|
|
, pg-client
|
|
|
|
|
, text
|
2018-10-19 05:15:28 +03:00
|
|
|
|
, text-builder >= 0.6
|
2020-05-27 18:02:58 +03:00
|
|
|
|
, vector-builder
|
2018-06-27 16:11:32 +03:00
|
|
|
|
, bytestring
|
|
|
|
|
, postgresql-libpq
|
|
|
|
|
, mtl
|
|
|
|
|
, aeson
|
|
|
|
|
, aeson-casing
|
|
|
|
|
, unordered-containers
|
|
|
|
|
, template-haskell
|
|
|
|
|
, hashable
|
|
|
|
|
, transformers
|
|
|
|
|
, transformers-base
|
|
|
|
|
, http-types
|
|
|
|
|
, attoparsec
|
2018-06-28 10:11:49 +03:00
|
|
|
|
, attoparsec-iso8601 >= 1.0
|
2020-05-13 15:33:16 +03:00
|
|
|
|
, time >= 1.9
|
2018-06-27 16:11:32 +03:00
|
|
|
|
, scientific
|
|
|
|
|
, Spock-core
|
|
|
|
|
, split
|
|
|
|
|
, optparse-applicative
|
|
|
|
|
, containers
|
|
|
|
|
, monad-control
|
add support for jwt authorization (close #186) (#255)
The API:
1. HGE has `--jwt-secret` flag or `HASURA_GRAPHQL_JWT_SECRET` env var. The value of which is a JSON.
2. The structure of this JSON is: `{"type": "<standard-JWT-algorithms>", "key": "<the-key>"}`
`type` : Standard JWT algos : `HS256`, `RS256`, `RS512` etc. (see jwt.io).
`key`:
i. Incase of symmetric key, the key as it is.
ii. Incase of asymmetric keys, only the public key, in a PEM encoded string or as a X509 certificate.
3. The claims in the JWT token must contain the following:
i. `x-hasura-default-role` field: default role of that user
ii. `x-hasura-allowed-roles` : A list of allowed roles for the user. The default role is overriden by `x-hasura-role` header.
4. The claims in the JWT token, can have other `x-hasura-*` fields where their values can only be strings.
5. The JWT tokens are sent as `Authorization: Bearer <token>` headers.
---
To test:
1. Generate a shared secret (for HMAC-SHA256) or RSA key pair.
2. Goto https://jwt.io/ , add the keys
3. Edit the claims to have `x-hasura-role` (mandatory) and other `x-hasura-*` fields. Add permissions related to the claims to test permissions.
4. Start HGE with `--jwt-secret` flag or `HASURA_GRAPHQL_JWT_SECRET` env var, which takes a JSON string: `{"type": "HS256", "key": "mylongsharedsecret"}` or `{"type":"RS256", "key": "<PEM-encoded-public-key>"}`
5. Copy the JWT token from jwt.io and use it in the `Authorization: Bearer <token>` header.
---
TODO: Support EC public keys. It is blocked on frasertweedale/hs-jose#61
2018-08-30 13:32:09 +03:00
|
|
|
|
, monad-time
|
2019-07-22 15:47:13 +03:00
|
|
|
|
, monad-validate
|
2018-06-27 16:11:32 +03:00
|
|
|
|
, fast-logger
|
|
|
|
|
, wai
|
|
|
|
|
, postgresql-binary
|
2018-07-03 18:34:25 +03:00
|
|
|
|
, process
|
2019-11-26 15:14:21 +03:00
|
|
|
|
, http-client-tls
|
2019-11-18 21:45:54 +03:00
|
|
|
|
, profunctors
|
2019-11-27 01:49:42 +03:00
|
|
|
|
, deepseq
|
2019-12-15 16:28:23 +03:00
|
|
|
|
, dependent-map >=0.2.4 && <0.4
|
|
|
|
|
, dependent-sum >=0.4 && <0.5
|
2020-05-13 15:33:16 +03:00
|
|
|
|
, exceptions
|
|
|
|
|
, these
|
|
|
|
|
, semialign
|
2019-11-20 21:21:30 +03:00
|
|
|
|
|
2018-06-27 16:11:32 +03:00
|
|
|
|
-- Encoder related
|
|
|
|
|
, uuid
|
|
|
|
|
, vector
|
2020-05-27 18:02:58 +03:00
|
|
|
|
, vector-builder
|
2018-06-27 16:11:32 +03:00
|
|
|
|
|
|
|
|
|
-- Logging related
|
|
|
|
|
, network
|
|
|
|
|
, byteorder
|
|
|
|
|
|
2019-07-11 08:37:06 +03:00
|
|
|
|
-- for parsing RSA keys
|
2018-06-27 16:11:32 +03:00
|
|
|
|
, cryptonite
|
2019-07-11 08:37:06 +03:00
|
|
|
|
|
add support for jwt authorization (close #186) (#255)
The API:
1. HGE has `--jwt-secret` flag or `HASURA_GRAPHQL_JWT_SECRET` env var. The value of which is a JSON.
2. The structure of this JSON is: `{"type": "<standard-JWT-algorithms>", "key": "<the-key>"}`
`type` : Standard JWT algos : `HS256`, `RS256`, `RS512` etc. (see jwt.io).
`key`:
i. Incase of symmetric key, the key as it is.
ii. Incase of asymmetric keys, only the public key, in a PEM encoded string or as a X509 certificate.
3. The claims in the JWT token must contain the following:
i. `x-hasura-default-role` field: default role of that user
ii. `x-hasura-allowed-roles` : A list of allowed roles for the user. The default role is overriden by `x-hasura-role` header.
4. The claims in the JWT token, can have other `x-hasura-*` fields where their values can only be strings.
5. The JWT tokens are sent as `Authorization: Bearer <token>` headers.
---
To test:
1. Generate a shared secret (for HMAC-SHA256) or RSA key pair.
2. Goto https://jwt.io/ , add the keys
3. Edit the claims to have `x-hasura-role` (mandatory) and other `x-hasura-*` fields. Add permissions related to the claims to test permissions.
4. Start HGE with `--jwt-secret` flag or `HASURA_GRAPHQL_JWT_SECRET` env var, which takes a JSON string: `{"type": "HS256", "key": "mylongsharedsecret"}` or `{"type":"RS256", "key": "<PEM-encoded-public-key>"}`
5. Copy the JWT token from jwt.io and use it in the `Authorization: Bearer <token>` header.
---
TODO: Support EC public keys. It is blocked on frasertweedale/hs-jose#61
2018-08-30 13:32:09 +03:00
|
|
|
|
-- for jwt verification
|
|
|
|
|
, jose
|
|
|
|
|
, pem
|
|
|
|
|
, x509
|
|
|
|
|
, asn1-encoding
|
|
|
|
|
, asn1-types
|
2018-06-27 16:11:32 +03:00
|
|
|
|
|
|
|
|
|
-- Server related
|
|
|
|
|
, warp
|
|
|
|
|
, th-lift-instances
|
|
|
|
|
, lens
|
|
|
|
|
|
|
|
|
|
-- GraphQL related
|
|
|
|
|
, graphql-parser
|
|
|
|
|
|
|
|
|
|
-- URL parser related
|
|
|
|
|
, network-uri
|
2020-01-23 00:55:55 +03:00
|
|
|
|
, uri-encode
|
2018-06-27 16:11:32 +03:00
|
|
|
|
|
|
|
|
|
-- String related
|
|
|
|
|
, case-insensitive
|
2019-08-29 16:07:05 +03:00
|
|
|
|
, text-conversions
|
2018-06-27 16:11:32 +03:00
|
|
|
|
|
|
|
|
|
-- Http client
|
|
|
|
|
, wreq
|
|
|
|
|
, http-client
|
|
|
|
|
|
2018-06-28 11:19:27 +03:00
|
|
|
|
-- ordered map
|
|
|
|
|
, insert-ordered-containers
|
|
|
|
|
|
2018-07-03 18:34:25 +03:00
|
|
|
|
-- Parsing SemVer
|
|
|
|
|
, semver
|
|
|
|
|
|
|
|
|
|
-- Templating
|
|
|
|
|
, mustache
|
2018-09-05 14:26:46 +03:00
|
|
|
|
, file-embed
|
2019-10-11 08:13:57 +03:00
|
|
|
|
, shakespeare >= 2.0.22
|
2018-07-03 18:34:25 +03:00
|
|
|
|
|
2018-06-27 16:11:32 +03:00
|
|
|
|
--
|
|
|
|
|
, data-has
|
2018-07-11 10:13:07 +03:00
|
|
|
|
-- for src-exec
|
|
|
|
|
, yaml
|
|
|
|
|
, template-haskell >= 2.11
|
2018-06-27 16:11:32 +03:00
|
|
|
|
|
2018-07-20 10:22:46 +03:00
|
|
|
|
-- websockets interface related
|
|
|
|
|
, websockets
|
|
|
|
|
, wai-websockets
|
|
|
|
|
, stm
|
|
|
|
|
, stm-containers
|
|
|
|
|
, list-t
|
|
|
|
|
, async
|
2019-12-11 04:04:49 +03:00
|
|
|
|
, lifted-async
|
2020-03-05 20:59:26 +03:00
|
|
|
|
, immortal < 0.3
|
2018-07-20 10:22:46 +03:00
|
|
|
|
|
|
|
|
|
-- logging related
|
|
|
|
|
, base64-bytestring >= 1.0
|
|
|
|
|
, auto-update
|
|
|
|
|
|
2018-07-27 12:50:12 +03:00
|
|
|
|
-- regex related
|
2020-04-02 02:22:55 +03:00
|
|
|
|
, regex-tdfa >=1.3.1 && <1.4
|
2018-07-27 12:50:12 +03:00
|
|
|
|
|
2018-12-14 06:21:41 +03:00
|
|
|
|
-- pretty printer
|
|
|
|
|
, ansi-wl-pprint
|
|
|
|
|
|
2019-07-10 15:01:52 +03:00
|
|
|
|
-- for capturing various metrics
|
2019-04-17 12:48:41 +03:00
|
|
|
|
, ekg-core
|
2019-07-10 15:01:52 +03:00
|
|
|
|
, ekg-json
|
2019-04-17 12:48:41 +03:00
|
|
|
|
|
2019-06-26 09:23:40 +03:00
|
|
|
|
-- metrics for CI integration
|
|
|
|
|
, ci-info
|
|
|
|
|
|
2019-05-16 10:45:29 +03:00
|
|
|
|
-- serve static files
|
|
|
|
|
, filepath >= 1.4
|
|
|
|
|
, mime-types >= 0.1
|
|
|
|
|
|
2019-11-26 15:14:21 +03:00
|
|
|
|
-- for handling posix signals for graceful shutdown
|
|
|
|
|
, unix
|
2019-09-19 15:54:40 +03:00
|
|
|
|
-- HTTP compression
|
|
|
|
|
, zlib
|
|
|
|
|
|
2019-11-25 20:12:23 +03:00
|
|
|
|
-- caching
|
|
|
|
|
, psqueues >= 0.2
|
|
|
|
|
|
2019-12-14 09:47:38 +03:00
|
|
|
|
-- testing
|
|
|
|
|
, QuickCheck
|
|
|
|
|
, generic-arbitrary
|
2020-05-13 15:33:16 +03:00
|
|
|
|
, quickcheck-instances
|
|
|
|
|
|
2020-04-02 02:22:55 +03:00
|
|
|
|
-- 0.6.1 is supposedly not okay for ghc 8.6:
|
|
|
|
|
-- https://github.com/nomeata/ghc-heap-view/issues/27
|
2020-04-03 11:24:51 +03:00
|
|
|
|
, ghc-heap-view
|
2020-04-02 02:22:55 +03:00
|
|
|
|
|
2020-02-07 14:03:12 +03:00
|
|
|
|
, directory
|
2020-07-14 08:56:53 +03:00
|
|
|
|
|
2020-07-15 13:40:48 +03:00
|
|
|
|
, random
|
|
|
|
|
, mmorph
|
|
|
|
|
, http-api-data
|
2020-07-23 23:39:26 +03:00
|
|
|
|
, lens-aeson
|
|
|
|
|
, safe
|
2020-07-15 13:40:48 +03:00
|
|
|
|
|
2020-06-08 15:13:01 +03:00
|
|
|
|
, semigroups >= 0.19.1
|
2019-12-14 09:47:38 +03:00
|
|
|
|
|
2020-05-13 15:33:16 +03:00
|
|
|
|
-- scheduled triggers
|
|
|
|
|
, cron >= 0.6.2
|
|
|
|
|
|
2019-11-27 01:49:42 +03:00
|
|
|
|
exposed-modules: Control.Arrow.Extended
|
2019-12-14 13:38:44 +03:00
|
|
|
|
, Control.Arrow.Trans
|
2020-07-14 08:56:53 +03:00
|
|
|
|
, Control.Concurrent.Extended
|
|
|
|
|
, Control.Lens.Extended
|
2019-11-27 01:49:42 +03:00
|
|
|
|
, Control.Monad.Stateless
|
2019-11-20 21:21:30 +03:00
|
|
|
|
, Control.Monad.Unique
|
2020-07-14 08:56:53 +03:00
|
|
|
|
, Data.Aeson.Extended
|
|
|
|
|
, Data.Aeson.Ordered
|
2020-07-14 22:00:58 +03:00
|
|
|
|
, Data.Environment
|
2020-07-14 08:56:53 +03:00
|
|
|
|
, Data.HashMap.Strict.Extended
|
|
|
|
|
, Data.HashMap.Strict.InsOrd.Extended
|
|
|
|
|
, Data.List.Extended
|
2020-01-14 00:56:51 +03:00
|
|
|
|
, Data.Parser.CacheControl
|
2020-07-14 08:56:53 +03:00
|
|
|
|
, Data.Parser.Expires
|
|
|
|
|
, Data.Parser.JSONPath
|
|
|
|
|
, Data.Sequence.NonEmpty
|
|
|
|
|
, Data.TByteString
|
|
|
|
|
, Data.Text.Extended
|
|
|
|
|
, Data.Time.Clock.Units
|
2020-02-13 20:38:23 +03:00
|
|
|
|
, Data.URL.Template
|
2019-11-26 15:14:21 +03:00
|
|
|
|
, Hasura.App
|
2019-12-13 22:52:19 +03:00
|
|
|
|
, Hasura.Cache.Bounded
|
2020-07-14 08:56:53 +03:00
|
|
|
|
, Hasura.Db
|
|
|
|
|
, Hasura.EncJSON
|
|
|
|
|
, Hasura.Eventing.Common
|
|
|
|
|
, Hasura.Eventing.EventTrigger
|
|
|
|
|
, Hasura.Eventing.HTTP
|
|
|
|
|
, Hasura.Eventing.ScheduledTrigger
|
|
|
|
|
, Hasura.GraphQL.Context
|
2020-06-16 18:23:06 +03:00
|
|
|
|
, Hasura.GraphQL.Execute
|
|
|
|
|
, Hasura.GraphQL.Execute.LiveQuery
|
2020-07-14 08:56:53 +03:00
|
|
|
|
, 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.Execute.Plan
|
|
|
|
|
, Hasura.GraphQL.Execute.Query
|
|
|
|
|
, Hasura.GraphQL.Explain
|
|
|
|
|
, Hasura.GraphQL.Logging
|
|
|
|
|
, Hasura.GraphQL.NormalForm
|
|
|
|
|
, Hasura.GraphQL.RelaySchema
|
|
|
|
|
, Hasura.GraphQL.RemoteServer
|
|
|
|
|
, Hasura.GraphQL.Resolve
|
|
|
|
|
, Hasura.GraphQL.Resolve.Action
|
|
|
|
|
, Hasura.GraphQL.Resolve.BoolExp
|
|
|
|
|
, Hasura.GraphQL.Resolve.Context
|
|
|
|
|
, Hasura.GraphQL.Resolve.InputValue
|
|
|
|
|
, Hasura.GraphQL.Resolve.Insert
|
|
|
|
|
, Hasura.GraphQL.Resolve.Introspect
|
|
|
|
|
, Hasura.GraphQL.Resolve.Mutation
|
|
|
|
|
, Hasura.GraphQL.Resolve.Select
|
|
|
|
|
, Hasura.GraphQL.Resolve.Types
|
|
|
|
|
, Hasura.GraphQL.Schema
|
|
|
|
|
, Hasura.GraphQL.Schema.Action
|
|
|
|
|
, Hasura.GraphQL.Schema.BoolExp
|
|
|
|
|
, Hasura.GraphQL.Schema.Builder
|
|
|
|
|
, Hasura.GraphQL.Schema.Common
|
|
|
|
|
, Hasura.GraphQL.Schema.CustomTypes
|
|
|
|
|
, Hasura.GraphQL.Schema.Function
|
|
|
|
|
, Hasura.GraphQL.Schema.Merge
|
|
|
|
|
, Hasura.GraphQL.Schema.Mutation.Common
|
|
|
|
|
, Hasura.GraphQL.Schema.Mutation.Delete
|
|
|
|
|
, Hasura.GraphQL.Schema.Mutation.Insert
|
|
|
|
|
, Hasura.GraphQL.Schema.Mutation.Update
|
|
|
|
|
, Hasura.GraphQL.Schema.OrderBy
|
|
|
|
|
, Hasura.GraphQL.Schema.Select
|
2020-06-16 18:23:06 +03:00
|
|
|
|
, Hasura.GraphQL.Transport.HTTP
|
2020-07-14 08:56:53 +03:00
|
|
|
|
, Hasura.GraphQL.Transport.HTTP.Protocol
|
|
|
|
|
, Hasura.GraphQL.Transport.WebSocket
|
2020-06-16 18:23:06 +03:00
|
|
|
|
, Hasura.GraphQL.Transport.WebSocket.Protocol
|
|
|
|
|
, Hasura.GraphQL.Transport.WebSocket.Server
|
2020-07-14 08:56:53 +03:00
|
|
|
|
, Hasura.GraphQL.Utils
|
|
|
|
|
, Hasura.GraphQL.Validate
|
|
|
|
|
, Hasura.GraphQL.Validate.Context
|
|
|
|
|
, Hasura.GraphQL.Validate.InputValue
|
|
|
|
|
, Hasura.GraphQL.Validate.SelectionSet
|
|
|
|
|
, Hasura.GraphQL.Validate.Types
|
|
|
|
|
, Hasura.HTTP
|
|
|
|
|
, Hasura.Incremental
|
2019-12-15 16:28:23 +03:00
|
|
|
|
, Hasura.Incremental.Internal.Cache
|
|
|
|
|
, Hasura.Incremental.Internal.Dependency
|
|
|
|
|
, Hasura.Incremental.Internal.Rule
|
2020-07-14 08:56:53 +03:00
|
|
|
|
, Hasura.Incremental.Select
|
|
|
|
|
, Hasura.Logging
|
|
|
|
|
, Hasura.Prelude
|
|
|
|
|
, Hasura.RQL.DDL.Action
|
2019-10-18 11:29:47 +03:00
|
|
|
|
, Hasura.RQL.DDL.ComputedField
|
2020-07-14 08:56:53 +03:00
|
|
|
|
, Hasura.RQL.DDL.CustomTypes
|
2018-06-27 16:11:32 +03:00
|
|
|
|
, Hasura.RQL.DDL.Deps
|
2020-07-14 08:56:53 +03:00
|
|
|
|
, Hasura.RQL.DDL.EventTrigger
|
|
|
|
|
, Hasura.RQL.DDL.Headers
|
|
|
|
|
, Hasura.RQL.DDL.Metadata
|
|
|
|
|
, Hasura.RQL.DDL.Metadata.Generator
|
|
|
|
|
, Hasura.RQL.DDL.Metadata.Types
|
2018-06-27 16:11:32 +03:00
|
|
|
|
, Hasura.RQL.DDL.Permission
|
2020-07-14 08:56:53 +03:00
|
|
|
|
, Hasura.RQL.DDL.Permission.Internal
|
|
|
|
|
, Hasura.RQL.DDL.QueryCollection
|
|
|
|
|
, Hasura.RQL.DDL.Relationship
|
2019-03-01 12:17:22 +03:00
|
|
|
|
, Hasura.RQL.DDL.Relationship.Rename
|
|
|
|
|
, Hasura.RQL.DDL.Relationship.Types
|
2020-07-14 08:56:53 +03:00
|
|
|
|
, Hasura.RQL.DDL.RemoteRelationship
|
|
|
|
|
, Hasura.RQL.DDL.RemoteRelationship.Validate
|
|
|
|
|
, Hasura.RQL.DDL.RemoteSchema
|
|
|
|
|
, Hasura.RQL.DDL.ScheduledTrigger
|
|
|
|
|
, Hasura.RQL.DDL.Schema
|
|
|
|
|
, Hasura.RQL.DDL.Schema.Cache
|
2019-12-09 01:17:39 +03:00
|
|
|
|
, Hasura.RQL.DDL.Schema.Cache.Common
|
|
|
|
|
, Hasura.RQL.DDL.Schema.Cache.Dependencies
|
|
|
|
|
, Hasura.RQL.DDL.Schema.Cache.Fields
|
|
|
|
|
, Hasura.RQL.DDL.Schema.Cache.Permission
|
2019-08-14 02:34:37 +03:00
|
|
|
|
, Hasura.RQL.DDL.Schema.Catalog
|
2018-06-27 16:11:32 +03:00
|
|
|
|
, Hasura.RQL.DDL.Schema.Diff
|
2019-08-14 02:34:37 +03:00
|
|
|
|
, Hasura.RQL.DDL.Schema.Enum
|
2019-07-22 15:47:13 +03:00
|
|
|
|
, Hasura.RQL.DDL.Schema.Function
|
|
|
|
|
, Hasura.RQL.DDL.Schema.Rename
|
|
|
|
|
, Hasura.RQL.DDL.Schema.Table
|
2018-06-27 16:11:32 +03:00
|
|
|
|
, Hasura.RQL.DDL.Utils
|
2020-07-14 08:56:53 +03:00
|
|
|
|
, Hasura.RQL.DML.Count
|
2018-06-27 16:11:32 +03:00
|
|
|
|
, Hasura.RQL.DML.Delete
|
|
|
|
|
, Hasura.RQL.DML.Insert
|
2020-07-14 08:56:53 +03:00
|
|
|
|
, Hasura.RQL.DML.Internal
|
2019-03-07 13:24:07 +03:00
|
|
|
|
, Hasura.RQL.DML.Mutation
|
2020-07-14 08:56:53 +03:00
|
|
|
|
, Hasura.RQL.DML.RemoteJoin
|
2018-06-27 16:11:32 +03:00
|
|
|
|
, Hasura.RQL.DML.Returning
|
2020-07-14 08:56:53 +03:00
|
|
|
|
, Hasura.RQL.DML.Select
|
2018-10-31 15:51:20 +03:00
|
|
|
|
, Hasura.RQL.DML.Select.Internal
|
2018-12-12 15:58:39 +03:00
|
|
|
|
, Hasura.RQL.DML.Select.Types
|
2018-06-27 16:11:32 +03:00
|
|
|
|
, Hasura.RQL.DML.Update
|
|
|
|
|
, Hasura.RQL.GBoolExp
|
2020-07-14 08:56:53 +03:00
|
|
|
|
, Hasura.RQL.Instances
|
|
|
|
|
, Hasura.RQL.Types
|
|
|
|
|
, Hasura.RQL.Types.Action
|
|
|
|
|
, Hasura.RQL.Types.BoolExp
|
|
|
|
|
, Hasura.RQL.Types.Catalog
|
|
|
|
|
, Hasura.RQL.Types.Column
|
|
|
|
|
, Hasura.RQL.Types.Common
|
|
|
|
|
, Hasura.RQL.Types.ComputedField
|
|
|
|
|
, Hasura.RQL.Types.CustomTypes
|
|
|
|
|
, Hasura.RQL.Types.DML
|
|
|
|
|
, Hasura.RQL.Types.Error
|
|
|
|
|
, Hasura.RQL.Types.EventTrigger
|
|
|
|
|
, Hasura.RQL.Types.Function
|
|
|
|
|
, Hasura.RQL.Types.Metadata
|
|
|
|
|
, Hasura.RQL.Types.Permission
|
|
|
|
|
, Hasura.RQL.Types.QueryCollection
|
|
|
|
|
, Hasura.RQL.Types.RemoteRelationship
|
|
|
|
|
, Hasura.RQL.Types.RemoteSchema
|
|
|
|
|
, Hasura.RQL.Types.Run
|
|
|
|
|
, Hasura.RQL.Types.ScheduledTrigger
|
|
|
|
|
, Hasura.RQL.Types.SchemaCache
|
|
|
|
|
, Hasura.RQL.Types.SchemaCache.Build
|
|
|
|
|
, Hasura.RQL.Types.SchemaCacheTypes
|
|
|
|
|
, Hasura.RQL.Types.Table
|
|
|
|
|
, Hasura.Server.API.Config
|
|
|
|
|
, Hasura.Server.API.PGDump
|
|
|
|
|
, Hasura.Server.API.Query
|
|
|
|
|
, Hasura.Server.App
|
|
|
|
|
, Hasura.Server.Auth
|
|
|
|
|
, Hasura.Server.Auth.JWT
|
|
|
|
|
, Hasura.Server.Auth.JWT.Internal
|
|
|
|
|
, Hasura.Server.Auth.JWT.Logging
|
|
|
|
|
, Hasura.Server.Auth.WebHook
|
|
|
|
|
, Hasura.Server.CheckUpdates
|
|
|
|
|
, Hasura.Server.Compression
|
|
|
|
|
, Hasura.Server.Cors
|
|
|
|
|
, Hasura.Server.Init
|
|
|
|
|
, Hasura.Server.Init.Config
|
|
|
|
|
, Hasura.Server.Logging
|
|
|
|
|
, Hasura.Server.Middleware
|
|
|
|
|
, Hasura.Server.Migrate
|
|
|
|
|
, Hasura.Server.Migrate.Version
|
|
|
|
|
, Hasura.Server.SchemaUpdate
|
|
|
|
|
, Hasura.Server.Telemetry
|
|
|
|
|
, Hasura.Server.Telemetry.Counters
|
|
|
|
|
, Hasura.Server.Utils
|
|
|
|
|
, Hasura.Server.Version
|
|
|
|
|
, Hasura.Session
|
2018-06-27 16:11:32 +03:00
|
|
|
|
, Hasura.SQL.DML
|
2019-07-22 15:47:13 +03:00
|
|
|
|
, Hasura.SQL.Error
|
2018-06-27 16:11:32 +03:00
|
|
|
|
, Hasura.SQL.GeoJSON
|
2018-10-12 12:28:43 +03:00
|
|
|
|
, Hasura.SQL.Rewrite
|
2019-07-22 15:47:13 +03:00
|
|
|
|
, Hasura.SQL.Time
|
|
|
|
|
, Hasura.SQL.Types
|
|
|
|
|
, Hasura.SQL.Value
|
2020-07-15 13:40:48 +03:00
|
|
|
|
, Hasura.Tracing
|
2018-11-23 16:02:46 +03:00
|
|
|
|
, Network.URI.Extended
|
2020-07-14 08:56:53 +03:00
|
|
|
|
, Network.Wai.Extended
|
2020-06-16 18:23:06 +03:00
|
|
|
|
, Network.Wai.Handler.WebSockets.Custom
|
2018-06-27 16:11:32 +03:00
|
|
|
|
executable graphql-engine
|
2019-10-21 19:01:05 +03:00
|
|
|
|
import: common-all, common-exe
|
2018-06-27 16:11:32 +03:00
|
|
|
|
hs-source-dirs: src-exec
|
2020-01-23 00:55:55 +03:00
|
|
|
|
main-is: Main.hs
|
2019-11-26 15:14:21 +03:00
|
|
|
|
build-depends: base
|
|
|
|
|
, graphql-engine
|
2020-01-23 00:55:55 +03:00
|
|
|
|
, bytestring
|
2019-11-26 15:14:21 +03:00
|
|
|
|
, pg-client
|
|
|
|
|
, text
|
2020-01-23 00:55:55 +03:00
|
|
|
|
, text-conversions
|
2020-06-03 00:27:14 +03:00
|
|
|
|
, unix
|
2018-07-27 12:34:50 +03:00
|
|
|
|
|
2019-10-21 19:01:05 +03:00
|
|
|
|
test-suite graphql-engine-tests
|
|
|
|
|
import: common-all, common-exe
|
|
|
|
|
type: exitcode-stdio-1.0
|
|
|
|
|
build-depends:
|
2019-11-18 21:45:54 +03:00
|
|
|
|
, aeson
|
2019-10-21 19:01:05 +03:00
|
|
|
|
, base
|
2019-11-20 21:21:30 +03:00
|
|
|
|
, bytestring
|
2019-10-21 19:01:05 +03:00
|
|
|
|
, graphql-engine
|
2019-11-27 01:49:42 +03:00
|
|
|
|
, hspec >=2.6.1 && <3
|
|
|
|
|
, hspec-core >=2.6.1 && <3
|
2019-11-20 21:21:30 +03:00
|
|
|
|
, hspec-expectations-lifted
|
2019-10-21 19:01:05 +03:00
|
|
|
|
, http-client
|
2020-05-28 19:18:26 +03:00
|
|
|
|
, http-types
|
2019-10-21 19:01:05 +03:00
|
|
|
|
, http-client-tls
|
2020-05-28 19:18:26 +03:00
|
|
|
|
, jose
|
2019-11-20 21:21:30 +03:00
|
|
|
|
, lifted-base
|
|
|
|
|
, monad-control
|
2019-11-18 21:45:54 +03:00
|
|
|
|
, mtl
|
2019-11-20 21:21:30 +03:00
|
|
|
|
, natural-transformation >=0.4 && <0.5
|
2019-10-21 19:01:05 +03:00
|
|
|
|
, optparse-applicative
|
|
|
|
|
, pg-client
|
2020-02-07 14:03:12 +03:00
|
|
|
|
, process
|
2019-12-13 22:52:19 +03:00
|
|
|
|
, QuickCheck
|
2020-02-07 14:03:12 +03:00
|
|
|
|
, safe
|
|
|
|
|
, split
|
2019-11-18 21:45:54 +03:00
|
|
|
|
, time
|
2019-11-20 21:21:30 +03:00
|
|
|
|
, transformers-base
|
2019-11-18 21:45:54 +03:00
|
|
|
|
, unordered-containers
|
2020-04-16 09:45:21 +03:00
|
|
|
|
, text
|
2019-11-18 21:45:54 +03:00
|
|
|
|
hs-source-dirs: src-test
|
|
|
|
|
main-is: Main.hs
|
|
|
|
|
other-modules:
|
2020-01-14 00:56:51 +03:00
|
|
|
|
Data.Parser.CacheControlSpec
|
2020-02-13 20:38:23 +03:00
|
|
|
|
Data.Parser.URLTemplate
|
2020-04-16 09:45:21 +03:00
|
|
|
|
Data.Parser.JSONPathSpec
|
2020-01-16 04:56:57 +03:00
|
|
|
|
Data.TimeSpec
|
2019-11-18 21:45:54 +03:00
|
|
|
|
Hasura.IncrementalSpec
|
|
|
|
|
Hasura.RQL.MetadataSpec
|
|
|
|
|
Hasura.Server.MigrateSpec
|
2020-01-16 04:56:57 +03:00
|
|
|
|
Hasura.Server.TelemetrySpec
|
2020-07-28 01:21:24 +03:00
|
|
|
|
Hasura.CacheBoundedSpec
|
2020-05-28 19:18:26 +03:00
|
|
|
|
Hasura.Server.AuthSpec
|
2019-12-13 22:52:19 +03:00
|
|
|
|
|
|
|
|
|
-- 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
|