mirror of
https://github.com/hasura/graphql-engine.git
synced 2025-01-05 22:34:22 +03:00
c7a2320456
* Listens for SIGTERM as the termination signal * Stops accepting new connections once the signal is received * Waits for all connections to be drained, before shutting down * Forcefully kills all pending connections after 30 seconds Currently this does not send a close message to websocket clients, I'd like to submit that change as a separate pull request, but at least this solve my biggest concern which is not getting confirmation for mutations while restarting the server.
379 lines
13 KiB
Plaintext
379 lines
13 KiB
Plaintext
name: graphql-engine
|
|
version: 1.0.0
|
|
synopsis: GraphQL API over Postgres
|
|
-- description:
|
|
homepage: https://www.hasura.io
|
|
license: Apache-2.0
|
|
-- license-file: LICENSE.md
|
|
author: Vamshi Surabhi
|
|
maintainer: vamshi@hasura.io
|
|
copyright: Hasura Inc.
|
|
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
|
|
|
|
flag profile
|
|
description: compile with profile options set
|
|
default: False
|
|
manual: True
|
|
|
|
library
|
|
hs-source-dirs: src-lib
|
|
, src-exec
|
|
default-language: Haskell2010
|
|
build-depends: 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
|
|
, fast-logger
|
|
, wai
|
|
, postgresql-binary
|
|
, process
|
|
|
|
-- 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
|
|
|
|
-- Http client
|
|
, wreq
|
|
, http-client
|
|
|
|
-- ordered map
|
|
, insert-ordered-containers
|
|
|
|
-- Parsing SemVer
|
|
, semver
|
|
|
|
-- Templating
|
|
, mustache
|
|
, ginger
|
|
, file-embed
|
|
|
|
--
|
|
, data-has
|
|
-- for src-exec
|
|
, yaml
|
|
, template-haskell >= 2.11
|
|
|
|
-- websockets interface related
|
|
, websockets
|
|
, wai-websockets
|
|
, stm
|
|
, stm-containers
|
|
, list-t
|
|
, 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
|
|
|
|
exposed-modules: Hasura.Prelude
|
|
, Hasura.Logging
|
|
, Hasura.EncJSON
|
|
, Hasura.Db
|
|
, Hasura.Cache
|
|
|
|
, Hasura.Server.App
|
|
, Hasura.Server.Auth
|
|
, Hasura.Server.Auth.JWT
|
|
, Hasura.Server.Init
|
|
, Hasura.Server.Context
|
|
, Hasura.Server.Middleware
|
|
, Hasura.Server.Logging
|
|
, Hasura.Server.Query
|
|
, Hasura.Server.Utils
|
|
, Hasura.Server.Cors
|
|
, Hasura.Server.Version
|
|
, Hasura.Server.CheckUpdates
|
|
, Hasura.Server.Telemetry
|
|
, Hasura.Server.SchemaUpdate
|
|
, Hasura.Server.PGDump
|
|
, Hasura.Server.Config
|
|
|
|
, Hasura.RQL.Types
|
|
, Hasura.RQL.Instances
|
|
, Hasura.RQL.Types.SchemaCache
|
|
, Hasura.RQL.Types.SchemaCacheTypes
|
|
, Hasura.RQL.Types.Common
|
|
, Hasura.RQL.Types.Catalog
|
|
, Hasura.RQL.Types.BoolExp
|
|
, Hasura.RQL.Types.Permission
|
|
, Hasura.RQL.Types.Error
|
|
, Hasura.RQL.Types.DML
|
|
, Hasura.RQL.Types.EventTrigger
|
|
, Hasura.RQL.Types.RemoteSchema
|
|
, Hasura.RQL.Types.Metadata
|
|
, Hasura.RQL.Types.QueryCollection
|
|
, Hasura.RQL.DDL.Deps
|
|
, Hasura.RQL.DDL.Permission.Internal
|
|
, Hasura.RQL.DDL.Permission.Triggers
|
|
, Hasura.RQL.DDL.Permission
|
|
, Hasura.RQL.DDL.Relationship
|
|
, Hasura.RQL.DDL.Relationship.Rename
|
|
, Hasura.RQL.DDL.Relationship.Types
|
|
, Hasura.RQL.DDL.Schema.Table
|
|
, Hasura.RQL.DDL.Schema.Rename
|
|
, Hasura.RQL.DDL.Schema.Function
|
|
, Hasura.RQL.DDL.Schema.Diff
|
|
, Hasura.RQL.DDL.Metadata
|
|
, 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.Types
|
|
, Hasura.GraphQL.Execute.LiveQuery.Multiplexed
|
|
, Hasura.GraphQL.Execute.LiveQuery.Fallback
|
|
, 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
|
|
|
|
, Hasura.HTTP
|
|
|
|
, Data.Text.Extended
|
|
, Data.Aeson.Extended
|
|
, Data.Sequence.NonEmpty
|
|
, Data.TByteString
|
|
, Data.HashMap.Strict.InsOrd.Extended
|
|
, Data.Parser.JSONPath
|
|
|
|
, Hasura.SQL.DML
|
|
, Hasura.SQL.Types
|
|
, Hasura.SQL.Value
|
|
, Hasura.SQL.GeoJSON
|
|
, Hasura.SQL.Time
|
|
, Hasura.SQL.Rewrite
|
|
, Network.URI.Extended
|
|
, Ops
|
|
, Migrate
|
|
|
|
other-modules: Hasura.Server.Auth.JWT.Internal
|
|
, Hasura.Server.Auth.JWT.Logging
|
|
|
|
default-extensions: EmptyCase
|
|
FlexibleContexts
|
|
FlexibleInstances
|
|
InstanceSigs
|
|
MultiParamTypeClasses
|
|
LambdaCase
|
|
MultiWayIf
|
|
TupleSections
|
|
DeriveFoldable
|
|
DeriveFunctor
|
|
DeriveGeneric
|
|
DeriveLift
|
|
DeriveTraversable
|
|
GeneralizedNewtypeDeriving
|
|
BangPatterns
|
|
OverloadedStrings
|
|
ScopedTypeVariables
|
|
TemplateHaskell
|
|
QuasiQuotes
|
|
TypeFamilies
|
|
NoImplicitPrelude
|
|
DeriveDataTypeable
|
|
|
|
|
|
if flag(profile)
|
|
ghc-prof-options: -rtsopts -fprof-auto -fno-prof-count-entries
|
|
if flag(developer)
|
|
cpp-options: -DDeveloperAPIs
|
|
|
|
ghc-options: -O2
|
|
-Wall
|
|
-Wcompat
|
|
-Wincomplete-record-updates
|
|
-Wincomplete-uni-patterns
|
|
-Wredundant-constraints
|
|
|
|
executable graphql-engine
|
|
default-extensions: EmptyCase
|
|
FlexibleContexts
|
|
FlexibleInstances
|
|
InstanceSigs
|
|
MultiParamTypeClasses
|
|
LambdaCase
|
|
MultiWayIf
|
|
TupleSections
|
|
DeriveFoldable
|
|
DeriveFunctor
|
|
DeriveGeneric
|
|
DeriveLift
|
|
DeriveTraversable
|
|
GeneralizedNewtypeDeriving
|
|
BangPatterns
|
|
OverloadedStrings
|
|
ScopedTypeVariables
|
|
TemplateHaskell
|
|
QuasiQuotes
|
|
TypeFamilies
|
|
NoImplicitPrelude
|
|
|
|
main-is: Main.hs
|
|
default-language: Haskell2010
|
|
hs-source-dirs: src-exec
|
|
build-depends: base
|
|
, warp >= 3.2
|
|
, graphql-engine
|
|
, aeson >= 1.0
|
|
, bytestring >= 0.10
|
|
, mtl
|
|
, optparse-applicative >= 0.12
|
|
, yaml
|
|
, template-haskell >= 2.11 , time >= 1.6
|
|
, text
|
|
, lens
|
|
, unordered-containers >= 0.2
|
|
, pg-client
|
|
, http-client
|
|
, http-client-tls
|
|
, stm
|
|
, wreq
|
|
, string-conversions
|
|
, uuid
|
|
, unix
|
|
|
|
other-modules: Ops
|
|
, Migrate
|
|
|
|
if flag(developer)
|
|
ghc-prof-options: -rtsopts -fprof-auto -fno-prof-count-entries
|
|
|
|
ghc-options: -O2
|
|
-Wall
|
|
-Wcompat
|
|
-Wincomplete-record-updates
|
|
-Wincomplete-uni-patterns
|
|
-Wredundant-constraints
|
|
-threaded -rtsopts
|
|
-- Re. `-I2` see #2565
|
|
"-with-rtsopts=-N -I2"
|