hails-0.1: Hails/TCB/Types.hs
{-# LANGUAGE CPP #-}
#if __GLASGOW_HASKELL__ >= 704
{-# LANGUAGE Unsafe #-}
#endif
{-# LANGUAGE DeriveFunctor,
GeneralizedNewtypeDeriving #-}
module Hails.TCB.Types ( AppName
, AppConf(..)
, AppReqHandler
, AppRoute
) where
import qualified Data.ByteString.Lazy as L
import Data.IterIO.Http
import Data.IterIO.HttpRoute
import DCLabel.TCB
import LIO.DCLabel
type L = L.ByteString
-- | Application name
type AppName = String
-- | Application configuration.
data AppConf = AppConf { appUser :: !Principal
-- ^ User the app is running on behalf of
, appName :: !AppName
-- ^ The app's name
, appPriv :: !TCBPriv
-- ^ The app's privileges.
, appReq :: HttpReq ()
-- ^ The request message
}
-- | Application handler.
type AppReqHandler = HttpReq ()
-> DCLabeled L
-> DC (HttpResp DC)
-- | Application route.
type AppRoute = HttpRoute DC ()