Safe Haskell | None |
---|---|
Language | Haskell2010 |
This module contains the core functionality of the SDK.
Synopsis
- data Client
- makeClient :: Config -> IO Client
- clientVersion :: Text
- boolVariation :: Client -> Text -> Context -> Bool -> IO Bool
- boolVariationDetail :: Client -> Text -> Context -> Bool -> IO (EvaluationDetail Bool)
- stringVariation :: Client -> Text -> Context -> Text -> IO Text
- stringVariationDetail :: Client -> Text -> Context -> Text -> IO (EvaluationDetail Text)
- intVariation :: Client -> Text -> Context -> Int -> IO Int
- intVariationDetail :: Client -> Text -> Context -> Int -> IO (EvaluationDetail Int)
- doubleVariation :: Client -> Text -> Context -> Double -> IO Double
- doubleVariationDetail :: Client -> Text -> Context -> Double -> IO (EvaluationDetail Double)
- jsonVariation :: Client -> Text -> Context -> Value -> IO Value
- jsonVariationDetail :: Client -> Text -> Context -> Value -> IO (EvaluationDetail Value)
- data EvaluationDetail value = EvaluationDetail {
- value :: !value
- variationIndex :: !(Maybe Integer)
- reason :: !EvaluationReason
- data EvaluationReason
- data EvalErrorKind
- allFlagsState :: Client -> Context -> Bool -> Bool -> Bool -> IO AllFlagsState
- data AllFlagsState
- secureModeHash :: Client -> Context -> Text
- close :: Client -> IO ()
- flushEvents :: Client -> IO ()
- identify :: Client -> Context -> IO ()
- track :: Client -> Context -> Text -> Maybe Value -> Maybe Double -> IO ()
- data Status
- getStatus :: Client -> IO Status
Documentation
Client is the LaunchDarkly client. Client instances are thread-safe. Applications should instantiate a single instance for the lifetime of their application.
clientVersion :: Text Source #
The version string for this library.
boolVariation :: Client -> Text -> Context -> Bool -> IO Bool Source #
Evaluate a Boolean typed flag.
boolVariationDetail :: Client -> Text -> Context -> Bool -> IO (EvaluationDetail Bool) Source #
Evaluate a Boolean typed flag, and return an explanation.
stringVariation :: Client -> Text -> Context -> Text -> IO Text Source #
Evaluate a String typed flag.
stringVariationDetail :: Client -> Text -> Context -> Text -> IO (EvaluationDetail Text) Source #
Evaluate a String typed flag, and return an explanation.
intVariation :: Client -> Text -> Context -> Int -> IO Int Source #
Evaluate a Number typed flag, and truncate the result.
intVariationDetail :: Client -> Text -> Context -> Int -> IO (EvaluationDetail Int) Source #
Evaluate a Number typed flag, truncate the result, and return an explanation.
doubleVariation :: Client -> Text -> Context -> Double -> IO Double Source #
Evaluate a Number typed flag.
doubleVariationDetail :: Client -> Text -> Context -> Double -> IO (EvaluationDetail Double) Source #
Evaluate a Number typed flag, and return an explanation.
jsonVariationDetail :: Client -> Text -> Context -> Value -> IO (EvaluationDetail Value) Source #
Evaluate a JSON typed flag, and return an explanation.
data EvaluationDetail value Source #
Combines the result of a flag evaluation with an explanation of how it was calculated.
EvaluationDetail | |
|
Instances
data EvaluationReason Source #
Defines the possible values of the Kind property of EvaluationReason.
EvaluationReasonOff | Indicates that the flag was off and therefore returned its configured off value. |
EvaluationReasonTargetMatch | indicates that the context key was specifically targeted for this flag. |
EvaluationReasonRuleMatch | |
| |
EvaluationReasonPrerequisiteFailed | |
| |
EvaluationReasonFallthrough | |
| |
EvaluationReasonError | |
|
Instances
data EvalErrorKind Source #
Defines the possible values of the errorKind property of EvaluationReason.
EvalErrorKindMalformedFlag | Indicates that there was an internal inconsistency in the flag data, e.g. a rule specified a nonexistent variation. |
EvalErrorFlagNotFound | Indicates that the caller provided a flag key that did not match any known flag. |
EvalErrorWrongType | Indicates that the result value was not of the requested type, e.g. you called boolVariationDetail but the value was an integer. |
EvalErrorClientNotReady | Indicates that the caller tried to evaluate a flag before the client had successfully initialized. |
EvalErrorInvalidContext | Indicates that the caller tried to evaluate a flag with an invalid context |
EvalErrorExternalStore !Text | Indicates that some error was returned by the external feature store. |
Instances
allFlagsState :: Client -> Context -> Bool -> Bool -> Bool -> IO AllFlagsState Source #
Returns an object that encapsulates the state of all feature flags for a given context. This includes the flag values, and also metadata that can be used on the front end.
The most common use case for this method is to bootstrap a set of client-side feature flags from a back-end service.
The first parameter will limit to only flags that are marked for use with the client-side SDK (by default, all flags are included).
The second parameter will include evaluation reasons in the state.
The third parameter will omit any metadata that is normally only used for event generation, such as flag versions and evaluation reasons, unless the flag has event tracking or debugging turned on
For more information, see the Reference Guide: https://docs.launchdarkly.com/sdk/features/all-flags#haskell
data AllFlagsState Source #
AllFlagsState captures the state of all feature flag keys as evaluated for a specific context. This includes their values, as well as other metadata.
Instances
Show AllFlagsState Source # | |
Defined in LaunchDarkly.Server.Client showsPrec :: Int -> AllFlagsState -> ShowS # show :: AllFlagsState -> String # showList :: [AllFlagsState] -> ShowS # | |
Generic AllFlagsState Source # | |
Defined in LaunchDarkly.Server.Client type Rep AllFlagsState :: Type -> Type # from :: AllFlagsState -> Rep AllFlagsState x # to :: Rep AllFlagsState x -> AllFlagsState # | |
ToJSON AllFlagsState Source # | |
Defined in LaunchDarkly.Server.Client toJSON :: AllFlagsState -> Value # toEncoding :: AllFlagsState -> Encoding # toJSONList :: [AllFlagsState] -> Value # toEncodingList :: [AllFlagsState] -> Encoding # | |
type Rep AllFlagsState Source # | |
Defined in LaunchDarkly.Server.Client |
secureModeHash :: Client -> Context -> Text Source #
Generates the secure mode hash value for a context.
For more information, see the Reference Guide: https://docs.launchdarkly.com/sdk/features/secure-mode#haskell.
close :: Client -> IO () Source #
Close shuts down the LaunchDarkly client. After calling this, the LaunchDarkly client should no longer be used. The method will block until all pending analytics events have been sent.
flushEvents :: Client -> IO () Source #
Flush tells the client that all pending analytics events (if any) should be delivered as soon as possible. Flushing is asynchronous, so this method will return before it is complete.
track :: Client -> Context -> Text -> Maybe Value -> Maybe Double -> IO () Source #
Track reports that a context has performed an event. Custom data can be attached to the event, and / or a numeric value.
The numeric value is used by the LaunchDarkly experimentation feature in numeric custom metrics, and will also be returned as part of the custom event for Data Export.
The status of the client initialization.
Uninitialized | The client has not yet finished connecting to LaunchDarkly. |
Unauthorized | The client attempted to connect to LaunchDarkly and was denied. |
Initialized | The client has successfuly connected to LaunchDarkly. |
ShuttingDown | The client is being terminated |