2018-06-27 16:11:32 +03:00
|
|
|
name: graphql-engine
|
|
|
|
version: 1.0.0
|
|
|
|
synopsis: GraphQL API over Postgres
|
|
|
|
-- description:
|
|
|
|
homepage: https://www.hasura.io
|
2018-07-10 17:18:54 +03:00
|
|
|
license: AGPL-3.0
|
2018-07-10 18:27:20 +03:00
|
|
|
-- license-file: LICENSE.md
|
2018-06-27 16:11:32 +03:00
|
|
|
author: Vamshi Surabhi
|
|
|
|
maintainer: vamshi@hasura.io
|
2018-07-10 17:18:54 +03:00
|
|
|
copyright: 2017-2018 Hasura Techonologies Pvt. Ltd
|
2018-06-27 16:11:32 +03:00
|
|
|
category: Database
|
|
|
|
build-type: Simple
|
|
|
|
-- extra-source-files: README.md
|
|
|
|
cabal-version: >=1.10
|
|
|
|
|
|
|
|
source-repository head
|
|
|
|
type: git
|
|
|
|
location: https://github.com/hasura/graphql-engine
|
|
|
|
|
|
|
|
flag developer
|
|
|
|
description: operate in developer mode
|
|
|
|
default: False
|
|
|
|
manual: True
|
|
|
|
|
2019-04-17 12:48:41 +03:00
|
|
|
flag profile
|
|
|
|
description: compile with profile options set
|
|
|
|
default: False
|
|
|
|
manual: True
|
|
|
|
|
2018-06-27 16:11:32 +03:00
|
|
|
library
|
|
|
|
hs-source-dirs: src-lib
|
2018-07-11 10:13:07 +03:00
|
|
|
, src-exec
|
2018-06-27 16:11:32 +03:00
|
|
|
default-language: Haskell2010
|
|
|
|
build-depends: base
|
|
|
|
, pg-client
|
|
|
|
, text
|
2018-10-19 05:15:28 +03:00
|
|
|
, text-builder >= 0.6
|
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
|
2018-06-27 16:11:32 +03:00
|
|
|
, time
|
|
|
|
, scientific
|
|
|
|
, Spock-core
|
|
|
|
, split
|
|
|
|
, optparse-applicative
|
|
|
|
, wai-extra
|
|
|
|
, 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
|
2018-06-27 16:11:32 +03:00
|
|
|
, wai-logger
|
|
|
|
, fast-logger
|
|
|
|
, wai
|
|
|
|
, postgresql-binary
|
2018-07-03 18:34:25 +03:00
|
|
|
, process
|
2018-06-27 16:11:32 +03:00
|
|
|
|
|
|
|
-- Encoder related
|
|
|
|
, uuid
|
|
|
|
, vector
|
|
|
|
|
|
|
|
-- Logging related
|
|
|
|
, network
|
|
|
|
, byteorder
|
|
|
|
|
|
|
|
-- hashing for logging
|
|
|
|
, cryptonite
|
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
|
|
|
|
|
|
|
|
-- String related
|
|
|
|
, case-insensitive
|
|
|
|
, string-conversions
|
|
|
|
|
|
|
|
-- Http client
|
|
|
|
, wreq
|
|
|
|
, http-client
|
|
|
|
, http-client-tls
|
|
|
|
, connection
|
2018-09-05 14:26:46 +03:00
|
|
|
, retry
|
2018-06-27 16:11:32 +03:00
|
|
|
|
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
|
|
|
, ginger
|
|
|
|
, file-embed
|
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
|
|
|
|
, hashtables
|
|
|
|
, stm
|
|
|
|
, stm-containers
|
|
|
|
, list-t
|
|
|
|
, async
|
|
|
|
|
|
|
|
-- logging related
|
|
|
|
, base64-bytestring >= 1.0
|
|
|
|
, auto-update
|
|
|
|
|
2018-07-27 12:50:12 +03:00
|
|
|
-- regex related
|
2018-11-13 08:58:55 +03:00
|
|
|
, regex-tdfa >= 1.2
|
2018-07-27 12:50:12 +03:00
|
|
|
|
2018-12-14 06:21:41 +03:00
|
|
|
-- pretty printer
|
|
|
|
, ansi-wl-pprint
|
|
|
|
|
2019-04-17 12:48:41 +03:00
|
|
|
-- metrics in multiplexed subs
|
|
|
|
, ekg-core
|
|
|
|
|
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-03-18 19:22:21 +03:00
|
|
|
exposed-modules: Hasura.Prelude
|
|
|
|
, Hasura.Logging
|
|
|
|
, Hasura.EncJSON
|
2019-04-17 12:48:41 +03:00
|
|
|
, Hasura.Db
|
|
|
|
, Hasura.Cache
|
2019-03-18 19:22:21 +03:00
|
|
|
|
|
|
|
, Hasura.Server.App
|
2018-07-20 10:22:46 +03:00
|
|
|
, Hasura.Server.Auth
|
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
|
|
|
, Hasura.Server.Auth.JWT
|
2018-06-27 16:11:32 +03:00
|
|
|
, Hasura.Server.Init
|
2019-06-04 13:10:28 +03:00
|
|
|
, Hasura.Server.Context
|
2018-06-27 16:11:32 +03:00
|
|
|
, Hasura.Server.Middleware
|
|
|
|
, Hasura.Server.Logging
|
|
|
|
, Hasura.Server.Query
|
|
|
|
, Hasura.Server.Utils
|
2019-02-14 08:58:38 +03:00
|
|
|
, Hasura.Server.Cors
|
2018-07-03 18:34:25 +03:00
|
|
|
, Hasura.Server.Version
|
2018-07-27 12:34:50 +03:00
|
|
|
, Hasura.Server.CheckUpdates
|
2019-01-28 16:55:28 +03:00
|
|
|
, Hasura.Server.Telemetry
|
2019-03-12 08:46:27 +03:00
|
|
|
, Hasura.Server.SchemaUpdate
|
2019-04-30 11:34:08 +03:00
|
|
|
, Hasura.Server.PGDump
|
2019-06-11 16:29:03 +03:00
|
|
|
, Hasura.Server.Config
|
2019-05-16 10:45:29 +03:00
|
|
|
|
2018-06-27 16:11:32 +03:00
|
|
|
, Hasura.RQL.Types
|
|
|
|
, Hasura.RQL.Instances
|
2018-11-23 16:02:46 +03:00
|
|
|
, Hasura.RQL.Types.SchemaCache
|
|
|
|
, Hasura.RQL.Types.SchemaCacheTypes
|
2018-06-27 16:11:32 +03:00
|
|
|
, Hasura.RQL.Types.Common
|
2019-05-08 10:36:43 +03:00
|
|
|
, Hasura.RQL.Types.Catalog
|
2018-11-16 15:40:23 +03:00
|
|
|
, Hasura.RQL.Types.BoolExp
|
2018-06-27 16:11:32 +03:00
|
|
|
, Hasura.RQL.Types.Permission
|
|
|
|
, Hasura.RQL.Types.Error
|
|
|
|
, Hasura.RQL.Types.DML
|
2019-03-25 20:10:52 +03:00
|
|
|
, Hasura.RQL.Types.EventTrigger
|
2018-11-23 16:02:46 +03:00
|
|
|
, Hasura.RQL.Types.RemoteSchema
|
2019-04-17 19:29:39 +03:00
|
|
|
, Hasura.RQL.Types.Metadata
|
2019-05-16 09:13:25 +03:00
|
|
|
, Hasura.RQL.Types.QueryCollection
|
2018-06-27 16:11:32 +03:00
|
|
|
, Hasura.RQL.DDL.Deps
|
|
|
|
, Hasura.RQL.DDL.Permission.Internal
|
2018-08-17 17:44:43 +03:00
|
|
|
, Hasura.RQL.DDL.Permission.Triggers
|
2018-06-27 16:11:32 +03:00
|
|
|
, Hasura.RQL.DDL.Permission
|
|
|
|
, Hasura.RQL.DDL.Relationship
|
2019-03-01 12:17:22 +03:00
|
|
|
, Hasura.RQL.DDL.Relationship.Rename
|
|
|
|
, Hasura.RQL.DDL.Relationship.Types
|
2018-06-27 16:11:32 +03:00
|
|
|
, Hasura.RQL.DDL.QueryTemplate
|
|
|
|
, Hasura.RQL.DDL.Schema.Table
|
2019-03-01 12:17:22 +03:00
|
|
|
, Hasura.RQL.DDL.Schema.Rename
|
2019-01-25 06:31:54 +03:00
|
|
|
, Hasura.RQL.DDL.Schema.Function
|
2018-06-27 16:11:32 +03:00
|
|
|
, Hasura.RQL.DDL.Schema.Diff
|
|
|
|
, Hasura.RQL.DDL.Metadata
|
|
|
|
, Hasura.RQL.DDL.Utils
|
2019-03-25 20:10:52 +03:00
|
|
|
, Hasura.RQL.DDL.EventTrigger
|
2018-11-23 16:02:46 +03:00
|
|
|
, Hasura.RQL.DDL.Headers
|
|
|
|
, Hasura.RQL.DDL.RemoteSchema
|
2019-05-16 09:13:25 +03:00
|
|
|
, Hasura.RQL.DDL.QueryCollection
|
2018-06-27 16:11:32 +03:00
|
|
|
, Hasura.RQL.DML.Delete
|
|
|
|
, Hasura.RQL.DML.Internal
|
|
|
|
, Hasura.RQL.DML.Insert
|
2019-03-07 13:24:07 +03:00
|
|
|
, Hasura.RQL.DML.Mutation
|
2018-06-27 16:11:32 +03:00
|
|
|
, Hasura.RQL.DML.Returning
|
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.Select
|
|
|
|
, Hasura.RQL.DML.Update
|
|
|
|
, Hasura.RQL.DML.Count
|
|
|
|
, Hasura.RQL.DML.QueryTemplate
|
|
|
|
, Hasura.RQL.GBoolExp
|
|
|
|
|
2018-07-20 10:22:46 +03:00
|
|
|
, Hasura.GraphQL.Transport.HTTP.Protocol
|
|
|
|
, Hasura.GraphQL.Transport.HTTP
|
|
|
|
, Hasura.GraphQL.Transport.WebSocket.Protocol
|
|
|
|
, Hasura.GraphQL.Transport.WebSocket.Server
|
|
|
|
, Hasura.GraphQL.Transport.WebSocket
|
2018-06-27 16:11:32 +03:00
|
|
|
, Hasura.GraphQL.Schema
|
|
|
|
, Hasura.GraphQL.Utils
|
2018-07-20 10:22:46 +03:00
|
|
|
, Hasura.GraphQL.Validate
|
2018-06-27 16:11:32 +03:00
|
|
|
, Hasura.GraphQL.Validate.Types
|
|
|
|
, Hasura.GraphQL.Validate.Context
|
|
|
|
, Hasura.GraphQL.Validate.Field
|
|
|
|
, Hasura.GraphQL.Validate.InputValue
|
2018-10-19 05:15:28 +03:00
|
|
|
, Hasura.GraphQL.Explain
|
2019-03-25 21:25:25 +03:00
|
|
|
, Hasura.GraphQL.Execute
|
2019-04-17 12:48:41 +03:00
|
|
|
, Hasura.GraphQL.Execute.Plan
|
|
|
|
, Hasura.GraphQL.Execute.Query
|
|
|
|
, Hasura.GraphQL.Execute.LiveQuery
|
|
|
|
, Hasura.GraphQL.Execute.LiveQuery.Types
|
|
|
|
, Hasura.GraphQL.Execute.LiveQuery.Multiplexed
|
|
|
|
, Hasura.GraphQL.Execute.LiveQuery.Fallback
|
2019-03-25 21:25:25 +03:00
|
|
|
, Hasura.GraphQL.Resolve
|
2018-06-27 16:11:32 +03:00
|
|
|
, Hasura.GraphQL.Resolve.BoolExp
|
|
|
|
, Hasura.GraphQL.Resolve.Context
|
|
|
|
, Hasura.GraphQL.Resolve.InputValue
|
|
|
|
, Hasura.GraphQL.Resolve.Introspect
|
2018-10-05 18:13:51 +03:00
|
|
|
, Hasura.GraphQL.Resolve.Insert
|
2018-06-27 16:11:32 +03:00
|
|
|
, Hasura.GraphQL.Resolve.Mutation
|
|
|
|
, Hasura.GraphQL.Resolve.Select
|
2018-11-23 16:02:46 +03:00
|
|
|
, Hasura.GraphQL.RemoteServer
|
|
|
|
, Hasura.GraphQL.Context
|
|
|
|
, Hasura.GraphQL.Resolve.ContextTypes
|
2018-06-27 16:11:32 +03:00
|
|
|
|
2018-09-05 14:26:46 +03:00
|
|
|
, Hasura.Events.Lib
|
|
|
|
, Hasura.Events.HTTP
|
|
|
|
|
2018-12-13 10:26:15 +03:00
|
|
|
, Hasura.HTTP
|
2018-11-23 16:02:46 +03:00
|
|
|
|
2018-06-27 16:11:32 +03:00
|
|
|
, Data.Text.Extended
|
2019-04-17 12:48:41 +03:00
|
|
|
, Data.Aeson.Extended
|
2018-06-28 11:19:27 +03:00
|
|
|
, Data.Sequence.NonEmpty
|
2018-07-20 10:22:46 +03:00
|
|
|
, Data.TByteString
|
2018-06-28 11:19:27 +03:00
|
|
|
, Data.HashMap.Strict.InsOrd.Extended
|
2019-03-25 16:45:35 +03:00
|
|
|
, Data.Parser.JSONPath
|
2018-06-27 16:11:32 +03:00
|
|
|
|
|
|
|
, Hasura.SQL.DML
|
|
|
|
, Hasura.SQL.Types
|
|
|
|
, Hasura.SQL.Value
|
|
|
|
, Hasura.SQL.GeoJSON
|
|
|
|
, Hasura.SQL.Time
|
2018-10-12 12:28:43 +03:00
|
|
|
, Hasura.SQL.Rewrite
|
2018-11-23 16:02:46 +03:00
|
|
|
, Network.URI.Extended
|
2018-07-11 10:13:07 +03:00
|
|
|
, Ops
|
2019-03-01 12:17:22 +03:00
|
|
|
, Migrate
|
2018-06-27 16:11:32 +03:00
|
|
|
|
2018-09-27 14:22:49 +03:00
|
|
|
other-modules: Hasura.Server.Auth.JWT.Internal
|
|
|
|
, Hasura.Server.Auth.JWT.Logging
|
|
|
|
|
2018-12-13 10:26:15 +03:00
|
|
|
default-extensions: EmptyCase
|
|
|
|
FlexibleContexts
|
|
|
|
FlexibleInstances
|
|
|
|
InstanceSigs
|
|
|
|
MultiParamTypeClasses
|
|
|
|
LambdaCase
|
|
|
|
MultiWayIf
|
|
|
|
TupleSections
|
|
|
|
DeriveFoldable
|
|
|
|
DeriveFunctor
|
|
|
|
DeriveGeneric
|
|
|
|
DeriveLift
|
|
|
|
DeriveTraversable
|
|
|
|
GeneralizedNewtypeDeriving
|
|
|
|
BangPatterns
|
|
|
|
OverloadedStrings
|
|
|
|
ScopedTypeVariables
|
|
|
|
TemplateHaskell
|
|
|
|
QuasiQuotes
|
|
|
|
TypeFamilies
|
|
|
|
NoImplicitPrelude
|
|
|
|
|
2018-09-27 14:22:49 +03:00
|
|
|
|
2019-04-17 12:48:41 +03:00
|
|
|
if flag(profile)
|
2018-06-27 16:11:32 +03:00
|
|
|
ghc-prof-options: -rtsopts -fprof-auto -fno-prof-count-entries
|
2019-04-17 12:48:41 +03:00
|
|
|
if flag(developer)
|
2019-05-16 10:45:29 +03:00
|
|
|
cpp-options: -DDeveloperAPIs
|
2018-06-27 16:11:32 +03:00
|
|
|
|
2018-12-13 10:26:15 +03:00
|
|
|
ghc-options: -O2
|
|
|
|
-Wall
|
|
|
|
-Wcompat
|
|
|
|
-Wincomplete-record-updates
|
|
|
|
-Wincomplete-uni-patterns
|
|
|
|
-Wredundant-constraints
|
2018-06-27 16:11:32 +03:00
|
|
|
|
|
|
|
executable graphql-engine
|
2018-12-13 10:26:15 +03:00
|
|
|
default-extensions: EmptyCase
|
|
|
|
FlexibleContexts
|
|
|
|
FlexibleInstances
|
|
|
|
InstanceSigs
|
|
|
|
MultiParamTypeClasses
|
|
|
|
LambdaCase
|
|
|
|
MultiWayIf
|
|
|
|
TupleSections
|
|
|
|
DeriveFoldable
|
|
|
|
DeriveFunctor
|
|
|
|
DeriveGeneric
|
|
|
|
DeriveLift
|
|
|
|
DeriveTraversable
|
|
|
|
GeneralizedNewtypeDeriving
|
|
|
|
BangPatterns
|
|
|
|
OverloadedStrings
|
|
|
|
ScopedTypeVariables
|
|
|
|
TemplateHaskell
|
|
|
|
QuasiQuotes
|
|
|
|
TypeFamilies
|
|
|
|
NoImplicitPrelude
|
|
|
|
|
2018-06-27 16:11:32 +03:00
|
|
|
main-is: Main.hs
|
|
|
|
default-language: Haskell2010
|
|
|
|
hs-source-dirs: src-exec
|
|
|
|
build-depends: base
|
2018-07-20 10:22:46 +03:00
|
|
|
, warp >= 3.2
|
2018-06-27 16:11:32 +03:00
|
|
|
, graphql-engine
|
|
|
|
, aeson >= 1.0
|
|
|
|
, bytestring >= 0.10
|
|
|
|
, mtl
|
|
|
|
, optparse-applicative >= 0.12
|
|
|
|
, yaml
|
2018-07-11 10:13:07 +03:00
|
|
|
, template-haskell >= 2.11 , time >= 1.6
|
2018-06-27 16:11:32 +03:00
|
|
|
, text
|
|
|
|
, lens
|
|
|
|
, unordered-containers >= 0.2
|
|
|
|
, pg-client
|
2018-07-27 12:34:50 +03:00
|
|
|
, http-client
|
|
|
|
, http-client-tls
|
2018-09-05 14:26:46 +03:00
|
|
|
, stm
|
|
|
|
, wreq
|
|
|
|
, connection
|
2018-09-27 14:22:49 +03:00
|
|
|
, string-conversions
|
2019-03-12 08:46:27 +03:00
|
|
|
, uuid
|
2018-07-27 12:34:50 +03:00
|
|
|
|
2019-03-01 12:17:22 +03:00
|
|
|
other-modules: Ops
|
|
|
|
, Migrate
|
2018-06-27 16:11:32 +03:00
|
|
|
|
|
|
|
if flag(developer)
|
|
|
|
ghc-prof-options: -rtsopts -fprof-auto -fno-prof-count-entries
|
|
|
|
|
2019-05-21 12:28:08 +03:00
|
|
|
ghc-options: -O2
|
|
|
|
-Wall
|
|
|
|
-Wcompat
|
|
|
|
-Wincomplete-record-updates
|
|
|
|
-Wincomplete-uni-patterns
|
|
|
|
-Wredundant-constraints
|
|
|
|
-threaded -rtsopts
|
2018-06-27 16:11:32 +03:00
|
|
|
|
2018-07-11 10:13:07 +03:00
|
|
|
test-suite graphql-engine-test
|
|
|
|
type: exitcode-stdio-1.0
|
2018-06-27 16:11:32 +03:00
|
|
|
main-is: Main.hs
|
|
|
|
Default-Language: Haskell2010
|
|
|
|
Hs-Source-Dirs: test
|
|
|
|
ghc-options: -O2 -Wall
|
|
|
|
Build-Depends: Spock-core >= 0.11
|
|
|
|
, base
|
2018-07-11 10:13:07 +03:00
|
|
|
, aeson
|
|
|
|
, aeson-casing
|
2018-06-27 16:11:32 +03:00
|
|
|
, bytestring
|
|
|
|
, hspec
|
|
|
|
, hspec-core
|
|
|
|
, hspec-wai
|
|
|
|
, optparse-applicative
|
|
|
|
, graphql-engine -any
|
|
|
|
, text
|
|
|
|
, wai
|
|
|
|
, pg-client
|
2018-07-11 10:13:07 +03:00
|
|
|
, time
|
|
|
|
, yaml
|
2018-07-27 12:34:50 +03:00
|
|
|
, http-client
|
|
|
|
, http-client-tls
|
2018-08-10 15:05:07 +03:00
|
|
|
, unordered-containers >= 0.2
|
|
|
|
, case-insensitive
|
2018-07-11 10:13:07 +03:00
|
|
|
|
2018-09-05 14:26:46 +03:00
|
|
|
other-modules: Spec
|