Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat!: support emitting errors from the bulk evaluator #1338

Merged
merged 2 commits into from
Jun 27, 2024

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 as a code owner 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
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

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 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
Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
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
12 checks passed
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 <109696520+openfeaturebot@users.noreply.github.com>
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