pinpon-0.2.0.2: package.yaml
name: pinpon
version: 0.2.0.2
synopsis: A gateway for various cloud notification services
category: Network
stability: experimental
author: Drew Hess <dhess-src@quixoftic.com>
maintainer: Drew Hess <dhess-src@quixoftic.com>
copyright: Copyright (c) 2018, Quixoftic, LLC
license: BSD3
github: quixoftic/pinpon
description: ! '@pinpon@ is a gateway for various cloud notification services, such
as the Amazon AWS SNS service.
Think of @pinpon@ as a hub for dispatching notifications originating
from multiple notification sources. Clients of the @pinpon@ service
create topics and send notifications via the REST-ish @pinpon@
service, and the @pinpon@ server takes care of the per-service
details and communicating with the upstream cloud services.
Advantages of this approach, compared to programming directly to the
individual notification services'' interfaces, are:
* A common API for all supported notification services.
* The secret credentials required to communicate with each cloud
notification service can be kept in a central location (namely,
the @pinpon@ server), rather than being distributed to each
notification source host, therefore reducing the attack surface.
* Hosts which send notifications via the @pinpon@ gateway can be
firewalled from the public Internet. This is especially useful in
IoT applications.
Currently-supported notification services:
* Amazon AWS SNS'
tested-with: GHC==8.0.2 GHC==8.2.2
flags:
test-hlint:
description: Build hlint test
manual: true
default: false
test-doctests:
description: Build doctests
manual: true
default: true
pinpon-ring-executable:
description: Build pinpon-ring program
manual: true
default: true
pinpon-gpio-executable:
description: Build pinpon-gpio program
manual: true
default: true
pinpon-executable:
description: Build pinpon program
manual: true
default: true
ghc-options:
- -Wall
- -Wincomplete-uni-patterns
- -Wincomplete-record-updates
default-extensions:
- NoImplicitPrelude
library:
ghc-options:
- -Wcompat
- -Wnoncanonical-monad-instances
- -Wnoncanonical-monadfail-instances
source-dirs: src
other-extensions:
- DataKinds
- DeriveGeneric
- DuplicateRecordFields
- MultiParamTypeClasses
- OverloadedStrings
- Safe
- TemplateHaskell
- Trustworthy
- TypeOperators
dependencies:
- base >=4 && <5
- aeson >=1.1 && <1.3
- aeson-pretty ==0.8.*
- amazonka >=1.4.5 && <1.6
- amazonka-core >=1.4.5 && <1.6
- amazonka-sns >=1.4.5 && <1.6
- bytestring >=0.10.8 && <0.11
- containers >=0.5.7 && <0.6
- exceptions >=0.8.3 && <0.9
- http-client >=0.5.7 && <0.6
- http-types >=0.9.1 && <0.10
- lens ==4.15.*
- lucid >=2.9.9 && <3
- mtl >=2.2.1 && <2.3
- protolude ==0.2.*
- resourcet >=1.1.9 && <1.2
- servant ==0.11.*
- servant-client ==0.11.*
- servant-docs ==0.11.*
- servant-lucid >=0.7.1 && <0.8
- servant-server ==0.11.*
- servant-swagger >=1.1.4 && <1.2
- servant-swagger-ui >=0.2.4 && <0.3
- swagger2 >=2.1.6 && <2.3
- text >=1.2.2 && <1.3
- time >=1.6 && <1.9
- transformers >=0.5.2 && <0.6
- transformers-base >=0.4.4 && <0.5
- wai ==3.2.*
- warp ==3.2.*
executables:
pinpon: &executable
main: Main.hs
source-dirs: pinpon
other-extensions:
- LambdaCase
- OverloadedStrings
ghc-options:
- -threaded
- -Wcompat
- -Wnoncanonical-monad-instances
- -Wnoncanonical-monadfail-instances
- -fno-warn-redundant-constraints
when:
- condition: "!(flag(pinpon-executable))"
then:
buildable: false
else:
dependencies:
- base
- amazonka
- amazonka-sns
- containers
- exceptions
- lens
- mtl
- pinpon
- protolude
- network >=2.6.3 && <2.7
- optparse-applicative >=0.13.2 && <0.15
- optparse-text ==0.1.*
- text
- transformers
- warp
pinpon-ring:
<<: *executable
source-dirs: pinpon-ring
when:
- condition: "!(flag(pinpon-ring-executable))"
then:
buildable: false
else:
dependencies:
- base
- bytestring
- exceptions
- http-client
- http-client-tls >=0.3.5 && <0.4
- http-types
- lens
- network
- optparse-applicative
- optparse-text
- pinpon
- protolude
- servant-client ==0.11.*
- text
- transformers
- warp
pinpon-gpio:
<<: *executable
source-dirs: pinpon-gpio
other-extensions:
- FlexibleContexts
- OverloadedStrings
when:
- condition: "!(flag(pinpon-gpio-executable))"
then:
buildable: false
else:
dependencies:
- base
- bytestring
- exceptions
- hpio
- http-client
- http-client-tls
- http-types
- lens
- mtl
- network
- optparse-applicative
- optparse-text
- pinpon
- protolude
- servant-client
- text
- time
- transformers
- warp
tests:
hlint: &test
main: hlint.hs
source-dirs: test
other-modules: []
ghc-options:
- -w
- -threaded
when:
- condition: "!(flag(test-hlint))"
then:
buildable: false
else:
dependencies:
- base
- hlint >=2.0 && <2.2
- protolude
doctest:
<<: *test
main: doctest.hs
ghc-options:
- -threaded
when:
- condition: "!(flag(test-doctests))"
then:
buildable: false
else:
dependencies:
- base
- doctest >=0.10.1 && <1
- protolude
spec:
<<: *test
main: Spec.hs
ghc-options:
- -w
- -threaded
- -rtsopts
- -with-rtsopts=-N
dependencies:
- base
- aeson
- bytestring
- exceptions
- hspec ==2.4.*
- pinpon
- protolude
- QuickCheck >=2.9 && <2.11
- quickcheck-instances ==0.3.*
- servant-swagger
data-files:
- swagger.json
extra-source-files:
- README.md
- changelog.md
- package.yaml
- stack.yaml
- stack-lts-9.yaml
- stack-lts-10.yaml