prodapi-userauth-0.1.0.0: src/Prod/UserAuth/Trace.hs
module Prod.UserAuth.Trace where
import Data.Aeson (Value)
import Data.ByteString (ByteString)
import Data.Text (Text)
import Prod.UserAuth.Base
import Web.JWT
data Track info
= Behaviour (BehaviourTrack info)
| Bearer JwtTrack
| Backend BackendTrack
| Callbacks CallbackTrack
deriving (Show)
-- | Track enough information to study potentially-malicious activities.
data BehaviourTrack info
= Attempt LoginAttempt (LoginResult info)
| Verification Bool
| OptionalVerification Bool
| Registration RegistrationRequest (RegistrationResult info)
| Recovery RecoveryRequest RecoveryRequestNotification
| ApplyRecovery ApplyRecoveryRequest RecoveryResult
deriving (Show)
-- | Bearer tokens with JWT.
data JwtTrack
= Extracted (Maybe (JWT VerifiedJWT))
| Allowed (Maybe Bool)
| Signed UserId [(Text, Value)]
deriving (Show)
-- | Track backend sql information.
data BackendTrack
= SQLConnect
| SQLTransaction
| SQLRollback
| SQLQuery !ByteString
deriving (Show)
-- | Track callback information.
data CallbackTrack
= AugmentCookie (Either ErrorMessage LoggedInCookie)
deriving (Show)