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 +7/−0
- launchdarkly-server-sdk.cabal +1/−1
- src/LaunchDarkly/Server/Client.hs +3/−3
- src/LaunchDarkly/Server/Client/Internal.hs +1/−1
- src/LaunchDarkly/Server/Events.hs +2/−2
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) ]