⚠️ This PR brings a breaking change to the [flagd-core](https://pkg.go.dev/github.com/open-feature/flagd/core) library: the `IStore` interface now returns an additional value representing the flag set metadata. There are no breaking changes in flagd's behavior. Changes in flagd: - returns flag set metadata as metadata for error flags (best effort) - returns flag set metadata in OFREP and RPC calls - moves metadata merging logic to evaluator (all flags inherent flag set metadata, but can override, as as before but now reusable in flagd core) - removes duplicated flag set metadata keys when the same flag set metadata key exists in multiple sources ### To Test - requires `curl`, `grpcurl`, and `jq` #### RPC ```shell grpcurl -import-path /...../schemas/protobuf/flagd/evaluation/v1 -proto evaluation.proto -plaintext localhost:8013 flagd.evaluation.v1.Service/ResolveAll | jq ``` ### OFREP ```shell curl --location 'http://localhost:8016/ofrep/v1/evaluate/flags' --header 'Content-Type: application/json' --data '{"context": {"color": "yellow"}}' | jq ``` ### Sync ```shell grpcurl -import-path /...../schemas/protobuf/flagd/sync/v1/ -proto sync.proto -plaintext localhost:8015 flagd.sync.v1.FlagSyncService/FetchAllFlags | jq -r .flagConfiguration | jq ``` --------- Signed-off-by: Todd Baert <todd.baert@dynatrace.com> |
||
|---|---|---|
| .. | ||
| deployments | ||
| samples | ||