Skip to content

Commit

Permalink
feat: introduce appendix section (#199)
Browse files Browse the repository at this point in the history
Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
Signed-off-by: Kavindu Dodanduwa <Kavindu-Dodan@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Federico Bond <federicobond@gmail.com>
  • Loading branch information
3 people authored Aug 1, 2023
1 parent 007502b commit 2a2539d
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 0 deletions.
1 change: 1 addition & 0 deletions specification/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ sidebar_position: 0
- [Evaluation Context](./sections/03-evaluation-context.md)
- [Hooks](./sections/04-hooks.md)
- [Events](./sections/05-events.md)
- [Appendix-A](./appendix-A.md)

## Conformance

Expand Down
38 changes: 38 additions & 0 deletions specification/appendix-A.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
title: Appendix A: Included Utilities
description: Information on OpenFeature ecosystem utilities
sidebar_position: 4
---

# Appendix A: Included Utilities

This document contains requirements for auxiliary utilities provided by the SDK, such as testing utilities.

## In-memory provider

> Language specific OpenFeature SDK implementations **SHOULD** expose an in-memory provider built into the SDK.
The in-memory provider is intended to be used for testing, SDK consumers may use it for their use cases.
Hence, the packaging, naming and access modifiers must be set appropriately.

Given below are features this provider **MUST** support,

- Provider must be initiated with a pre-defined set of flags provided to a constructor
- Feature Flag structure must be minimal but should help testing OpenFeature specification
- EvaluationContext support should be provided through callbacks/lambda expressions
- Provider must support a means of updating flag values, resulting in the emission of `PROVIDER_CONFIGURATION_CHANGED` events
- Provider must be maintained to support specification changes

## SDK end-to-end testing

> E2E tests must utilize [in-memory provider](#in-memory-provider) defined within the SDK and must be self-contained.
OpenFeature project maintains end-to-end(e2e) test suite defined with [Gherkin syntax](https://cucumber.io/docs/gherkin/).
These test definitions reside in the [OpenFeature test-harness](https://github.com/open-feature/test-harness) repository.

```mermaid
flowchart LR
subgraph SDK
A[e2e Tests] -.-> B[In-memory provider]
end
```

0 comments on commit 2a2539d

Please sign in to comment.