nuthatch/nuthatch.cabal

448 lines
10 KiB
Text

cabal-version: 3.0
name: nuthatch
version: 0.1.0.0
synopsis: User-facing S3 BFF
license: NONE
author: Nuthatch
maintainer: nuthatch@localhost
category: Network
build-type: Simple
extra-source-files:
sql/001_initial_schema.sql
web/src/generated/contract.ts
web/src/transport.ts
web/test/contract-integration.mjs
web/test/fixtures/contract.json
web/test/fixtures/upload-content-sha256.json
common shared
default-language: Haskell2010
default-extensions:
OverloadedStrings
RecordWildCards
DeriveGeneric
DerivingStrategies
GeneralizedNewtypeDeriving
LambdaCase
ScopedTypeVariables
TupleSections
NamedFieldPuns
FlexibleContexts
FlexibleInstances
DataKinds
TypeOperators
TypeFamilies
MultiParamTypeClasses
UndecidableInstances
ghc-options:
-Wall
-Wcompat
-Widentities
-Wincomplete-record-updates
-Wincomplete-uni-patterns
-Wmissing-export-lists
-Wpartial-fields
-Wredundant-constraints
build-depends:
, aeson >= 2.1 && < 2.3
, async >= 2.2 && < 2.3
, aws >= 0.25.2 && < 0.26
, base >= 4.18 && < 5
, base16-bytestring >= 1.0 && < 1.1
, base64-bytestring >= 1.2 && < 1.3
, bytestring >= 0.11 && < 0.13
, case-insensitive >= 1.2 && < 1.3
, containers >= 0.6 && < 0.8
, conduit >= 1.3 && < 1.4
, cookie >= 0.5.1 && < 0.6
, crypton-connection >= 0.4 && < 0.5
, crypton >= 0.34 && < 1.1
, directory >= 1.3 && < 1.4
, entropy >= 0.4 && < 0.5
, envparse >= 0.6 && < 0.7
, filepath >= 1.4 && < 1.6
, hedis >= 0.15 && < 0.16
, http-client >= 0.7 && < 0.8
, http-client-tls >= 0.3 && < 0.4
, http-conduit >= 2.3 && < 2.4
, http-api-data >= 0.7 && < 0.8
, http-media >= 0.8 && < 0.9
, http-types >= 0.12 && < 0.13
, jose >= 0.12 && < 0.13
, lens >= 5.2 && < 5.4
, memory >= 0.18 && < 0.19
, mime-types >= 0.1 && < 0.2
, modern-uri >= 0.3.6 && < 0.4
, mtl >= 2.3 && < 2.4
, network-uri >= 2.6 && < 2.8
, postgresql-simple >= 0.7 && < 0.8
, postgresql-migration >= 0.2.1.8 && < 0.3
, resource-pool >= 0.4 && < 0.5
, resourcet >= 1.3 && < 1.4
, retry >= 0.9 && < 0.10
, scientific >= 0.3 && < 0.4
, servant >= 0.20 && < 0.21
, servant-server >= 0.20 && < 0.21
, stm >= 2.5 && < 2.6
, temporary >= 1.3 && < 1.4
, text >= 2.0 && < 2.2
, time >= 1.12 && < 1.15
, tls >= 2.2 && < 2.3
, transformers >= 0.6 && < 0.7
, unicode-transforms >= 0.4 && < 0.5
, unordered-containers >= 0.2 && < 0.3
, uuid >= 1.3 && < 1.4
, wai >= 3.2 && < 3.3
, wai-extra >= 3.1 && < 3.2
, warp >= 3.3 && < 3.5
, warp-tls >= 3.4 && < 3.5
, xml-conduit >= 1.9 && < 1.11
library
import: shared
hs-source-dirs: src
exposed-modules:
Nuthatch
Nuthatch.Api
Nuthatch.App
Nuthatch.App.Env
Nuthatch.Audit
Nuthatch.Browse
Nuthatch.Config
Nuthatch.Db
Nuthatch.Http.Auth
Nuthatch.Http.Contract
Nuthatch.Http.Error
Nuthatch.Http.Server
Nuthatch.Mutation.Effects
Nuthatch.Mutation.Recovery
Nuthatch.Mutation.Service
Nuthatch.Oidc
Nuthatch.Paths
Nuthatch.Product.Limits
Nuthatch.Protocol
Nuthatch.Redis
Nuthatch.Recovery
Nuthatch.Runtime
Nuthatch.S3
Nuthatch.Session
Nuthatch.Streaming
Nuthatch.Transfer
Nuthatch.Types
executable nuthatch
import: shared
main-is: Main.hs
hs-source-dirs: app
build-depends:
, nuthatch
, base
ghc-options:
-threaded
-rtsopts
-with-rtsopts=-N
executable nuthatch-generate-web-contract
import: shared
main-is: GenerateContract.hs
hs-source-dirs: app
build-depends:
, nuthatch
, base
executable nuthatch-web-contract-integration
import: shared
main-is: WebContractIntegration.hs
hs-source-dirs: test
build-depends:
, nuthatch
, base
, bytestring
, process
, text
ghc-options:
-threaded
executable nuthatch-storage-integration
import: shared
main-is: Integration.hs
hs-source-dirs: test
build-depends:
, nuthatch
, base
, async
, bytestring
, text
ghc-options:
-threaded
-rtsopts
-with-rtsopts=-N
executable nuthatch-recovery-probe
import: shared
main-is: RecoveryPhase.hs
hs-source-dirs: test
build-depends:
, nuthatch
, base
, bytestring
, text
ghc-options:
-threaded
-rtsopts
-with-rtsopts=-N
executable nuthatch-protocol-conformance
import: shared
main-is: ProtocolConformance.hs
hs-source-dirs: test
other-modules:
Nuthatch.ModelEvidence
build-depends:
, nuthatch
, base
, bytestring
, crypton
, memory
, postgresql-simple
, text
ghc-options:
-threaded
-rtsopts
-with-rtsopts=-N
executable nuthatch-model-evidence
import: shared
main-is: ModelEvidenceMain.hs
hs-source-dirs: test
other-modules:
Nuthatch.ModelEvidence
build-depends:
, nuthatch
, aeson
, base
, text
executable nuthatch-runtime-probe
import: shared
main-is: RuntimeProbe.hs
hs-source-dirs: test
build-depends:
, nuthatch
, base
ghc-options:
-threaded
-rtsopts
-with-rtsopts=-N
executable nuthatch-auth-probe
import: shared
main-is: AuthProbe.hs
hs-source-dirs: test
other-modules:
Nuthatch.Probe.Assert
Nuthatch.Probe.Curl
Nuthatch.Probe.Http
Nuthatch.Probe.Oidc
Nuthatch.Probe.ProductClient
build-depends:
, nuthatch
, aeson
, base
, bytestring
, crypton
, memory
, process
, temporary
ghc-options:
-threaded
-rtsopts
-with-rtsopts=-N
executable nuthatch-product-probe
import: shared
main-is: ProductProbe.hs
hs-source-dirs: test
other-modules:
Nuthatch.Probe.Assert
Nuthatch.Probe.Http
Nuthatch.Probe.Oidc
Nuthatch.Probe.ProductClient
build-depends:
, nuthatch
, aeson
, base
, bytestring
, crypton
, memory
, process
, temporary
ghc-options:
-threaded
-rtsopts
-with-rtsopts=-N
executable nuthatch-idempotency-probe
import: shared
main-is: IdempotencyProbe.hs
hs-source-dirs: test
other-modules:
Nuthatch.Probe.Assert
Nuthatch.Probe.Curl
Nuthatch.Probe.Http
Nuthatch.Probe.Oidc
Nuthatch.Probe.ProductClient
build-depends:
, nuthatch
, aeson
, async
, base
, bytestring
, crypton
, memory
, process
, temporary
ghc-options:
-threaded
-rtsopts
-with-rtsopts=-N
executable nuthatch-streaming-probe
import: shared
main-is: StreamingProbe.hs
hs-source-dirs: test
other-modules:
Nuthatch.Probe.Assert
Nuthatch.Probe.Curl
Nuthatch.Probe.Http
Nuthatch.Probe.Oidc
Nuthatch.Probe.ProductClient
build-depends:
, nuthatch
, aeson
, async
, base
, bytestring
, crypton
, directory
, memory
, process
, temporary
ghc-options:
-threaded
-rtsopts
-with-rtsopts=-N
executable nuthatch-runtime-http-probe
import: shared
main-is: RuntimeHttpProbe.hs
hs-source-dirs: test
other-modules:
Nuthatch.Probe.Assert
Nuthatch.Probe.Http
Nuthatch.Probe.Oidc
Nuthatch.Probe.ProductClient
build-depends:
, nuthatch
, aeson
, base
, bytestring
, crypton
, memory
, process
, temporary
ghc-options:
-threaded
-rtsopts
-with-rtsopts=-N
executable nuthatch-runtime-audit-probe
import: shared
main-is: RuntimeAuditProbe.hs
hs-source-dirs: test
other-modules:
Nuthatch.Probe.Assert
build-depends:
, nuthatch
, aeson
, base
, bytestring
, text
executable nuthatch-fixture-probe
import: shared
main-is: FixtureProbe.hs
hs-source-dirs: test
other-modules:
Nuthatch.Probe.Assert
Nuthatch.Probe.Http
build-depends:
, nuthatch
, base
, bytestring
, crypton
, memory
, postgresql-simple
, process
, temporary
, text
executable nuthatch-dependency-probe
import: shared
main-is: DependencyProbe.hs
hs-source-dirs: test
other-modules:
Nuthatch.Probe.Assert
Nuthatch.Probe.Curl
Nuthatch.Probe.Http
build-depends:
, nuthatch
, base
, bytestring
, hedis
, postgresql-simple
, process
, temporary
executable nuthatch-browser-session-fixture
import: shared
main-is: BrowserSessionFixture.hs
hs-source-dirs: test
build-depends:
, nuthatch
, aeson
, base
, text
test-suite nuthatch-unit
import: shared
type: exitcode-stdio-1.0
main-is: Spec.hs
hs-source-dirs: test
other-modules:
Nuthatch.Test.Config
Nuthatch.Test.Http
Nuthatch.Test.HttpContract
Nuthatch.Test.Identity
Nuthatch.Test.Oidc
Nuthatch.Test.Path
Nuthatch.Test.PathFixture
Nuthatch.Test.Product
Nuthatch.Test.Protocol
Nuthatch.Test.Recovery
Nuthatch.Test.Runtime
Nuthatch.Test.Streaming
Nuthatch.Test.UploadIdentityFixture
build-depends:
, nuthatch
, base
, bytestring
, hedgehog >= 1.7 && < 1.8
, tasty >= 1.5 && < 1.6
, tasty-hedgehog >= 1.4 && < 1.5
, tasty-hunit >= 0.10 && < 0.11
, text
ghc-options:
-threaded