Safe Haskell | None |
---|---|
Language | Haskell2010 |
This module re-exports the User, Client, and Config modules.
Synopsis
- data Config
- makeConfig :: Text -> Config
- configSetKey :: Text -> Config -> Config
- configSetBaseURI :: Text -> Config -> Config
- configSetStreamURI :: Text -> Config -> Config
- configSetEventsURI :: Text -> Config -> Config
- configSetStreaming :: Bool -> Config -> Config
- configSetAllAttributesPrivate :: Bool -> Config -> Config
- configSetPrivateAttributeNames :: Set Text -> Config -> Config
- configSetFlushIntervalSeconds :: Natural -> Config -> Config
- configSetPollIntervalSeconds :: Natural -> Config -> Config
- configSetUserKeyLRUCapacity :: Natural -> Config -> Config
- configSetInlineUsersInEvents :: Bool -> Config -> Config
- configSetEventsCapacity :: Natural -> Config -> Config
- configSetLogger :: (LoggingT IO () -> IO ()) -> Config -> Config
- configSetSendEvents :: Bool -> Config -> Config
- configSetOffline :: Bool -> Config -> Config
- configSetRequestTimeoutSeconds :: Natural -> Config -> Config
- configSetStoreBackend :: Maybe StoreInterface -> Config -> Config
- configSetStoreTTL :: Natural -> Config -> Config
- configSetUseLdd :: Bool -> Config -> Config
- data User
- makeUser :: Text -> User
- userSetKey :: Maybe Text -> User -> User
- userSetSecondary :: Maybe Text -> User -> User
- userSetIP :: Maybe Text -> User -> User
- userSetCountry :: Maybe Text -> User -> User
- userSetEmail :: Maybe Text -> User -> User
- userSetFirstName :: Maybe Text -> User -> User
- userSetLastName :: Maybe Text -> User -> User
- userSetAvatar :: Maybe Text -> User -> User
- userSetName :: Maybe Text -> User -> User
- userSetAnonymous :: Bool -> User -> User
- userSetCustom :: HashMap Text Value -> User -> User
- userSetPrivateAttributeNames :: Set Text -> User -> User
- data Client
- makeClient :: Config -> IO Client
- clientVersion :: Text
- boolVariation :: Client -> Text -> User -> Bool -> IO Bool
- boolVariationDetail :: Client -> Text -> User -> Bool -> IO (EvaluationDetail Bool)
- stringVariation :: Client -> Text -> User -> Text -> IO Text
- stringVariationDetail :: Client -> Text -> User -> Text -> IO (EvaluationDetail Text)
- intVariation :: Client -> Text -> User -> Int -> IO Int
- intVariationDetail :: Client -> Text -> User -> Int -> IO (EvaluationDetail Int)
- doubleVariation :: Client -> Text -> User -> Double -> IO Double
- doubleVariationDetail :: Client -> Text -> User -> Double -> IO (EvaluationDetail Double)
- jsonVariation :: Client -> Text -> User -> Value -> IO Value
- jsonVariationDetail :: Client -> Text -> User -> Value -> IO (EvaluationDetail Value)
- data EvaluationDetail value = EvaluationDetail {
- value :: !value
- variationIndex :: !(Maybe Natural)
- reason :: !EvaluationReason
- data EvaluationReason
- data EvalErrorKind
- allFlags :: Client -> User -> IO (HashMap Text Value)
- close :: Client -> IO ()
- flushEvents :: Client -> IO ()
- identify :: Client -> User -> IO ()
- track :: Client -> User -> Text -> Maybe Value -> Maybe Double -> IO ()
- data Status
- getStatus :: Client -> IO Status
Documentation
makeConfig :: Text -> Config Source #
Create a default configuration from a given SDK key.
configSetKey :: Text -> Config -> Config Source #
Set the SDK key used to authenticate with LaunchDarkly.
configSetBaseURI :: Text -> Config -> Config Source #
The base URI of the main LaunchDarkly service. This should not normally be changed except for testing.
configSetStreamURI :: Text -> Config -> Config Source #
The base URI of the LaunchDarkly streaming service. This should not normally be changed except for testing.
configSetEventsURI :: Text -> Config -> Config Source #
The base URI of the LaunchDarkly service that accepts analytics events. This should not normally be changed except for testing.
configSetStreaming :: Bool -> Config -> Config Source #
Sets whether streaming mode should be enabled. By default, streaming is enabled. It should only be disabled on the advice of LaunchDarkly support.
configSetAllAttributesPrivate :: Bool -> Config -> Config Source #
Sets whether or not all user attributes (other than the key) should be hidden from LaunchDarkly. If this is true, all user attribute values will be private, not just the attributes specified in PrivateAttributeNames.
configSetPrivateAttributeNames :: Set Text -> Config -> Config Source #
Marks a set of user attribute names private. Any users sent to LaunchDarkly with this configuration active will have attributes with these names removed.
configSetFlushIntervalSeconds :: Natural -> Config -> Config Source #
The time between flushes of the event buffer. Decreasing the flush interval means that the event buffer is less likely to reach capacity.
configSetPollIntervalSeconds :: Natural -> Config -> Config Source #
The polling interval (when streaming is disabled).
configSetUserKeyLRUCapacity :: Natural -> Config -> Config Source #
The number of user keys that the event processor can remember at any one time, so that duplicate user details will not be sent in analytics events.
configSetInlineUsersInEvents :: Bool -> Config -> Config Source #
Set to true if you need to see the full user details in every analytics event.
configSetEventsCapacity :: Natural -> Config -> Config Source #
The capacity of the events buffer. The client buffers up to this many events in memory before flushing. If the capacity is exceeded before the buffer is flushed, events will be discarded.
configSetLogger :: (LoggingT IO () -> IO ()) -> Config -> Config Source #
Set the logger to be used by the client.
configSetSendEvents :: Bool -> Config -> Config Source #
Sets whether to send analytics events back to LaunchDarkly. By default, the client will send events. This differs from Offline in that it only affects sending events, not streaming or polling for events from the server.
configSetOffline :: Bool -> Config -> Config Source #
Sets whether this client is offline. An offline client will not make any network connections to LaunchDarkly, and will return default values for all feature flags.
configSetRequestTimeoutSeconds :: Natural -> Config -> Config Source #
Sets how long an the HTTP client should wait before a response is returned.
configSetStoreBackend :: Maybe StoreInterface -> Config -> Config Source #
Configures a handle to an external store such as Redis.
configSetStoreTTL :: Natural -> Config -> Config Source #
When a store backend is configured, control how long values should be cached in memory before going back to the backend.
configSetUseLdd :: Bool -> Config -> Config Source #
Sets whether this client should use the LaunchDarkly relay in daemon mode. In this mode, the client does not subscribe to the streaming or polling API, but reads data only from the feature store. See: https://docs.launchdarkly.com/docs/the-relay-proxy
User contains specific attributes of a user of your application
The only mandatory property is the Key, which must uniquely identify each user. For authenticated users, this may be a username or e-mail address. For anonymous users, this could be an IP address or session ID.
userSetPrivateAttributeNames :: Set Text -> User -> User Source #
This contains list of attributes to keep private, whether they appear at the top-level or Custom The attribute "key" is always sent regardless of whether it is in this list, and "custom" cannot be used to eliminate all custom attributes
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.
boolVariationDetail :: Client -> Text -> User -> Bool -> IO (EvaluationDetail Bool) Source #
Evaluate a Boolean typed flag, and return an explation.
stringVariationDetail :: Client -> Text -> User -> Text -> IO (EvaluationDetail Text) Source #
Evaluate a String typed flag, and return an explanation.
intVariation :: Client -> Text -> User -> Int -> IO Int Source #
Evaluate a Number typed flag, and truncate the result.
intVariationDetail :: Client -> Text -> User -> Int -> IO (EvaluationDetail Int) Source #
Evaluate a Number typed flag, truncate the result, and return an explanation.
doubleVariation :: Client -> Text -> User -> Double -> IO Double Source #
Evaluate a Number typed flag.
doubleVariationDetail :: Client -> Text -> User -> Double -> IO (EvaluationDetail Double) Source #
Evaluate a Number typed flag, and return an explanation.
jsonVariationDetail :: Client -> Text -> User -> 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 user key was specifically targeted for this flag. |
EvaluationReasonRuleMatch | Indicates that the user matched one of the flag's rules. |
EvaluationReasonPrerequisiteFailed | Indicates that the flag was considered off because it had at least one prerequisite flag that either was off or did not return the desired variation. |
| |
EvaluationReasonFallthrough | Indicates that the flag was on but the user did not match any targets or rules. |
EvaluationReasonError | Indicates that the flag could not be evaluated, e.g. because it does not exist or due to an unexpected error. In this case the result value will be the default value that the caller passed to the client. |
|
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. |
EvalErrorUserNotSpecified | Indicates that the caller passed a user without a key for the user parameter. |
EvalErrorClientNotReady | Indicates that the caller tried to evaluate a flag before the client had successfully initialized. |
EvalErrorExternalStore !Text | Indicates that some error was returned by the external feature store. |
Instances
allFlags :: Client -> User -> IO (HashMap Text Value) Source #
Returns a map from feature flag keys to values for a given user. If the
result of the flag's evaluation would result in the default value, Null
will be returned. This method does not send analytics events back to
LaunchDarkly.
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 -> User -> Text -> Maybe Value -> Maybe Double -> IO () Source #
Track reports that a user 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 |