flagd/config
Todd Baert b49abf9506
feat!: flagSetMetadata in OFREP/ResolveAll, core refactors (#1540)
⚠️ 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>
2025-01-31 10:54:47 -05:00
..
deployments chore: schema docs, add to all examples (#1181) 2024-02-05 15:21:27 -08:00
samples feat!: flagSetMetadata in OFREP/ResolveAll, core refactors (#1540) 2025-01-31 10:54:47 -05:00