module Snap.AtlassianConnect.Data
( Connect(..)
, HasConnect(..)
, HostName
, DynamicDescriptorConfig(..)
) where
-- Connect Modules
import Data.Connect.Descriptor
-- Standard Modules
import qualified Crypto.Cipher.AES as CCA
import qualified Data.Text as T
import qualified Network.URI as NU
-- | The Atlassian Connect Snaplet Context
data Connect = Connect
{ connectAES :: CCA.AES -- ^ The AES key that will be used for Page Token support.
, connectPageTokenTimeout :: Timeout -- ^ The Page Token Timeout (how long the token is valid for).
, connectPlugin :: Plugin -- ^ The Atlassian Connect Descriptor for your Add-on.
, connectBaseUrl :: NU.URI -- ^ The URL that your Add-on will report as it's base URL. Especially useful if you are behind a load balancer.
, connectHostWhitelist :: [HostName] -- ^ The suffixes in the hostname that should be allowed to be installed as Connect Add-ons.
}
-- | Represents a URL hostname
type HostName = T.Text
-- | If a Snap application provides Atlassian Connect then it can impliment HasConnect to allow connect methods to be
-- called easily.
class HasConnect m where
getConnect :: m Connect
data DynamicDescriptorConfig = DynamicDescriptorConfig
{ dcBaseUrl :: NU.URI
}