packages feed

launchdarkly-server-sdk 4.4.1 → 4.5.0

raw patch · 5 files changed

+14/−7 lines, 5 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

- LaunchDarkly.Server.Client: [$sel:errorKind:EvaluationReasonOff] :: EvaluationReason -> !EvalErrorKind
- LaunchDarkly.Server.Client: [$sel:inExperiment:EvaluationReasonOff] :: EvaluationReason -> !Bool
- LaunchDarkly.Server.Client: [$sel:prerequisiteKey:EvaluationReasonOff] :: EvaluationReason -> !Text
- LaunchDarkly.Server.Client: [$sel:reason:EvaluationDetail] :: EvaluationDetail value -> !EvaluationReason
- LaunchDarkly.Server.Client: [$sel:ruleId:EvaluationReasonOff] :: EvaluationReason -> !Text
- LaunchDarkly.Server.Client: [$sel:ruleIndex:EvaluationReasonOff] :: EvaluationReason -> !Natural
- LaunchDarkly.Server.Client: [$sel:value:EvaluationDetail] :: EvaluationDetail value -> !value
- LaunchDarkly.Server.Client: [$sel:variationIndex:EvaluationDetail] :: EvaluationDetail value -> !Maybe Integer
- LaunchDarkly.Server.Store: [$sel:deleted:SerializedItemDescriptor] :: SerializedItemDescriptor -> !Bool
- LaunchDarkly.Server.Store: [$sel:item:SerializedItemDescriptor] :: SerializedItemDescriptor -> !Maybe ByteString
- LaunchDarkly.Server.Store: [$sel:persistentDataStoreAllFeatures:PersistentDataStore] :: PersistentDataStore -> !FeatureNamespace -> StoreResult (KeyMap SerializedItemDescriptor)
- LaunchDarkly.Server.Store: [$sel:persistentDataStoreGetFeature:PersistentDataStore] :: PersistentDataStore -> !FeatureNamespace -> FeatureKey -> StoreResult (Maybe SerializedItemDescriptor)
- LaunchDarkly.Server.Store: [$sel:persistentDataStoreInitialize:PersistentDataStore] :: PersistentDataStore -> !KeyMap (KeyMap SerializedItemDescriptor) -> StoreResult ()
- LaunchDarkly.Server.Store: [$sel:persistentDataStoreIsInitialized:PersistentDataStore] :: PersistentDataStore -> !StoreResult Bool
- LaunchDarkly.Server.Store: [$sel:persistentDataStoreUpsertFeature:PersistentDataStore] :: PersistentDataStore -> !FeatureNamespace -> FeatureKey -> SerializedItemDescriptor -> StoreResult Bool
- LaunchDarkly.Server.Store: [$sel:version:SerializedItemDescriptor] :: SerializedItemDescriptor -> !Natural
+ LaunchDarkly.Server.Client: AllFlagsState :: !KeyMap Value -> !KeyMap FlagState -> !Bool -> AllFlagsState
+ LaunchDarkly.Server.Client: [errorKind] :: EvaluationReason -> !EvalErrorKind
+ LaunchDarkly.Server.Client: [evaluations] :: AllFlagsState -> !KeyMap Value
+ LaunchDarkly.Server.Client: [inExperiment] :: EvaluationReason -> !Bool
+ LaunchDarkly.Server.Client: [prerequisiteKey] :: EvaluationReason -> !Text
+ LaunchDarkly.Server.Client: [reason] :: EvaluationDetail value -> !EvaluationReason
+ LaunchDarkly.Server.Client: [ruleId] :: EvaluationReason -> !Text
+ LaunchDarkly.Server.Client: [ruleIndex] :: EvaluationReason -> !Natural
+ LaunchDarkly.Server.Client: [state] :: AllFlagsState -> !KeyMap FlagState
+ LaunchDarkly.Server.Client: [valid] :: AllFlagsState -> !Bool
+ LaunchDarkly.Server.Client: [value] :: EvaluationDetail value -> !value
+ LaunchDarkly.Server.Client: [variationIndex] :: EvaluationDetail value -> !Maybe Integer
+ LaunchDarkly.Server.Store: [deleted] :: SerializedItemDescriptor -> !Bool
+ LaunchDarkly.Server.Store: [item] :: SerializedItemDescriptor -> !Maybe ByteString
+ LaunchDarkly.Server.Store: [persistentDataStoreAllFeatures] :: PersistentDataStore -> !FeatureNamespace -> StoreResult (KeyMap SerializedItemDescriptor)
+ LaunchDarkly.Server.Store: [persistentDataStoreGetFeature] :: PersistentDataStore -> !FeatureNamespace -> FeatureKey -> StoreResult (Maybe SerializedItemDescriptor)
+ LaunchDarkly.Server.Store: [persistentDataStoreInitialize] :: PersistentDataStore -> !KeyMap (KeyMap SerializedItemDescriptor) -> StoreResult ()
+ LaunchDarkly.Server.Store: [persistentDataStoreIsInitialized] :: PersistentDataStore -> !StoreResult Bool
+ LaunchDarkly.Server.Store: [persistentDataStoreUpsertFeature] :: PersistentDataStore -> !FeatureNamespace -> FeatureKey -> SerializedItemDescriptor -> StoreResult Bool
+ LaunchDarkly.Server.Store: [version] :: SerializedItemDescriptor -> !Natural
- LaunchDarkly.Server.Store: type StoreResult a = IO (Either Text a)
+ LaunchDarkly.Server.Store: type StoreResult a = IO Either Text a

Files

CHANGELOG.md view
@@ -2,6 +2,13 @@  All notable changes to the LaunchDarkly Haskell Server-side SDK will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org). +## [4.5.0](https://github.com/launchdarkly/haskell-server-sdk/compare/4.4.1...4.5.0) (2025-04-14)+++### Features++* Inline context for custom events ([#97](https://github.com/launchdarkly/haskell-server-sdk/issues/97)) ([0ad71aa](https://github.com/launchdarkly/haskell-server-sdk/commit/0ad71aa923ae62403f6762cebd673030a0cad9e5))+ ## [4.4.1](https://github.com/launchdarkly/haskell-server-sdk/compare/4.4.0...4.4.1) (2024-12-24)  
launchdarkly-server-sdk.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack  name:           launchdarkly-server-sdk-version:        4.4.1+version:        4.5.0 synopsis:       Server-side SDK for integrating with LaunchDarkly description:    Please see the README on GitHub at <https://github.com/launchdarkly/haskell-server-sdk#readme> category:       Web
src/LaunchDarkly/Server/Client.hs view
@@ -17,7 +17,7 @@     , EvaluationReason (..)     , EvalErrorKind (..)     , allFlagsState-    , AllFlagsState+    , AllFlagsState (..)     , secureModeHash     , close     , flushEvents@@ -55,7 +55,7 @@ import LaunchDarkly.Server.Config.HttpConfiguration (HttpConfiguration (..)) import LaunchDarkly.Server.Config.Internal (ApplicationInfo, Config, getApplicationInfoHeader, shouldSendEvents) import LaunchDarkly.Server.Context (getValue)-import LaunchDarkly.Server.Context.Internal (Context (Invalid), getCanonicalKey, getKey, getKeys, optionallyRedactAnonymous, redactContext)+import LaunchDarkly.Server.Context.Internal (Context (Invalid), getCanonicalKey, getKey, optionallyRedactAnonymous, redactContext, redactContextRedactAnonymous) import LaunchDarkly.Server.DataSource.Internal (DataSource (..), DataSourceFactory, DataSourceUpdates (..), defaultDataSourceUpdates, nullDataSourceFactory) import LaunchDarkly.Server.Details (EvalErrorKind (..), EvaluationDetail (..), EvaluationReason (..)) import LaunchDarkly.Server.Evaluate (evaluateDetail, evaluateTyped)@@ -293,7 +293,7 @@         makeBaseEvent $             CustomEvent                 { key = key-                , contextKeys = getKeys context+                , context = redactContextRedactAnonymous (getField @"config" client) context                 , metricValue = metric                 , value = value                 }
src/LaunchDarkly/Server/Client/Internal.hs view
@@ -21,7 +21,7 @@  -- | The version string for this library. clientVersion :: Text-clientVersion = "4.4.1" -- x-release-please-version+clientVersion = "4.5.0" -- x-release-please-version  -- | -- Client is the LaunchDarkly client. Client instances are thread-safe.
src/LaunchDarkly/Server/Events.hs view
@@ -214,7 +214,7 @@  data CustomEvent = CustomEvent     { key :: !Text-    , contextKeys :: !(KeyMap Text)+    , context :: !Value     , metricValue :: !(Maybe Double)     , value :: !(Maybe Value)     }@@ -226,7 +226,7 @@             filter                 ((/=) Null . snd)                 [ ("key", toJSON $ getField @"key" ctx)-                , ("contextKeys", toJSON $ getField @"contextKeys" ctx)+                , ("context", toJSON $ getField @"context" ctx)                 , ("metricValue", toJSON $ getField @"metricValue" ctx)                 , ("data", toJSON $ getField @"value" ctx)                 ]