Skip to content

Conversation

@Kavindu-Dodan
Copy link
Contributor

@Kavindu-Dodan Kavindu-Dodan commented Jun 20, 2024

Fixes #1328

Improvement

flagd's core components are intended to be reused. This PR change theIStore interface by allowing an error to be returned from GetAll. This error is then propagated through ResolveAllValues. This change enables custom IStore implementations to return errors and propagate them through the resolver layer.

With this change, I have upgrade OFREP bulk evaluator and flagd RPC ResolveAll with error propagation.

OFREP - Log warning with resolver error and return HTTP 500 with a tracking reference
RPC - Log warning with resolver error and return an error with a tracking reference

@Kavindu-Dodan Kavindu-Dodan requested a review from a team June 20, 2024 20:36
@dosubot dosubot bot added the size:L This PR changes 100-499 lines, ignoring generated files. label Jun 20, 2024
@netlify
Copy link

netlify bot commented Jun 20, 2024

Deploy Preview for polite-licorice-3db33c canceled.

Name Link
🔨 Latest commit 966ae32
🔍 Latest deploy log https://app.netlify.com/sites/polite-licorice-3db33c/deploys/667da94cdac08f0008483d90

@codecov
Copy link

codecov bot commented Jun 20, 2024

Codecov Report

Attention: Patch coverage is 65.90909% with 15 lines in your changes missing coverage. Please review.

Project coverage is 78.26%. Comparing base (1c530ab) to head (c53b1e4).
Report is 84 commits behind head on main.

Current head c53b1e4 differs from pull request most recent head 966ae32

Please upload reports for the commit 966ae32 to get more accurate results.

Files Patch % Lines
core/pkg/service/ofrep/models.go 0.00% 5 Missing ⚠️
core/pkg/store/flags.go 50.00% 2 Missing and 1 partial ⚠️
...lagd/pkg/service/flag-evaluation/flag_evaluator.go 25.00% 2 Missing and 1 partial ⚠️
core/pkg/evaluator/json.go 80.00% 1 Missing and 1 partial ⚠️
flagd/pkg/service/flag-sync/sync-multiplexer.go 33.33% 1 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1338      +/-   ##
==========================================
+ Coverage   73.69%   78.26%   +4.57%     
==========================================
  Files          32       36       +4     
  Lines        3140     2830     -310     
==========================================
- Hits         2314     2215      -99     
+ Misses        717      476     -241     
- Partials      109      139      +30     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@Kavindu-Dodan Kavindu-Dodan force-pushed the feat/error-propagation branch from c53b1e4 to 8d783fd Compare June 20, 2024 20:57
@Kavindu-Dodan Kavindu-Dodan changed the title feat: adding support to emit errors from the bulk evaluator feat: support emiiting errors from the bulk evaluator Jun 20, 2024
@Kavindu-Dodan Kavindu-Dodan changed the title feat: support emiiting errors from the bulk evaluator feat!: support emiiting errors from the bulk evaluator Jun 20, 2024
@beeme1mr beeme1mr changed the title feat!: support emiiting errors from the bulk evaluator feat!: support emitting errors from the bulk evaluator Jun 21, 2024
@Kavindu-Dodan Kavindu-Dodan force-pushed the feat/error-propagation branch from 8d783fd to a43882c Compare June 27, 2024 16:23
Copy link
Member

@toddbaert toddbaert left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Makes perfect sense to me!

@toddbaert toddbaert merged commit b9c099c into open-feature:main Jun 27, 2024
toddbaert pushed a commit that referenced this pull request Jun 27, 2024
🤖 I have created a release *beep* *boop*
---


<details><summary>flagd: 0.11.0</summary>

##
[0.11.0](flagd/v0.10.3...flagd/v0.11.0)
(2024-06-27)


### ⚠ BREAKING CHANGES

* support emitting errors from the bulk evaluator
([#1338](#1338))

### 🐛 Bug Fixes

* **deps:** update module
buf.build/gen/go/open-feature/flagd/connectrpc/go to
v1.16.2-20240215170432-1e611e2999cc.1
([#1293](#1293))
([2694e7f](2694e7f))
* **deps:** update module buf.build/gen/go/open-feature/flagd/grpc/go to
v1.4.0-20240215170432-1e611e2999cc.1
([#1333](#1333))
([494062f](494062f))
* **deps:** update module
buf.build/gen/go/open-feature/flagd/protocolbuffers/go to
v1.34.2-20240215170432-1e611e2999cc.2
([#1330](#1330))
([32291ad](32291ad))
* **deps:** update module github.com/open-feature/flagd/core to v0.9.3
([#1296](#1296))
([1f7b8bd](1f7b8bd))
* **deps:** update module github.com/rs/cors to v1.11.0
([#1299](#1299))
([5f77541](5f77541))
* **deps:** update module github.com/spf13/cobra to v1.8.1
([#1332](#1332))
([c62bcb0](c62bcb0))
* **deps:** update module github.com/spf13/viper to v1.19.0
([#1334](#1334))
([1097b99](1097b99))
* **deps:** update module golang.org/x/net to v0.26.0
([#1337](#1337))
([83bdbb5](83bdbb5))
* **deps:** update opentelemetry-go monorepo
([#1314](#1314))
([e9f1a7a](e9f1a7a))
* readable error messages
([#1325](#1325))
([7ff33ef](7ff33ef))


### ✨ New Features

* support `FLAGD_DEBUG` / `--debug` / `-x`
([#1326](#1326))
([298bd36](298bd36))
* support emitting errors from the bulk evaluator
([#1338](#1338))
([b9c099c](b9c099c))
</details>

<details><summary>flagd-proxy: 0.6.3</summary>

##
[0.6.3](flagd-proxy/v0.6.2...flagd-proxy/v0.6.3)
(2024-06-27)


### 🐛 Bug Fixes

* **deps:** update module buf.build/gen/go/open-feature/flagd/grpc/go to
v1.4.0-20240215170432-1e611e2999cc.1
([#1333](#1333))
([494062f](494062f))
* **deps:** update module
buf.build/gen/go/open-feature/flagd/protocolbuffers/go to
v1.34.2-20240215170432-1e611e2999cc.2
([#1330](#1330))
([32291ad](32291ad))
* **deps:** update module github.com/open-feature/flagd/core to v0.9.3
([#1296](#1296))
([1f7b8bd](1f7b8bd))
* **deps:** update module github.com/spf13/cobra to v1.8.1
([#1332](#1332))
([c62bcb0](c62bcb0))
* **deps:** update module github.com/spf13/viper to v1.19.0
([#1334](#1334))
([1097b99](1097b99))
* **deps:** update module golang.org/x/net to v0.26.0
([#1337](#1337))
([83bdbb5](83bdbb5))
* **deps:** update opentelemetry-go monorepo
([#1314](#1314))
([e9f1a7a](e9f1a7a))
</details>

<details><summary>core: 0.10.0</summary>

##
[0.10.0](core/v0.9.3...core/v0.10.0)
(2024-06-27)


### ⚠ BREAKING CHANGES

* support emitting errors from the bulk evaluator
([#1338](#1338))

### 🐛 Bug Fixes

* **deps:** update module buf.build/gen/go/open-feature/flagd/grpc/go to
v1.4.0-20240215170432-1e611e2999cc.1
([#1333](#1333))
([494062f](494062f))
* **deps:** update module
buf.build/gen/go/open-feature/flagd/protocolbuffers/go to
v1.34.2-20240215170432-1e611e2999cc.2
([#1330](#1330))
([32291ad](32291ad))
* **deps:** update module connectrpc.com/connect to v1.16.2
([#1289](#1289))
([8bacb7c](8bacb7c))
* **deps:** update module
github.com/open-feature/open-feature-operator/apis to v0.2.43
([#1331](#1331))
([fecd769](fecd769))
* **deps:** update module golang.org/x/crypto to v0.24.0
([#1335](#1335))
([2a31a17](2a31a17))
* **deps:** update module golang.org/x/mod to v0.18.0
([#1336](#1336))
([5fa83f7](5fa83f7))
* **deps:** update opentelemetry-go monorepo
([#1314](#1314))
([e9f1a7a](e9f1a7a))
* readable error messages
([#1325](#1325))
([7ff33ef](7ff33ef))


### ✨ New Features

* add mandatory flags property in bulk response
([#1339](#1339))
([b20266e](b20266e))
* support emitting errors from the bulk evaluator
([#1338](#1338))
([b9c099c](b9c099c))
* support relative weighting for fractional evaluation
([#1313](#1313))
([f82c094](f82c094))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L This PR changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Improvement] Improve bulk evaluator with ability to return errors

4 participants