You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
| ✅ |[Providers](#providers)| Integrate with a commercial, open source, or in-house feature management tool. |
102
102
| ✅ |[Targeting](#targeting)| Contextually-aware flag evaluation using [evaluation context](https://openfeature.dev/docs/reference/concepts/evaluation-context). |
103
103
| ✅ |[Hooks](#hooks)| Add functionality to various stages of the flag evaluation life-cycle. |
104
-
|❌|[Logging](#logging)| Integrate with popular logging packages. |
104
+
|✅|[Logging](#logging)| Integrate with popular logging packages. |
105
105
| ✅ |[Domains](#domains)| Logically bind clients with providers. |
106
106
| ✅ |[Eventing](#eventing)| React to state changes in the provider or flag management system. |
107
107
| ✅ |[Shutdown](#shutdown)| Gracefully clean up a provider during application shutdown. |
108
108
| ✅ |[Tracking](#tracking)| Associate user actions with feature flag evaluations for experimentation. |
109
-
|❌|[Transaction Context Propagation](#transaction-context-propagation)| Set a specific [evaluation context](https://openfeature.dev/docs/reference/concepts/evaluation-context) for a transaction (e.g. an HTTP request or a thread) |
109
+
|✅|[Transaction Context Propagation](#transaction-context-propagation)| Set a specific [evaluation context](https://openfeature.dev/docs/reference/concepts/evaluation-context) for a transaction (e.g. an HTTP request or a thread) |
110
110
| ✅ |[Extending](#extending)| Extend OpenFeature with custom providers and hooks. |
111
111
112
112
<sub>Implemented: ✅ | In-progress: ⚠️ | Not implemented yet: ❌</sub>
@@ -247,9 +247,27 @@ client.fetch_boolean_value(
247
247
248
248
### Logging
249
249
250
-
Coming Soon! [Issue available](https://github.com/open-feature/ruby-sdk/issues/148) to work on.
250
+
The SDK includes a built-in `LoggingHook` that provides structured log output for flag evaluations. It logs at the `before`, `after`, and `error` stages of the hook lifecycle.
251
251
252
-
<!-- TODO: talk about logging config and include a code example -->
252
+
```ruby
253
+
# Use the SDK's default logger (from Configuration)
-**after** (DEBUG): includes `reason`, `variant`, and `value`
270
+
-**error** (ERROR): includes `error_code` and `error_message`
253
271
254
272
### Domains
255
273
@@ -361,12 +379,44 @@ Check the documentation for your [provider](#providers) for more information.
361
379
362
380
### Transaction Context Propagation
363
381
364
-
Coming Soon! [Issue available](https://github.com/open-feature/ruby-sdk/issues/150) to be worked on.
382
+
Transaction context is a container for transaction-specific evaluation context (e.g. user id, user agent, IP).
383
+
Transaction context can be set where specific data is available (e.g. an auth service or request handler) and by using the transaction context propagator it will automatically be applied to all flag evaluations within a transaction (e.g. a request or thread).
384
+
385
+
The SDK ships with a `ThreadLocalTransactionContextPropagator` that stores context in `Thread.current`:
You can implement a custom propagator by including the `TransactionContextPropagator` module:
365
405
366
-
<!-- Transaction context is a container for transaction-specific evaluation context (e.g. user id, user agent, IP).
367
-
Transaction context can be set where specific data is available (e.g. an auth service or request handler) and by using the transaction context propagator it will automatically be applied to all flag evaluations within a transaction (e.g. a request or thread). -->
0 commit comments